use of org.geotoolkit.ogc.xml.v100.ComparisonOpsType in project geo-platform by geosdi.
the class AndOperatorHandler method processQueryRestrictions.
/**
* @param filter
* @param queryRestrictionDTOs
*/
@Override
protected void processQueryRestrictions(FilterType filter, List<QueryRestrictionDTO> queryRestrictionDTOs) {
logger.debug("################### {} Processing............\n", getFilterName());
List<JAXBElement<?>> elements = super.buildJAXBElementList(queryRestrictionDTOs);
logger.debug("##################{} builds : {} " + (elements.size() > 1 ? "elements" : "element") + "\n", getFilterName(), elements.size());
if (elements.size() == 1) {
if (filter.isSetSpatialOps()) {
elements.add(filter.getSpatialOps());
filter.setSpatialOps(null);
BinaryLogicOpType and = new BinaryLogicOpType();
and.setComparisonOpsOrSpatialOpsOrLogicOps(elements);
filter.setLogicOps(filterFactory.createAnd(and));
} else {
JAXBElement<ComparisonOpsType> opsTypeJAXBElement = (JAXBElement<ComparisonOpsType>) elements.get(0);
filter.setComparisonOps(opsTypeJAXBElement);
}
} else if (elements.size() > 1) {
if (filter.isSetSpatialOps()) {
elements.add(filter.getSpatialOps());
filter.setSpatialOps(null);
}
BinaryLogicOpType and = new BinaryLogicOpType();
and.setComparisonOpsOrSpatialOpsOrLogicOps(elements);
filter.setLogicOps(filterFactory.createAnd(and));
}
}
use of org.geotoolkit.ogc.xml.v100.ComparisonOpsType in project geo-platform by geosdi.
the class OrOperatorHandler method processQueryRestrictions.
/**
* @param filter
* @param queryRestrictionDTOs
*/
@Override
protected void processQueryRestrictions(FilterType filter, List<QueryRestrictionDTO> queryRestrictionDTOs) {
logger.debug("################### {} Processing............\n", getFilterName());
List<JAXBElement<?>> elements = super.buildJAXBElementList(queryRestrictionDTOs);
logger.debug("##################{} builds : {} " + (elements.size() > 1 ? "elements" : "element") + "\n", getFilterName(), elements.size());
if (elements.size() == 1) {
if (filter.isSetSpatialOps()) {
elements.add(filter.getSpatialOps());
filter.setSpatialOps(null);
BinaryLogicOpType or = new BinaryLogicOpType();
or.setComparisonOpsOrSpatialOpsOrLogicOps(elements);
filter.setLogicOps(filterFactory.createOr(or));
} else {
JAXBElement<ComparisonOpsType> element = (JAXBElement<ComparisonOpsType>) elements.get(0);
filter.setComparisonOps(element);
}
} else if (elements.size() > 1) {
if (filter.isSetSpatialOps()) {
elements.add(filter.getSpatialOps());
filter.setSpatialOps(null);
}
BinaryLogicOpType or = new BinaryLogicOpType();
or.setComparisonOpsOrSpatialOpsOrLogicOps(elements);
filter.setLogicOps(filterFactory.createOr(or));
}
}
use of org.geotoolkit.ogc.xml.v100.ComparisonOpsType in project geotoolkit by Geomatys.
the class OGC100Test method testFilterComparisonPropertyIsLessThanOrEqual.
@Test
public void testFilterComparisonPropertyIsLessThanOrEqual() throws JAXBException {
final Unmarshaller UNMARSHALLER = POOL.acquireUnmarshaller();
final Marshaller MARSHALLER = POOL.acquireMarshaller();
// Read test
Object obj = UNMARSHALLER.unmarshal(FILE_FIL_COMP_ISLESSOREQUAL);
assertNotNull(obj);
JAXBElement<? extends FilterType> jaxfilter = (JAXBElement<? extends FilterType>) obj;
assertNotNull(jaxfilter);
Filter filter = TRANSFORMER_GT.visitFilter(jaxfilter.getValue());
assertNotNull(filter);
BinaryComparisonOperator prop = (BinaryComparisonOperator) filter;
ValueReference left = (ValueReference) prop.getOperand1();
Literal right = (Literal) prop.getOperand2();
assertEquals(left.getXPath(), valueStr);
assertEquals(((Number) right.apply(null)).floatValue(), valueF, DELTA);
// write test
FilterType ft = TRANSFORMER_OGC.apply(filter);
assertNotNull(ft.getComparisonOps());
ComparisonOpsType cot = ft.getComparisonOps().getValue();
BinaryComparisonOpType pibt = (BinaryComparisonOpType) cot;
PropertyNameType lf = (PropertyNameType) pibt.getExpression().get(0).getValue();
LiteralType rg = (LiteralType) pibt.getExpression().get(1).getValue();
assertEquals(valueStr, lf.getContent());
numberEquals(valueF, rg.getContent().get(0).toString().trim());
MARSHALLER.marshal(ft.getComparisonOps(), TEST_FILE_FIL_COMP_ISLESSOREQUAL);
POOL.recycle(MARSHALLER);
POOL.recycle(UNMARSHALLER);
}
use of org.geotoolkit.ogc.xml.v100.ComparisonOpsType in project geotoolkit by Geomatys.
the class OGC100Test method testFilterComparisonPropertyIsNotEqualTo.
@Test
public void testFilterComparisonPropertyIsNotEqualTo() throws JAXBException {
final Unmarshaller UNMARSHALLER = POOL.acquireUnmarshaller();
final Marshaller MARSHALLER = POOL.acquireMarshaller();
// Read test
Object obj = UNMARSHALLER.unmarshal(FILE_FIL_COMP_ISNOTEQUAL);
assertNotNull(obj);
JAXBElement<? extends FilterType> jaxfilter = (JAXBElement<? extends FilterType>) obj;
assertNotNull(jaxfilter);
Filter filter = TRANSFORMER_GT.visitFilter(jaxfilter.getValue());
assertNotNull(filter);
BinaryComparisonOperator prop = (BinaryComparisonOperator) filter;
ValueReference left = (ValueReference) prop.getOperand1();
Literal right = (Literal) prop.getOperand2();
assertEquals(left.getXPath(), valueStr);
assertEquals(((Number) right.apply(null)).floatValue(), valueF, DELTA);
// write test
FilterType ft = TRANSFORMER_OGC.apply(filter);
assertNotNull(ft.getComparisonOps());
ComparisonOpsType cot = ft.getComparisonOps().getValue();
BinaryComparisonOpType pibt = (BinaryComparisonOpType) cot;
PropertyNameType lf = (PropertyNameType) pibt.getExpression().get(0).getValue();
LiteralType rg = (LiteralType) pibt.getExpression().get(1).getValue();
assertEquals(valueStr, lf.getContent());
numberEquals(valueF, rg.getContent().get(0).toString().trim());
MARSHALLER.marshal(ft.getComparisonOps(), TEST_FILE_FIL_COMP_ISNOTEQUAL);
POOL.recycle(MARSHALLER);
POOL.recycle(UNMARSHALLER);
}
use of org.geotoolkit.ogc.xml.v100.ComparisonOpsType in project geotoolkit by Geomatys.
the class OGC100Test method testFilterComparisonPropertyIsEqualTo.
@Test
public void testFilterComparisonPropertyIsEqualTo() throws JAXBException {
final Unmarshaller UNMARSHALLER = POOL.acquireUnmarshaller();
final Marshaller MARSHALLER = POOL.acquireMarshaller();
// Read test
Object obj = UNMARSHALLER.unmarshal(FILE_FIL_COMP_ISEQUAL);
assertNotNull(obj);
JAXBElement<? extends FilterType> jaxfilter = (JAXBElement<? extends FilterType>) obj;
assertNotNull(jaxfilter);
Filter filter = TRANSFORMER_GT.visitFilter(jaxfilter.getValue());
assertNotNull(filter);
BinaryComparisonOperator prop = (BinaryComparisonOperator) filter;
ValueReference left = (ValueReference) prop.getOperand1();
Literal right = (Literal) prop.getOperand2();
assertEquals(left.getXPath(), valueStr);
assertEquals(((Number) right.apply(null)).floatValue(), valueF, DELTA);
// write test
FilterType ft = TRANSFORMER_OGC.apply(filter);
assertNotNull(ft.getComparisonOps());
ComparisonOpsType cot = ft.getComparisonOps().getValue();
BinaryComparisonOpType pibt = (BinaryComparisonOpType) cot;
PropertyNameType lf = (PropertyNameType) pibt.getExpression().get(0).getValue();
LiteralType rg = (LiteralType) pibt.getExpression().get(1).getValue();
assertEquals(valueStr, lf.getContent());
numberEquals(valueF, rg.getContent().get(0).toString().trim());
MARSHALLER.marshal(ft.getComparisonOps(), TEST_FILE_FIL_COMP_ISEQUAL);
POOL.recycle(MARSHALLER);
POOL.recycle(UNMARSHALLER);
}
Aggregations