Exemplo n.º 1
0
  /**
   * 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();
  }