Search in sources :

Example 1 with AbstractIdType

use of net.opengis.filter.v_2_0_0.AbstractIdType in project ddf by codice.

the class WfsFilterDelegate method buildFeatureIdFilter.

private FilterType buildFeatureIdFilter(Set<String> ids) {
    FilterType filterType = new FilterType();
    for (String id : ids) {
        List<JAXBElement<? extends AbstractIdType>> idFilterTypeList = filterType.getId();
        ResourceIdType resId = new ResourceIdType();
        resId.setRid(id);
        idFilterTypeList.add(filterObjectFactory.createResourceId(resId));
    }
    return filterType;
}
Also used : FilterType(net.opengis.filter.v_2_0_0.FilterType) ResourceIdType(net.opengis.filter.v_2_0_0.ResourceIdType) LineString(com.vividsolutions.jts.geom.LineString) JAXBElement(javax.xml.bind.JAXBElement) AbstractIdType(net.opengis.filter.v_2_0_0.AbstractIdType)

Example 2 with AbstractIdType

use of net.opengis.filter.v_2_0_0.AbstractIdType in project ddf by codice.

the class CswFilterFactory method getFeatureIds.

private Set<String> getFeatureIds(List<FilterType> filters) {
    Set<String> ids = new HashSet<String>();
    if (!CollectionUtils.isEmpty(filters)) {
        boolean isFeatureIdFilter = filters.get(0) != null && filters.get(0).isSetId();
        for (FilterType filter : filters) {
            if ((filter != null && filter.isSetId()) != isFeatureIdFilter) {
                throw new UnsupportedOperationException("Query with mix of FeatureID and non-FeatureID queries not supported.");
            }
            if (isFeatureIdFilter) {
                Iterator<JAXBElement<? extends AbstractIdType>> iter = filter.getId().iterator();
                while (iter.hasNext()) {
                    @SuppressWarnings("unchecked") FeatureIdType idType = ((JAXBElement<FeatureIdType>) iter.next()).getValue();
                    ids.add(idType.getFid());
                }
            }
        }
    }
    return ids;
}
Also used : FilterType(net.opengis.filter.v_1_1_0.FilterType) JAXBElement(javax.xml.bind.JAXBElement) AbstractIdType(net.opengis.filter.v_1_1_0.AbstractIdType) FeatureIdType(net.opengis.filter.v_1_1_0.FeatureIdType) HashSet(java.util.HashSet)

Example 3 with AbstractIdType

use of net.opengis.filter.v_2_0_0.AbstractIdType in project ddf by codice.

the class TestCswFilterDelegate method testFeatureIdOr.

@Test
public void testFeatureIdOr() throws JAXBException, SAXException, IOException, XpathException {
    ObjectFactory filterObjectFactory = new ObjectFactory();
    FeatureIdType fidType = new FeatureIdType();
    fidType.setFid("cswRecord.1234");
    List<JAXBElement<? extends AbstractIdType>> fidFilters = new ArrayList<>();
    fidFilters.add(filterObjectFactory.createFeatureId(fidType));
    FilterType idFilter = new FilterType();
    idFilter.setId(fidFilters);
    FeatureIdType fidType2 = new FeatureIdType();
    fidType2.setFid("cswRecord.5678");
    List<JAXBElement<? extends AbstractIdType>> fidFilters2 = new ArrayList<>();
    fidFilters2.add(filterObjectFactory.createFeatureId(fidType2));
    FilterType idFilter2 = new FilterType();
    idFilter2.setId(fidFilters2);
    List<FilterType> filters = new ArrayList<>();
    filters.add(idFilter);
    filters.add(idFilter2);
    FilterType filterType = cswFilterDelegateLatLon.or(filters);
    String xml = getXmlFromMarshaller(filterType);
    assertXpathExists("/ogc:Filter/ogc:FeatureId[@fid='cswRecord.1234']", xml);
    assertXpathExists("/ogc:Filter/ogc:FeatureId[@fid='cswRecord.5678']", xml);
}
Also used : FilterType(net.opengis.filter.v_1_1_0.FilterType) ObjectFactory(net.opengis.filter.v_1_1_0.ObjectFactory) ArrayList(java.util.ArrayList) JAXBElement(javax.xml.bind.JAXBElement) AbstractIdType(net.opengis.filter.v_1_1_0.AbstractIdType) FeatureIdType(net.opengis.filter.v_1_1_0.FeatureIdType) Test(org.junit.Test)

Example 4 with AbstractIdType

use of net.opengis.filter.v_2_0_0.AbstractIdType in project ddf by codice.

the class TestCswFilterDelegate method testFeatureIdAndComparisonOpsOr.

@Test(expected = UnsupportedOperationException.class)
public void testFeatureIdAndComparisonOpsOr() throws JAXBException, SAXException, IOException {
    ObjectFactory filterObjectFactory = new ObjectFactory();
    FeatureIdType fidType = new FeatureIdType();
    fidType.setFid("cswRecord.1234");
    List<JAXBElement<? extends AbstractIdType>> fidFilters = new ArrayList<>();
    fidFilters.add(filterObjectFactory.createFeatureId(fidType));
    FilterType idFilter = new FilterType();
    idFilter.setId(fidFilters);
    FilterType propertyIsLikeFilter = cswFilterDelegateLatLon.propertyIsLike(propertyName, likeLiteral, isCaseSensitive);
    List<FilterType> filterList = new ArrayList<>();
    filterList.add(idFilter);
    filterList.add(propertyIsLikeFilter);
    cswFilterDelegateLatLon.or(filterList);
}
Also used : FilterType(net.opengis.filter.v_1_1_0.FilterType) ObjectFactory(net.opengis.filter.v_1_1_0.ObjectFactory) ArrayList(java.util.ArrayList) JAXBElement(javax.xml.bind.JAXBElement) AbstractIdType(net.opengis.filter.v_1_1_0.AbstractIdType) FeatureIdType(net.opengis.filter.v_1_1_0.FeatureIdType) Test(org.junit.Test)

Example 5 with AbstractIdType

use of net.opengis.filter.v_2_0_0.AbstractIdType in project ddf by codice.

the class WfsFilterDelegate method getFeatureIds.

private Set<String> getFeatureIds(List<FilterType> filters) {
    Set<String> ids = new HashSet<String>();
    // must all be.
    if (!CollectionUtils.isEmpty(filters)) {
        boolean isFeatureIdFilter = filters.get(0) != null && filters.get(0).isSetId();
        for (FilterType filterType : filters) {
            if ((filterType != null && filterType.isSetId()) != isFeatureIdFilter) {
                throw new UnsupportedOperationException("Query with mix of feature ID and non-feature ID queries not supported");
            }
            if (isFeatureIdFilter) {
                List<JAXBElement<? extends AbstractIdType>> idFilterTypeList = filterType.getId();
                for (JAXBElement<? extends AbstractIdType> idFilter : idFilterTypeList) {
                    AbstractIdType absId = idFilter.getValue();
                    ResourceIdType resId = (ResourceIdType) absId;
                    ids.add(resId.getRid());
                }
            }
        }
    }
    return ids;
}
Also used : FilterType(net.opengis.filter.v_2_0_0.FilterType) ResourceIdType(net.opengis.filter.v_2_0_0.ResourceIdType) LineString(com.vividsolutions.jts.geom.LineString) JAXBElement(javax.xml.bind.JAXBElement) AbstractIdType(net.opengis.filter.v_2_0_0.AbstractIdType) HashSet(java.util.HashSet)

Aggregations

JAXBElement (javax.xml.bind.JAXBElement)5 AbstractIdType (net.opengis.filter.v_1_1_0.AbstractIdType)3 FeatureIdType (net.opengis.filter.v_1_1_0.FeatureIdType)3 FilterType (net.opengis.filter.v_1_1_0.FilterType)3 LineString (com.vividsolutions.jts.geom.LineString)2 ArrayList (java.util.ArrayList)2 HashSet (java.util.HashSet)2 ObjectFactory (net.opengis.filter.v_1_1_0.ObjectFactory)2 AbstractIdType (net.opengis.filter.v_2_0_0.AbstractIdType)2 FilterType (net.opengis.filter.v_2_0_0.FilterType)2 ResourceIdType (net.opengis.filter.v_2_0_0.ResourceIdType)2 Test (org.junit.Test)2