@SuppressWarnings("unchecked") @Override public Object evaluate(Object object, Class context) { return fallback.evaluate(object, context); } }
@Override public Object evaluate(Object object) { return fallback.evaluate(object); }
@Override public Object evaluate(Object object) { if (fallback != null) { return fallback.evaluate(object); } throw new UnsupportedOperationException("Function " + name + " not implemented"); }
/** * Default implementation simply returns the fallbackValue. * * <p>Please override this method to produce a value based on the provided arguments. * * @param object Object being evaluated; often a Feature * @return value for the provided object */ public Object evaluate(Object object) { if (fallbackValue != null) { return fallbackValue.evaluate(object); } throw new UnsupportedOperationException("Function " + name + " not implemented"); }
private void encodeInComparison(Function in, Literal bool, Object extraData) { boolean negated = "!=".equals(extraData); if (bool.evaluate(null, Boolean.class) == Boolean.FALSE) { negated = !negated; } visitInFunction(in, false, negated, null); }
private void processLiteralExpression(Literal literal, Unit<Length> defaultUnit) { // check if we have a uom attached at the end of the expression String value = literal.evaluate(null, String.class); if (value == null) { // let it go without doing anything, it may be a ConstantExpression.NULL return; } processLiteralExpression(value, defaultUnit); }
/** * Returns true if the geometry is fully empty * * @param geometry * @return */ private boolean isEmpty(Literal geometry) { if (geometry != null) { Geometry g = geometry.evaluate(null, Geometry.class); return g == null || g.isEmpty(); } return false; }
public int getClasses() { Literal classes = (Literal) getParameters().get(1); return ((Integer) classes.evaluate(null, Integer.class)).intValue(); }
/** * Shortcut to retrieve dash array in the case where all expressions are literal numbers. Return * the default value if one of the expressions is not a literal. */ public float[] getDashArray() { if (dashArray == null) { return Stroke.DEFAULT.getDashArray(); } float[] values = new float[dashArray.size()]; int index = 0; for (Expression expression : dashArray) { if (expression instanceof Literal) { Literal literal = (Literal) expression; values[index] = literal.evaluate(null, Float.class); } else { throw new RuntimeException("Dash array is not literal: '" + expression + "'."); } index++; } return values; }
public void setParameters(List args) { super.setParameters(args); classifier = (ClassificationFunction) getExpression(0); paletteName = ((Literal) getExpression(1)).evaluate(null, String.class); }
public Object visit(Literal expression, Object extraData) { Object value = expression.getValue(); if (value == null) { element("Literal", ""); } else if (value instanceof Geometry) { geometryEncoder.encode((Geometry) value); } else { String txt = expression.evaluate(null, String.class); if (txt == null) { txt = value.toString(); } element("Literal", txt); } return extraData; }
/** * Returns true if the geometry covers the entire world * * @param geometry * @return */ private boolean isWorld(Literal geometry) { if (geometry != null) { Geometry g = geometry.evaluate(null, Geometry.class); if (g != null) { return JTS.toGeometry(WORLD).equalsTopo(g.union()); } } return false; }
private Attribute buildSimpleContentInternal(AttributeType simpleContentType, Object value) { Object convertedValue = FF.literal(value).evaluate(value, simpleContentType.getBinding()); AttributeDescriptor descriptor = new AttributeDescriptorImpl( simpleContentType, ComplexFeatureConstants.SIMPLE_CONTENT, 1, 1, true, (Object) null); return new AttributeImpl(convertedValue, descriptor, null); }
public void testConversion() throws Exception { assertEquals("abc", ff.literal("abc").evaluate(null)); assertEquals(Integer.valueOf(12), ff.literal("12").evaluate(null, Integer.class)); assertEquals(new Double(12.0), ff.literal("12.0").evaluate(null, Double.class)); assertEquals(new Double(12.5), ff.literal("12.5").evaluate(null, Double.class)); assertEquals( Long.valueOf(Long.MAX_VALUE), ff.literal(Long.MAX_VALUE + "").evaluate(null, Long.class)); BigInteger doubleMaxLong = BigInteger.valueOf(Long.MAX_VALUE).multiply(BigInteger.valueOf(2)); assertEquals( doubleMaxLong, ff.literal(doubleMaxLong.toString()).evaluate(null, BigInteger.class)); }
protected void setUp() throws Exception { super.setUp(); ff = (FilterFactoryImpl) CommonFactoryFinder.getFilterFactory2(null); literal_1 = ff.literal("1"); literal_m1 = ff.literal("-1"); literal_2 = ff.literal("2"); literal_m2 = ff.literal("-2"); literal_pi = ff.literal(String.valueOf(Math.PI)); literal_05pi = ff.literal(String.valueOf(0.5 * Math.PI)); assertEquals( "Literal Expression 0.0", new Double(1.0), literal_1.evaluate(null, Double.class)); assertEquals( "Literal Expression pi", new Double(Math.PI), literal_pi.evaluate(null, Double.class)); assertEquals( "Literal Expression 05pi", new Double(0.5 * Math.PI), literal_05pi.evaluate(null, Double.class)); }
public Object visit(BBOX filter, Object extraData) { Expression left = filter.getExpression1(); Expression right = filter.getExpression2(); final String type = "BBOX"; start(type); left.accept(this, extraData); if (right instanceof Literal) { Literal literal = (Literal) right; Envelope bbox = literal.evaluate(null, Envelope.class); if (bbox != null) { geometryEncoder.encode(bbox); } else { right.accept(this, extraData); } } else { right.accept(this, extraData); } end(type); return extraData; }
@Test public void force3DCRS2DEnvelope() throws Exception { CoordinateReferenceSystem crs = CRS.decode("EPSG:4939", true); CoordinateReferenceSystem hcrs = CRS.getHorizontalCRS(crs); BBOX bbox = ff.bbox("the_geom", -180, -90, 180, 90, null); DefaultCRSFilterVisitor visitor = new DefaultCRSFilterVisitor(ff, crs); BBOX filtered = (BBOX) bbox.accept(visitor, null); Literal box = (Literal) filtered.getExpression2(); Geometry g = (Geometry) box.evaluate(null); assertEquals(hcrs, g.getUserData()); }
@Test public void force3DCRS3DEnvelope() throws Exception { CoordinateReferenceSystem crs = CRS.decode("EPSG:4939", true); CoordinateReferenceSystem hcrs = CRS.getHorizontalCRS(crs); BBOX bbox = ff.bbox( ff.property("the_geom"), new ReferencedEnvelope3D(-180, 180, -90, 90, 0, 100, null)); DefaultCRSFilterVisitor visitor = new DefaultCRSFilterVisitor(ff, crs); BBOX filtered = (BBOX) bbox.accept(visitor, null); Literal box = (Literal) filtered.getExpression2(); Geometry g = (Geometry) box.evaluate(null); assertEquals(crs, g.getUserData()); } }
public void testCacheMultipleLibraries() { WKTMarkFactoryPublic wmfp = new WKTMarkFactoryPublic(); wmfp.setRoot(rootDir); try { // Adds 1st library to cache Literal exp = ff.literal("wkt.properties"); wmfp.addToCachePublic(exp.evaluate(feature, String.class)); // Adds 2nd library to cache exp = ff.literal("wkt2.properties"); wmfp.addToCachePublic(exp.evaluate(feature, String.class)); // Check "ls" has been loaded assertEquals( wmfp.getFromCachePublic("wkt.properties", "ls"), "LINESTRING(0.0 0.25, 0.25 0.25, 0.5 0.75, 0.75 0.25, 1.00 0.25)"); // Check "ls2" has been loaded assertEquals( wmfp.getFromCachePublic("wkt2.properties", "ls2"), "LINESTRING(0.0 0.5, 0.5 0.5, 0.75 1.0, 1.0 0.5, 1.25 0.5)"); assertTrue(true); } catch (Exception e) { assertTrue(false); } } }
public void testCacheSingleLibrary() { WKTMarkFactoryPublic wmfp = new WKTMarkFactoryPublic(); wmfp.setRoot(rootDir); try { // Adds library to cache Literal exp = ff.literal("wkt.properties"); wmfp.addToCachePublic(exp.evaluate(feature, String.class)); // Check "ls" has been loaded assertEquals( wmfp.getFromCachePublic("wkt.properties", "ls"), "LINESTRING(0.0 0.25, 0.25 0.25, 0.5 0.75, 0.75 0.25, 1.00 0.25)"); // Check "xx" has not been loaded assertEquals(wmfp.getFromCachePublic("wkt.properties", "xx"), null); assertTrue(true); } catch (Exception e) { assertTrue(false); } }