private static void addGeometries( Operator operator, List<Geometry> geometries ) { Operator.Type type = operator.getType(); switch ( type ) { case LOGICAL: LogicalOperator logicalOper = (LogicalOperator) operator; for ( Operator param : logicalOper.getParams() ) { addGeometries( param, geometries ); } break; case SPATIAL: SpatialOperator spatialOper = (SpatialOperator) operator; for ( Object param : spatialOper.getParams() ) { if ( param instanceof Geometry ) { geometries.add( (Geometry) param ); } } break; case COMPARISON: // nothing to do break; } }
case AND: { builder.add( "(" ); builder.add( toProtoSQL( op.getParams()[0] ) ); for ( int i = 1; i < op.getParams().length; i++ ) { builder.add( " AND " ); builder.add( toProtoSQL( op.getParams()[i] ) ); builder.add( toProtoSQL( op.getParams()[0] ) ); for ( int i = 1; i < op.getParams().length; i++ ) { builder.add( " OR " ); builder.add( toProtoSQL( op.getParams()[i] ) ); builder.add( toProtoSQL( op.getParams()[0] ) ); builder.add( ")" ); break;
private static LogicalOperator repair( LogicalOperator o, Map<String, QName> bindings, Set<QName> validNames ) { Operator[] os = o.getParams(); for ( int i = 0; i < os.length; ++i ) { os[i] = repair( os[i], bindings, validNames ); } switch ( o.getSubType() ) { case AND: return new And( os ); case NOT: return new Not( os[0] ); case OR: return new Or( os ); } return o; }
case AND: BBOX env = null; for ( Operator child : logical.getParams() ) { BBOX childEnv = extractBBox( child ); if ( childEnv != null ) {
private static void addPropertyNames( Operator operator, List<ValueReference> propNames ) { Operator.Type type = operator.getType(); switch ( type ) { case COMPARISON: ComparisonOperator compOper = (ComparisonOperator) operator; for ( Expression expr : compOper.getParams() ) { addPropertyNames( expr, propNames ); } break; case LOGICAL: LogicalOperator logicalOper = (LogicalOperator) operator; for ( Operator param : logicalOper.getParams() ) { addPropertyNames( param, propNames ); } break; case SPATIAL: SpatialOperator spatialOper = (SpatialOperator) operator; for ( Object param : spatialOper.getParams() ) { if ( param instanceof Expression ) { addPropertyNames( (Expression) param, propNames ); } } break; } }