BBOXImpl extends AbstractPreparedGeometryFilter implements BBOX { public String getSRS() { return srs; } BBOXImpl(Expression e1, Expression e2);  BBOXImpl(Expression name, double minx, double miny, double maxx, double maxy, String srs);  BBOXImpl(Expression e1, Expression e2, MatchAction matchAction);  BBOXImpl(Expression name, double minx, double miny, double maxx, double maxy,
            String srs, MatchAction matchAction); String getPropertyName(); void setPropertyName(String propertyName); String getSRS(); void setSRS(String srs); double getMinX(); void setMinX(double minx); double getMinY(); void setMinY(double miny); double getMaxX(); void setMaxX(double maxx); double getMaxY(); void setMaxY(double maxy); @Override boolean evaluateInternal(Geometry left, Geometry right); Object accept(FilterVisitor visitor, Object extraData); void setExpression1(Expression expression); void setExpression2(Expression expression); static Polygon boundingPolygon( Envelope env ); @Override BoundingBox getBounds();  }
@Test public void testPreserveOriginalSRS() throws NoSuchAuthorityCodeException, FactoryException { String srs = "AUTO:42004,9001,0,33"; CoordinateReferenceSystem crs = CRS.decode(srs); BBOX bbox = ff.bbox(ff.property(""), 0, 1000, 2000, 3000, srs); Geometry geom = bbox.getExpression2().evaluate(null, Geometry.class); assertEquals(crs, geom.getUserData()); assertEquals(srs, bbox.getSRS()); }