public Object evaluate(Object feature) { int arg0; try { // attempt to get value and perform conversion arg0 = (getExpression(0).evaluate(feature, Integer.class)).intValue(); } catch (Exception e) { // probably a type error throw new IllegalArgumentException( "Filter Function problem for function abs argument #0 - expected type int"); } return Integer.valueOf(Math.abs(arg0)); } }
@Test public void testSupportAll() throws Exception { PropertyIsEqualTo filter1 = createFunctionFilter(); FilterFunction_abs filterFunction_abs = new FilterFunction_abs(); filterFunction_abs.setParameters(Arrays.asList(new Expression[] {ff.property("name")})); PropertyIsEqualTo filter2 = ff.equals(ff.property("name"), filterFunction_abs); Filter filter = ff.and(filter1, filter2); visitor = newVisitor(new Capabilities()); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(filter, visitor.getFilterPost()); Capabilities filterCapabilitiesMask = new Capabilities(); filterCapabilitiesMask.addName(testFunction.getName()); filterFunction_abs = new FilterFunction_abs(); filterCapabilitiesMask.addName(filterFunction_abs.getName()); filterCapabilitiesMask.addAll(Capabilities.SIMPLE_COMPARISONS_OPENGIS); filterCapabilitiesMask.addAll(Capabilities.LOGICAL_OPENGIS); visitor = newVisitor(filterCapabilitiesMask); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); assertEquals(filter, visitor.getFilterPre()); }
public void testSupportOnlySome() throws Exception { PropertyIsEqualTo filter1 = createFunctionFilter(); FilterFunction_abs filterFunction_abs = new FilterFunction_abs(); filterFunction_abs.setParameters(Arrays.asList(new Expression[] {ff.property("name")})); PropertyIsEqualTo filter2 = ff.equals(ff.property("name"), filterFunction_abs); Filter filter = ff.and(filter1, filter2); FilterCapabilities filterCapabilitiesMask = new FilterCapabilities(); filterCapabilitiesMask.addType(FilterFunction_geometryType.class); filterCapabilitiesMask.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); filterCapabilitiesMask.addAll(FilterCapabilities.LOGICAL_OPENGIS); visitor = newVisitor(filterCapabilitiesMask); filter.accept(visitor, null); assertEquals(filter1, visitor.getFilterPre()); assertEquals(filter2, visitor.getFilterPost()); } }
(FilterFunction_abs) ff.function("abs", org.opengis.filter.expression.Expression.NIL); assertEquals("Name is, ", "abs", abs.getName()); assertEquals("Number of arguments, ", 1, abs.getFunctionName().getArgumentCount());
@Test public void testSupportOnlySome() throws Exception { PropertyIsEqualTo filter1 = createFunctionFilter(); FilterFunction_abs filterFunction_abs = new FilterFunction_abs(); filterFunction_abs.setParameters(Arrays.asList(new Expression[] {ff.property("name")})); PropertyIsEqualTo filter2 = ff.equals(ff.property("name"), filterFunction_abs); Filter filter = ff.and(filter1, filter2); Capabilities filterCapabilitiesMask = new Capabilities(); filterCapabilitiesMask.addName(testFunction.getName(), testFunction.getParameters().size()); filterCapabilitiesMask.addAll(Capabilities.SIMPLE_COMPARISONS_OPENGIS); filterCapabilitiesMask.addAll(Capabilities.LOGICAL_OPENGIS); visitor = newVisitor(filterCapabilitiesMask); filter.accept(visitor, null); assertEquals(filter1, visitor.getFilterPre()); assertEquals(filter2, visitor.getFilterPost()); } }
public Object evaluate(Object feature) { int arg0; try { // attempt to get value and perform conversion arg0 = (getExpression(0).evaluate(feature,Integer.class)).intValue(); } catch (Exception e) { // probably a type error throw new IllegalArgumentException( "Filter Function problem for function abs argument #0 - expected type int"); } return new Integer(Math.abs(arg0)); } }
public void testSupportAll() throws Exception { PropertyIsEqualTo filter1 = createFunctionFilter(); FilterFunction_abs filterFunction_abs = new FilterFunction_abs(); filterFunction_abs.setParameters(Arrays.asList(new Expression[] {ff.property("name")})); PropertyIsEqualTo filter2 = ff.equals(ff.property("name"), filterFunction_abs); Filter filter = ff.and(filter1, filter2); visitor = newVisitor(new FilterCapabilities()); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(filter, visitor.getFilterPost()); FilterCapabilities filterCapabilitiesMask = new FilterCapabilities(); filterCapabilitiesMask.addType(FilterFunction_geometryType.class); filterCapabilitiesMask.addType(FilterFunction_abs.class); filterCapabilitiesMask.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); filterCapabilitiesMask.addAll(FilterCapabilities.LOGICAL_OPENGIS); visitor = newVisitor(filterCapabilitiesMask); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); assertEquals(filter, visitor.getFilterPre()); }
public Object evaluate(Object feature) { int arg0; try { // attempt to get value and perform conversion arg0 = ((Number) getExpression(0).evaluate(feature)).intValue(); } catch (Exception e) { // probably a type error throw new IllegalArgumentException( "Filter Function problem for function abs argument #0 - expected type int"); } return new Integer(Math.abs(arg0)); } }