private void handleTime( Map<String, List<?>> dims, Dimension<?> time, List<String> headers, LinkedList<Operator> ops ) throws OWSException { List<?> vals = dims.get( "time" ); vals = checkDefaultValueTime( vals, time, headers ); Operator[] os = new Operator[vals.size()]; findTimeFilters( time, vals, os, headers ); if ( os.length > 1 ) { if ( !time.getMultipleValues() ) { String msg = "Multiple values are not allowed for TIME."; throw new OWSException( msg, "InvalidDimensionValue", "time" ); } try { ops.add( new Or( os ) ); } catch ( Throwable e ) { // will not happen, look at the if condition } } else { ops.add( os[0] ); } }
private static void export( XMLStreamWriter writer, Or orOp ) throws XMLStreamException, UnknownCRSException, TransformationException { writer.writeStartElement( FES_20_NS, "Or" ); for ( int i = 0; i < orOp.getSize(); i++ ) { export( orOp.getParameter( i ), writer ); } writer.writeEndElement(); }
@Override public String toString( String indent ) { String s = indent + "-Or\n"; for ( int i = 0; i < getSize(); i++ ) { s += params.get( i ).toString( indent + " " ); } return s; }
private static OperatorFilter combine( boolean and, OperatorFilter f1, OperatorFilter f2 ) { if ( f1 == null || f2 == null ) { return f1 == null ? f2 : f1; } Operator o1 = f1.getOperator(); Operator o2 = f2.getOperator(); if ( and ) { return new OperatorFilter( new And( o1, o2 ) ); } return new OperatorFilter( new Or( o1, o2 ) ); }
case OR: Or orOp = (Or) operator; for ( int i = 0; i < orOp.getSize(); i++ ) { export( orOp.getParameter( i ), writer );
"elevation" ); ops.add( new Or( os ) ); } else { ops.add( os[0] );
Operator op1 = sldFilter.getOperator(); Operator op2 = ( (OperatorFilter) contn.filter ).getOperator(); sldFilter = new OperatorFilter( new Or( op1, op2 ) );
operatorFilter = new OperatorFilter( operators[0] ); } else { operatorFilter = new OperatorFilter( new Or( operators ) );
throw new XMLParsingException( xmlStream, msg ); logicalOperator = new Or( innerOperators.toArray( new Operator[innerOperators.size()] ) ); break;
throw new XMLParsingException( xmlStream, msg ); logicalOperator = new Or( innerOperators.toArray( new Operator[innerOperators.size()] ) ); break;
throw new XMLParsingException( xmlStream, msg ); logicalOperator = new Or( innerOperators.toArray( new Operator[innerOperators.size()] ) ); 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; }
static OperatorFilter buildFilter( Operator operator, FeatureType ft, Envelope clickBox ) { if ( ft == null ) { if ( operator == null ) { return null; } return new OperatorFilter( operator ); } LinkedList<Operator> list = findOperators( ft, clickBox ); if ( list.size() > 1 ) { Or or = new Or( list.toArray( new Operator[list.size()] ) ); if ( operator == null ) { return new OperatorFilter( or ); } return new OperatorFilter( new And( operator, or ) ); } if ( list.isEmpty() ) { // obnoxious case where feature has no geometry properties (but features may have extra geometry props) if ( operator == null ) { return new OperatorFilter( new Intersects( null, clickBox ) ); } return new OperatorFilter( new And( operator, new Intersects( null, clickBox ) ) ); } if ( operator == null ) { return new OperatorFilter( list.get( 0 ) ); } return new OperatorFilter( new And( operator, list.get( 0 ) ) ); }