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;
}
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;
}
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);
}
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);
}
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;
}
Aggregations