private static Capabilities createFilterCapabilities() {
// Create Capabilities helper class
//
Capabilities capabilities = new Capabilities();
// Add EFeature ID filter capability
//
capabilities.addType(Id.class);
// Add Include All filter capability
//
capabilities.addType(IncludeFilter.class);
// Add Exclude All filter capability
//
capabilities.addType(ExcludeFilter.class);
// Add logical operators (AND, OR, NOT)
//
capabilities.addAll(Capabilities.LOGICAL);
// Add simple comparators
//
capabilities.addAll(Capabilities.SIMPLE_COMPARISONS);
// Add special comparators
//
capabilities.addName(PropertyIsNull.NAME);
// Add spatial operations
//
capabilities.addName(BBOX.NAME);
capabilities.addName(Equals.NAME);
capabilities.addName(Disjoint.NAME);
capabilities.addName(Intersects.NAME);
capabilities.addName(Touches.NAME);
capabilities.addName(Crosses.NAME);
capabilities.addName(Within.NAME);
capabilities.addName(Contains.NAME);
capabilities.addName(Overlaps.NAME);
capabilities.addName(Beyond.NAME);
capabilities.addName(DWithin.NAME);
// Finished
//
return capabilities;