Hi again Sergey,

If you are only going to be using your filter programmatically (rather
than in SLD files) you can cheat a bit and set the string that you are
looking for in the filter function constructor like this...

public class Foo extends FunctionExpressionImpl {
    private final String typeName;

    public Foo(String typeName) {
        super("Foo");
        this.typeName = typeName;
    }

    @Override
    public int getArgCount() {
        return 0;
    }

    @Override
    public Object evaluate(Object feature) {
        return 
(((SimpleFeature)feature).getID().matches(String.format("%s\\.\\d+",
typeName)));
    }
}

Then you can use it to create a Filter like this...

        FilterFactory2 ff2 = CommonFactoryFinder.getFilterFactory2(null);
        org.opengis.filter.expression.Function foo = new Foo("some_name");
        org.opengis.filter.Filter filter = ff2.equals(foo, ff2.literal(true));

Michael

------------------------------------------------------------------------------

_______________________________________________
Geotools-gt2-users mailing list
Geotools-gt2-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to