Search in sources :

Example 16 with BinaryComparisonOpType

use of org.geotoolkit.ogc.xml.v100.BinaryComparisonOpType in project geotoolkit by Geomatys.

the class OGC110Test method testFilterComparisonPropertyIsGreaterThanOrEqual.

@Test
public void testFilterComparisonPropertyIsGreaterThanOrEqual() throws JAXBException, NoSuchAuthorityCodeException, FactoryException {
    final Unmarshaller UNMARSHALLER = POOL.acquireUnmarshaller();
    final Marshaller MARSHALLER = POOL.acquireMarshaller();
    // Read test
    Object obj = UNMARSHALLER.unmarshal(FILE_FIL_COMP_ISGREATEROREQUAL);
    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));
    MARSHALLER.marshal(ft.getComparisonOps(), TEST_FILE_FIL_COMP_ISGREATEROREQUAL);
    POOL.recycle(MARSHALLER);
    POOL.recycle(UNMARSHALLER);
}
Also used : Marshaller(javax.xml.bind.Marshaller) ComparisonOpsType(org.geotoolkit.ogc.xml.v110.ComparisonOpsType) LiteralType(org.geotoolkit.ogc.xml.v110.LiteralType) JAXBElement(javax.xml.bind.JAXBElement) FilterType(org.geotoolkit.ogc.xml.v110.FilterType) Filter(org.opengis.filter.Filter) Literal(org.opengis.filter.Literal) Unmarshaller(javax.xml.bind.Unmarshaller) BinaryComparisonOperator(org.opengis.filter.BinaryComparisonOperator) BinaryComparisonOpType(org.geotoolkit.ogc.xml.v110.BinaryComparisonOpType) ValueReference(org.opengis.filter.ValueReference) PropertyNameType(org.geotoolkit.ogc.xml.v110.PropertyNameType) Test(org.junit.Test)

Example 17 with BinaryComparisonOpType

use of org.geotoolkit.ogc.xml.v100.BinaryComparisonOpType in project ddf by codice.

the class CswQueryFactoryTest method testPostGetRecordsTemporalPropertyIsGreaterOrEqualOgcFilter.

@Ignore("TODO: the functions this test tests has been augmented to play well with the limited capabilities of the Solr provider.  " + "These tests and the functions they test should be reenabled and refactored after DDF-311 is addressed")
@Test
public void testPostGetRecordsTemporalPropertyIsGreaterOrEqualOgcFilter() throws CswException, UnsupportedQueryException, SourceUnavailableException, FederationException {
    BinaryComparisonOpType op = createTemporalBinaryComparisonOpType(CswConstants.CSW_CREATED, TIMESTAMP);
    ogcOrdTemporalQuery(filterObjectFactory.createPropertyIsGreaterThanOrEqualTo(op));
}
Also used : BinaryComparisonOpType(net.opengis.filter.v_1_1_0.BinaryComparisonOpType) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 18 with BinaryComparisonOpType

use of org.geotoolkit.ogc.xml.v100.BinaryComparisonOpType in project ddf by codice.

the class CswQueryFactoryTest method testPostGetRecordsTemporalPropertyIsGreaterOgcFilter.

@Ignore("TODO: the functions this test tests has been augmented to play well with the limited capabilities of the Solr provider.  " + "These tests and the functions they test should be reenabled and refactored after DDF-311 is addressed")
@Test
public void testPostGetRecordsTemporalPropertyIsGreaterOgcFilter() throws CswException, UnsupportedQueryException, SourceUnavailableException, FederationException {
    BinaryComparisonOpType op = createTemporalBinaryComparisonOpType(CswConstants.CSW_CREATED, TIMESTAMP);
    ogcTemporalQuery(Core.CREATED, filterObjectFactory.createPropertyIsGreaterThan(op), After.class);
}
Also used : BinaryComparisonOpType(net.opengis.filter.v_1_1_0.BinaryComparisonOpType) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 19 with BinaryComparisonOpType

use of org.geotoolkit.ogc.xml.v100.BinaryComparisonOpType in project ddf by codice.

the class WfsFilterDelegate method createPropertyIsFilter.

private JAXBElement<? extends ComparisonOpsType> createPropertyIsFilter(String property, Object literal, PROPERTY_IS_OPS operation) {
    switch(operation) {
        case PROPERTY_IS_EQUAL_TO:
            JAXBElement<BinaryComparisonOpType> propIsEqualTo = filterObjectFactory.createPropertyIsEqualTo(new BinaryComparisonOpType());
            propIsEqualTo.getValue().getExpression().add(createPropertyNameType(property));
            propIsEqualTo.getValue().getExpression().add(createLiteralType(literal));
            return propIsEqualTo;
        case PROPERTY_IS_NOT_EQUAL_TO:
            JAXBElement<BinaryComparisonOpType> propIsNotEqualTo = filterObjectFactory.createPropertyIsNotEqualTo(new BinaryComparisonOpType());
            propIsNotEqualTo.getValue().getExpression().add(createPropertyNameType(property));
            propIsNotEqualTo.getValue().getExpression().add(createLiteralType(literal));
            return propIsNotEqualTo;
        case PROPERTY_IS_GREATER_THAN:
            JAXBElement<BinaryComparisonOpType> propIsGreaterThan = filterObjectFactory.createPropertyIsGreaterThan(new BinaryComparisonOpType());
            propIsGreaterThan.getValue().getExpression().add(createPropertyNameType(property));
            propIsGreaterThan.getValue().getExpression().add(createLiteralType(literal));
            return propIsGreaterThan;
        case PROPERTY_IS_GREATER_THAN_OR_EQUAL_TO:
            JAXBElement<BinaryComparisonOpType> propIsGreaterThanOrEqualTo = filterObjectFactory.createPropertyIsGreaterThanOrEqualTo(new BinaryComparisonOpType());
            propIsGreaterThanOrEqualTo.getValue().getExpression().add(createPropertyNameType(property));
            propIsGreaterThanOrEqualTo.getValue().getExpression().add(createLiteralType(literal));
            return propIsGreaterThanOrEqualTo;
        case PROPERTY_IS_LESS_THAN:
            JAXBElement<BinaryComparisonOpType> propIsLessThan = filterObjectFactory.createPropertyIsLessThan(new BinaryComparisonOpType());
            propIsLessThan.getValue().getExpression().add(createPropertyNameType(property));
            propIsLessThan.getValue().getExpression().add(createLiteralType(literal));
            return propIsLessThan;
        case PROPERTY_IS_LESS_THAN_OR_EQUAL_TO:
            JAXBElement<BinaryComparisonOpType> propIsLessThanOrEqualTo = filterObjectFactory.createPropertyIsLessThanOrEqualTo(new BinaryComparisonOpType());
            propIsLessThanOrEqualTo.getValue().getExpression().add(createPropertyNameType(property));
            propIsLessThanOrEqualTo.getValue().getExpression().add(createLiteralType(literal));
            return propIsLessThanOrEqualTo;
        case PROPERTY_IS_LIKE:
            JAXBElement<PropertyIsLikeType> propIsLike = filterObjectFactory.createPropertyIsLike(new PropertyIsLikeType());
            propIsLike.getValue().setEscapeChar(Wfs20Constants.ESCAPE);
            propIsLike.getValue().setSingleChar(SINGLE_CHAR);
            propIsLike.getValue().setWildCard(Wfs20Constants.WILD_CARD);
            propIsLike.getValue().getExpression().add(createLiteralType(literal));
            propIsLike.getValue().getExpression().add(createPropertyNameType(property));
            return propIsLike;
        default:
            throw new UnsupportedOperationException("Unsupported Property Comparison Type");
    }
}
Also used : BinaryComparisonOpType(net.opengis.filter.v_2_0_0.BinaryComparisonOpType) PropertyIsLikeType(net.opengis.filter.v_2_0_0.PropertyIsLikeType)

Example 20 with BinaryComparisonOpType

use of org.geotoolkit.ogc.xml.v100.BinaryComparisonOpType in project ddf by codice.

the class CswFilterFactory method createPropertyIsLessThan.

private JAXBElement<BinaryComparisonOpType> createPropertyIsLessThan(String propertyName, Object literal) {
    BinaryComparisonOpType propertyIsLessThan = new BinaryComparisonOpType();
    propertyIsLessThan.getExpression().add(createPropertyNameType(Arrays.asList(new Object[] { propertyName })));
    propertyIsLessThan.getExpression().add(createLiteralType(literal));
    return filterObjectFactory.createPropertyIsLessThan(propertyIsLessThan);
}
Also used : BinaryComparisonOpType(net.opengis.filter.v_1_1_0.BinaryComparisonOpType)

Aggregations

Test (org.junit.Test)22 JAXBElement (javax.xml.bind.JAXBElement)21 Marshaller (javax.xml.bind.Marshaller)18 Unmarshaller (javax.xml.bind.Unmarshaller)18 BinaryComparisonOperator (org.opengis.filter.BinaryComparisonOperator)18 Filter (org.opengis.filter.Filter)18 Literal (org.opengis.filter.Literal)18 ValueReference (org.opengis.filter.ValueReference)18 BinaryComparisonOpType (net.opengis.filter.v_1_1_0.BinaryComparisonOpType)13 BinaryComparisonOpType (org.geotoolkit.ogc.xml.v100.BinaryComparisonOpType)9 FilterType (org.geotoolkit.ogc.xml.v100.FilterType)9 LiteralType (org.geotoolkit.ogc.xml.v100.LiteralType)9 PropertyNameType (org.geotoolkit.ogc.xml.v100.PropertyNameType)9 BinaryComparisonOpType (org.geotoolkit.ogc.xml.v110.BinaryComparisonOpType)9 FilterType (org.geotoolkit.ogc.xml.v110.FilterType)9 LiteralType (org.geotoolkit.ogc.xml.v110.LiteralType)9 PropertyNameType (org.geotoolkit.ogc.xml.v110.PropertyNameType)9 ComparisonOpsType (org.geotoolkit.ogc.xml.v100.ComparisonOpsType)6 ComparisonOpsType (org.geotoolkit.ogc.xml.v110.ComparisonOpsType)6 LogicalOperator (org.opengis.filter.LogicalOperator)6