@Override public Filter readFilter( XMLStreamReader xmlStream ) throws XMLParsingException, XMLStreamException { return Filter100XMLDecoder.parse( xmlStream ); }
String msg = Messages.getMessage( "FILTER_PARSER_UNEXPECTED_ELEMENT", xmlStream.getName(), elemNames( ComparisonOperator.SubType.class, comparisonOperatorTypeToElementName ) ); throw new XMLParsingException( xmlStream, msg ); case PROPERTY_IS_LESS_THAN_OR_EQUAL_TO: case PROPERTY_IS_NOT_EQUAL_TO: comparisonOperator = parseBinaryComparisonOperator( xmlStream, type ); break; case PROPERTY_IS_BETWEEN: comparisonOperator = parsePropertyIsBetweenOperator( xmlStream ); break; case PROPERTY_IS_LIKE: comparisonOperator = parsePropertyIsLikeOperator( xmlStream ); break; case PROPERTY_IS_NULL: comparisonOperator = parsePropertyIsNullOperator( xmlStream ); break;
private static GenericXMLElement parseElement( XMLStreamReader xmlStream ) throws IllegalArgumentException, XMLStreamException { Map<QName, PrimitiveValue> attrs = parseAttrs( xmlStream ); List<TypedObjectNode> children = new ArrayList<TypedObjectNode>(); while ( xmlStream.next() != END_ELEMENT ) { int eventType = xmlStream.getEventType(); if ( eventType == START_ELEMENT ) { children.add( parseElement( xmlStream ) ); } else if ( eventType == CHARACTERS || eventType == CDATA ) { children.add( new PrimitiveValue( xmlStream.getText() ) ); } } return new GenericXMLElement( xmlStream.getName(), null, attrs, children ); }
private static Operator parseOperator( XMLStreamReader xmlStream ) throws XMLStreamException { Operator operator = null; // check if element name is a valid operator element Operator.Type type = elementNameToOperatorType.get( xmlStream.getName() ); if ( type == null ) { String expectedList = elemNames( Operator.Type.class, logicalOperatorTypeToElementName ) + ", " + elemNames( Operator.Type.class, spatialOperatorTypeToElementName ) + ", " + elemNames( Operator.Type.class, comparisonOperatorTypeToElementName ); String msg = Messages.getMessage( "FILTER_PARSER_UNEXPECTED_ELEMENT", xmlStream.getName(), expectedList ); throw new XMLParsingException( xmlStream, msg ); } switch ( type ) { case COMPARISON: LOG.debug( "Building comparison operator" ); operator = parseComparisonOperator( xmlStream ); break; case LOGICAL: LOG.debug( "Building logical operator" ); operator = parseLogicalOperator( xmlStream ); break; case SPATIAL: LOG.debug( "Building spatial operator" ); operator = parseSpatialOperator( xmlStream ); break; } return operator; }
if ( type == null ) { String msg = Messages.getMessage( "FILTER_PARSER_UNEXPECTED_ELEMENT", xmlStream.getName(), elemNames( Expression.Type.class, expressionTypeToElementName ) ); throw new XMLParsingException( xmlStream, msg ); case ADD: { nextElement( xmlStream ); Expression param1 = parseExpression( xmlStream ); nextElement( xmlStream ); Expression param2 = parseExpression( xmlStream ); expression = new Add( param1, param2 ); nextElement( xmlStream ); Expression param1 = parseExpression( xmlStream ); nextElement( xmlStream ); Expression param2 = parseExpression( xmlStream ); expression = new Sub( param1, param2 ); nextElement( xmlStream ); Expression param1 = parseExpression( xmlStream ); nextElement( xmlStream ); Expression param2 = parseExpression( xmlStream ); expression = new Mul( param1, param2 ); nextElement( xmlStream ); Expression param1 = parseExpression( xmlStream ); nextElement( xmlStream ); Expression param2 = parseExpression( xmlStream ); expression = new Div( param1, param2 );
if ( FEATURE_ID_ELEMENT.equals( elementName ) ) { LOG.debug( "Building id filter" ); filter = parseIdFilter( xmlStream ); } else { LOG.debug( "Building operator filter" ); Operator rootOperator = parseOperator( xmlStream ); filter = new OperatorFilter( rootOperator ); nextElement( xmlStream );
String msg = Messages.getMessage( "FILTER_PARSER_UNEXPECTED_ELEMENT", xmlStream.getName(), elemNames( LogicalOperator.SubType.class, logicalOperatorTypeToElementName ) ); throw new XMLParsingException( xmlStream, msg ); List<Operator> innerOperators = new ArrayList<Operator>(); while ( nextElement( xmlStream ) == START_ELEMENT ) { innerOperators.add( parseOperator( xmlStream ) ); List<Operator> innerOperators = new ArrayList<Operator>(); while ( nextElement( xmlStream ) == START_ELEMENT ) { innerOperators.add( parseOperator( xmlStream ) ); Operator parameter = parseOperator( xmlStream ); logicalOperator = new Not( parameter ); nextElement( xmlStream );
String msg = Messages.getMessage( "FILTER_PARSER_UNEXPECTED_ELEMENT", xmlStream.getName(), elemNames( SpatialOperator.SubType.class, spatialOperatorTypeToElementName ) ); throw new XMLParsingException( xmlStream, msg ); ValueReference param1 = parsePropertyName( xmlStream ); nextElement( xmlStream );
private static PropertyIsBetween parsePropertyIsBetweenOperator( XMLStreamReader xmlStream ) throws XMLStreamException { // this is a deegree extension over Filter 1.0.0 spec. boolean matchCase = getAttributeValueAsBoolean( xmlStream, null, "matchCase", true ); nextElement( xmlStream ); Expression expression = parseExpression( xmlStream ); nextElement( xmlStream ); xmlStream.require( START_ELEMENT, OGC_NS, "LowerBoundary" ); nextElement( xmlStream ); Expression lowerBoundary = parseExpression( xmlStream ); nextElement( xmlStream ); // </ expression > nextElement( xmlStream ); // </LowerBoundary> xmlStream.require( START_ELEMENT, OGC_NS, "UpperBoundary" ); nextElement( xmlStream ); Expression upperBoundary = parseExpression( xmlStream ); nextElement( xmlStream ); // </ expression > nextElement( xmlStream ); // </UowerBoundary> return new PropertyIsBetween( expression, lowerBoundary, upperBoundary, matchCase, null ); }
List<Expression> params = new ArrayList<Expression>(); while ( xmlStream.getEventType() == START_ELEMENT ) { params.add( parseExpression( xmlStream ) ); nextElement( xmlStream );
try { streamWrapper.nextTag(); filter = Filter100XMLDecoder.parse( streamWrapper ); } catch ( XMLParsingException e ) { e.printStackTrace();
private static Literal<?> parseLiteral( XMLStreamReader xmlStream ) throws XMLStreamException { Map<QName, PrimitiveValue> attrs = parseAttrs( xmlStream ); List<TypedObjectNode> children = new ArrayList<TypedObjectNode>(); while ( xmlStream.next() != END_ELEMENT ) { int eventType = xmlStream.getEventType(); if ( eventType == START_ELEMENT ) { children.add( parseElement( xmlStream ) ); } else if ( eventType == CHARACTERS || eventType == CDATA ) { children.add( new PrimitiveValue( xmlStream.getText() ) ); } } TypedObjectNode value = null; if ( attrs.isEmpty() && children.size() == 1 ) { value = children.get( 0 ); } else if ( attrs.isEmpty() && children.isEmpty() ) { value = new PrimitiveValue( "" ); } else { value = new GenericXMLElement( null, null, attrs, children ); } return new Literal<TypedObjectNode>( value, null ); }
Expression parameter1 = parseExpression( xmlStream ); requireNextTag( xmlStream, START_ELEMENT ); Expression parameter2 = parseExpression( xmlStream ); requireNextTag( xmlStream, END_ELEMENT );
private Query parseLock100( OMElement lockElement ) { String handle = getNodeAsString( lockElement, new XPath( "@handle", nsContext ), null ); // TODO can there be an alias for the typeName ?? TypeName typeName = new TypeName( getRequiredNodeAsQName( lockElement, new XPath( "@typeName", nsContext ) ), null ); Filter filter = null; OMElement filterEl = lockElement.getFirstChildWithName( new QName( OGCNS, "Filter" ) ); if ( filterEl != null ) { try { // TODO remove usage of wrapper (necessary at the moment to work around problems with AXIOM's // XMLStreamReader) XMLStreamReader xmlStream = new XMLStreamReaderWrapper( filterEl.getXMLStreamReaderWithoutCaching(), null ); // skip START_DOCUMENT xmlStream.nextTag(); // TODO use filter 1.0.0 parser filter = Filter100XMLDecoder.parse( xmlStream ); } catch ( XMLStreamException e ) { e.printStackTrace(); throw new XMLParsingException( this, filterEl, e.getMessage() ); } } return new FilterQuery( handle, new TypeName[] { typeName }, null, null, null, null, filter ); }
filter = Filter100XMLDecoder.parse( xmlStream ); } catch ( XMLStreamException e ) { e.printStackTrace();
constraint = Filter100XMLDecoder.parse( xmlStream ); } else { String msg = Messages.get( "CSW_FILTER_VERSION_NOT_SPECIFIED", versionConstraint,
constraint = Filter100XMLDecoder.parse( xmlStream ); } else { String msg = Messages.get( "CSW_FILTER_VERSION_NOT_SPECIFIED", versionConstraint,
constraintUpdate = Filter110XMLDecoder.parse( xmlStream ); } else if ( versionConstraintUpdate.equals( new Version( 1, 0, 0 ) ) ) { constraintUpdate = Filter100XMLDecoder.parse( xmlStream ); } else { String msg = Messages.get( "CSW_FILTER_VERSION_NOT_SPECIFIED", versionConstraintUpdate,
constraintDelete = Filter100XMLDecoder.parse( xmlStream ); } else { String msg = Messages.get( "CSW_FILTER_VERSION_NOT_SPECIFIED", versionConstraint,