Java源码示例:org.opengis.filter.PropertyIsNull
示例1
/**
* Write the FilterBuilder for a Not filter
*
* @param filter the filter to visit
* @param extraData extra data (unused by this method)
*
*/
public Object visit(Not filter, Object extraData) {
if(filter.getFilter() instanceof PropertyIsNull) {
Expression expr = ((PropertyIsNull) filter.getFilter()).getExpression();
expr.accept(this, extraData);
} else {
filter.getFilter().accept(this, extraData);
}
if(filter.getFilter() instanceof PropertyIsNull) {
queryBuilder = ImmutableMap.of("exists", ImmutableMap.of("field", field));
} else {
queryBuilder = ImmutableMap.of("bool", ImmutableMap.of("must_not", queryBuilder));
}
return extraData;
}
示例2
public ElasticCapabilities() {
super(new ElasticFilterCapabilities());
addAll(LOGICAL_OPENGIS);
addAll(SIMPLE_COMPARISONS_OPENGIS);
addType(PropertyIsNull.class);
addType(PropertyIsBetween.class);
addType(Id.class);
addType(IncludeFilter.class);
addType(ExcludeFilter.class);
addType(PropertyIsLike.class);
// spatial filters
addType(BBOX.class);
addType(Contains.class);
//addType(Crosses.class);
addType(Disjoint.class);
//addType(Equals.class);
addType(Intersects.class);
//addType(Overlaps.class);
//addType(Touches.class);
addType(Within.class);
addType(DWithin.class);
addType(Beyond.class);
//temporal filters
addType(After.class);
addType(Before.class);
addType(Begins.class);
addType(BegunBy.class);
addType(During.class);
addType(Ends.class);
addType(EndedBy.class);
addType(TContains.class);
addType(TEquals.class);
}
示例3
@Test
public void testPropertyIsNull() {
PropertyIsNull filter = ff.isNull(ff.property("prop"));
Map<String,Object> expected = ImmutableMap.of("bool", ImmutableMap.of("must_not",
ImmutableMap.of("exists", ImmutableMap.of("field", "prop"))));
builder.visit(filter, null);
assertTrue(builder.createCapabilities().fullySupports(filter));
assertEquals(expected, builder.getQueryBuilder());
}
示例4
@Test
public void testGetFeaturesWithIsNullFilter() throws Exception {
init();
FilterFactory ff = dataStore.getFilterFactory();
PropertyIsNull f = ff.isNull(ff.property("security_ss"));
SimpleFeatureCollection features = featureSource.getFeatures(f);
assertEquals(1, features.size());
}
示例5
@Override
public Object visit(final PropertyIsNull filter, final Object extraData) {
if (!usesProperty(filter)) {
return Filter.INCLUDE;
}
return super.visit(filter, extraData);
}
示例6
@Override
public Object visit(final PropertyIsNull filter, final Object extraData) {
if (!usesProperty(filter)) {
return Filter.INCLUDE;
}
return super.visit(filter, extraData);
}
示例7
/** {@inheritDoc} */
@Override
public Object visit(PropertyIsNull filter, Object userData) {
String propertyName = getPropertyName(filter.getExpression());
String finalName = parsePropertyName(propertyName, userData);
return Restrictions.isNull(finalName);
}
示例8
/**
* Sets the filter.
*
* @param filter the new expression
* @param filterConfig the filter config
*/
public void setFilter(Filter filter, FilterConfigInterface filterConfig) {
this.filter = filter;
this.filterConfig = filterConfig;
setDisplayString();
this.removeAllChildren();
TypeManager.getInstance().reset();
if (filterConfig != null) {
FilterName filterName = filterConfig.getFilterConfiguration();
if (filter instanceof Not) {
setNotFilter(filter, filterName);
} else if (filter instanceof LogicFilterImpl) {
setLogicFilter(filter, filterName);
} else if (filter instanceof BinaryTemporalOperator) {
setExpressionParameter(
((BinaryTemporalOperator) filter).getExpression1(),
filterName.getParameter(0));
setExpressionParameter(
((BinaryTemporalOperator) filter).getExpression2(),
filterName.getParameter(1));
} else if (filter instanceof PropertyIsNull) {
setExpressionParameter(
((PropertyIsNull) filter).getExpression(), filterName.getParameter(0));
} else if (filter instanceof PropertyIsBetween) {
setExpressionParameter(
((PropertyIsBetween) filter).getLowerBoundary(),
filterName.getParameter(0));
setExpressionParameter(
((PropertyIsBetween) filter).getExpression(), filterName.getParameter(1));
setExpressionParameter(
((PropertyIsBetween) filter).getUpperBoundary(),
filterName.getParameter(2));
} else if (filter instanceof PropertyIsLike) {
setExpressionParameter(
((PropertyIsLike) filter).getExpression(), filterName.getParameter(0));
setExpressionParameter(
ff.literal(((PropertyIsLike) filter).getLiteral()),
filterName.getParameter(1));
setExpressionStringSizeParameter(
ff.literal(((PropertyIsLike) filter).getWildCard()),
filterName.getParameter(2),
1,
true);
setExpressionStringSizeParameter(
ff.literal(((PropertyIsLike) filter).getSingleChar()),
filterName.getParameter(3),
1,
true);
setExpressionStringSizeParameter(
ff.literal(((PropertyIsLike) filter).getEscape()),
filterName.getParameter(4),
1,
true);
setExpressionParameter(
ff.literal(((PropertyIsLike) filter).isMatchingCase()),
filterName.getParameter(5));
} else if (filter instanceof BinarySpatialOperator) {
setBinarySpatialOperator(filter, filterName);
} else if (filter instanceof BinaryComparisonAbstract) {
setBinaryComparisonAbstract(filter, filterName);
} else if (filter instanceof FidFilterImpl) {
FidFilterImpl fidFilter = (FidFilterImpl) filter;
for (Identifier identifier : fidFilter.getIdentifiers()) {
setExpressionParameter(ff.literal(identifier), filterName.getParameter(0));
}
}
}
}
示例9
/**
* Adds the filter.
*
* @param node the node
* @return the filter
*/
private Filter addFilter(FilterNode node) {
Filter nodeFilter = node.getFilter();
FilterConfigInterface filterConfig = node.getFilterConfig();
if (nodeFilter instanceof LogicFilterImpl) {
List<Filter> filterList = new ArrayList<>();
createFilterList(node, filterList);
return filterConfig.createLogicFilter(filterList);
}
List<Expression> parameterFilter = new ArrayList<>();
if (originalFilter instanceof FidFilterImpl) {
createExpressionParameterList(node, 1, parameterFilter);
} else if (originalFilter instanceof BinaryTemporalOperator) {
createExpressionParameterList(node, 2, parameterFilter);
} else if (originalFilter instanceof PropertyIsBetween) {
createExpressionParameterList(node, 3, parameterFilter);
} else if (originalFilter instanceof PropertyIsNull) {
createExpressionParameterList(node, 1, parameterFilter);
} else if (originalFilter instanceof PropertyIsLike) {
createExpressionParameterList(node, 6, parameterFilter);
} else if (originalFilter instanceof BinarySpatialOperator) {
createExpressionParameterList(node, 2, parameterFilter);
} else if (originalFilter instanceof BinaryComparisonAbstract) {
if (originalFilter instanceof Not) {
createExpressionParameterList(node, 1, parameterFilter);
} else if (originalFilter instanceof PropertyIsGreaterThan) {
createExpressionParameterList(node, 2, parameterFilter);
} else {
createExpressionParameterList(node, 3, parameterFilter);
}
} else {
return nodeFilter;
}
return filterConfig.createFilter(parameterFilter);
}
示例10
@Override
public Object visit(final PropertyIsNull filter, final Object data) {
return new ExtractGeometryFilterVisitorResult(infinity(), null);
}
示例11
@Override
public Object visit(final PropertyIsNull filter, final Object data) {
return new TemporalConstraints();
}
示例12
/**
* Writes the FilterBuilder for the Null Filter.
*
* @param filter the null filter.
*
*/
public Object visit(PropertyIsNull filter, Object extraData) {
LOGGER.finest("exporting NullFilter");
Expression expr = filter.getExpression();
expr.accept(this, extraData);
queryBuilder = ImmutableMap.of("bool",
ImmutableMap.of("must_not", ImmutableMap.of("exists", ImmutableMap.of("field", field))));
return extraData;
}