Benoît Thiébault wrote:
> OK for the text symbolizer, I have replaced the code as you said.
>
> Regarding the evaluate method, I have evaluated the two parameters
> against the object as you said (see below).
> I have built the formatter from the string result.
> But then, I don't know what to return. I have tried (T)
> formatter.format(propertyString), but it doesn't seem to work.
Here is a working example (you need to register the function
in SPI for it to work):
package org.aaa;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import org.geotools.data.DataUtilities;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.filter.FunctionExpressionImpl;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.filter.FilterFactory;
import org.opengis.filter.expression.Function;
public class FormatterFunction extends FunctionExpressionImpl {
public FormatterFunction() {
super("formatter");
}
@Override
public int getArgCount() {
return 2;
}
@Override
public Object evaluate(Object object) {
Double number = getExpression(0).evaluate(object, Double.class);
String pattern = getExpression(1).evaluate(object, String.class);
NumberFormat format = new DecimalFormat(pattern);
return format.format(number);
}
public static void main(String[] args) throws Exception {
SimpleFeatureType ft = DataUtilities.createType("testType",
"value:double,msg:String");
SimpleFeature f = DataUtilities.parse(ft, "testType.1", new
String[] {"1.56789", "hello"});
FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
Function formatter = ff.function("formatter",
ff.property("value"), ff.literal("#.##"));
System.out.println(formatter.evaluate(f));
}
}
Cheers
Andrea
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users