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; }
private static void export( LogicalOperator operator, XMLStreamWriter writer ) throws XMLStreamException, UnknownCRSException, TransformationException { switch ( operator.getSubType() ) { case AND: export( writer, (And) operator ); break; case OR: export( writer, (Or) operator ); break; case NOT: export( writer, (Not) operator ); break; default: throw new IllegalArgumentException( "Encoding of logical operator subtype " + operator.getSubType() + " is not supported yet!" ); } }
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; } }
throws XMLStreamException, UnknownCRSException, TransformationException { QName elementName = logicalOperatorTypeToElementName.get( operator.getSubType() ); writer.writeStartElement( elementName.getNamespaceURI(), elementName.getLocalPart() ); switch ( operator.getSubType() ) { case AND: And andOp = (And) operator;
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; } }
switch ( logical.getSubType() ) { case AND: BBOX env = null; for ( Operator child : logical.getParams() ) { BBOX childEnv = extractBBox( child ); if ( childEnv != null ) {
switch ( ( (LogicalOperator) op ).getSubType() ) { case AND: And and = (And) op;
switch ( op.getSubType() ) { 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;