/** * reads the completechain dataset * * @throws Exception */ public void getrows() throws Exception { // SELECT ... FROM ... WHERE // (statel=state and countyl=county) OR (stater=state and countyr=county ) FilterFactory ff = FilterFactory.createFilterFactory(); CompareFilter cf1 = ff.createCompareFilter(FilterType.COMPARE_EQUALS); cf1.addLeftValue(ff.createAttributeExpression(null, "statel")); cf1.addRightValue(ff.createLiteralExpression(state)); CompareFilter cf2 = ff.createCompareFilter(FilterType.COMPARE_EQUALS); cf2.addLeftValue(ff.createAttributeExpression(null, "countyl")); cf2.addRightValue(ff.createLiteralExpression(county)); LogicFilter and1 = ff.createLogicFilter(cf1, cf2, Filter.LOGIC_AND); CompareFilter cf3 = ff.createCompareFilter(FilterType.COMPARE_EQUALS); cf3.addLeftValue(ff.createAttributeExpression(null, "stater")); cf3.addRightValue(ff.createLiteralExpression(state)); CompareFilter cf4 = ff.createCompareFilter(FilterType.COMPARE_EQUALS); cf4.addLeftValue(ff.createAttributeExpression(null, "countyr")); cf4.addRightValue(ff.createLiteralExpression(county)); LogicFilter and2 = ff.createLogicFilter(cf3, cf4, Filter.LOGIC_AND); LogicFilter or = ff.createLogicFilter(and1, and2, Filter.LOGIC_OR); String[] ps = new String[] {"wkb_geometry", "statel", "countyl", "stater", "countyr"}; Query q = new DefaultQuery("county_boundary", or, ps); FeatureReader fr = ds.getFeatureReader(q, new DefaultTransaction()); while (fr.hasNext()) { Feature f = fr.next(); if (!alreadyThere(f.getDefaultGeometry())) lines.add(f.getDefaultGeometry()); } fr.close(); }