Revision 44790
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestDateExpressionBuilder.java | ||
---|---|---|
15 | 15 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Value; |
16 | 16 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
17 | 17 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
18 |
import org.gvsig.tools.dataTypes.DataTypes; |
|
18 | 19 |
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
19 | 20 |
|
20 | 21 |
/** |
... | ... | |
206 | 207 |
|
207 | 208 |
} |
208 | 209 |
|
210 |
public void testConstant() { |
|
211 |
ExpressionBuilder builder = createExpressionBuilder(); |
|
209 | 212 |
|
213 |
Value v = builder.constant(10,DataTypes.INT); |
|
214 |
assertEquals("10", v.toString()); |
|
210 | 215 |
|
216 |
v = builder.constant("10",DataTypes.INT); |
|
217 |
assertEquals("10", v.toString()); |
|
218 |
|
|
219 |
v = builder.constant(10,DataTypes.LONG); |
|
220 |
assertEquals("10", v.toString()); |
|
221 |
|
|
222 |
v = builder.constant("10",DataTypes.LONG); |
|
223 |
assertEquals("10", v.toString()); |
|
224 |
|
|
225 |
v = builder.constant(10.5,DataTypes.DOUBLE); |
|
226 |
assertEquals("10.5", v.toString()); |
|
227 |
|
|
228 |
v = builder.constant("10.5",DataTypes.DOUBLE); |
|
229 |
// assertEquals("10.5", v.toString()); |
|
230 |
|
|
231 |
v = builder.constant(10,DataTypes.STRING); |
|
232 |
assertEquals("'10'", v.toString()); |
|
233 |
|
|
234 |
v = builder.constant(10.5,DataTypes.STRING); |
|
235 |
// assertEquals("'10.5'", v.toString()); |
|
236 |
|
|
237 |
} |
|
238 |
|
|
211 | 239 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultExpressionBuilder.java | ||
---|---|---|
22 | 22 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
23 | 23 |
import org.gvsig.expressionevaluator.Formatter; |
24 | 24 |
import org.gvsig.expressionevaluator.ReprMethod; |
25 |
import org.gvsig.tools.ToolsLocator; |
|
26 |
import org.gvsig.tools.dataTypes.Coercion; |
|
27 |
import org.gvsig.tools.dataTypes.DataTypesManager; |
|
25 | 28 |
|
26 | 29 |
@SuppressWarnings({"UseSpecificCatch" ,"OverridableMethodCallInConstructor"}) |
27 | 30 |
public class DefaultExpressionBuilder implements ExpressionBuilder { |
... | ... | |
791 | 794 |
} |
792 | 795 |
|
793 | 796 |
@Override |
797 |
public Constant constant(Object value, Class theClass) { |
|
798 |
try { |
|
799 |
DataTypesManager dataTypeManager = ToolsLocator.getDataTypesManager(); |
|
800 |
Coercion coercion = dataTypeManager.getDataType(theClass).getCoercion(); |
|
801 |
return this.constant(coercion.coerce(value)); |
|
802 |
} catch (Exception ex) { |
|
803 |
throw new RuntimeException("Can't coerce value ("+Objects.toString(value)+") to "+theClass.getSimpleName()+".", ex); |
|
804 |
} |
|
805 |
} |
|
806 |
|
|
807 |
@Override |
|
808 |
public Constant constant(Object value, int type) { |
|
809 |
try { |
|
810 |
DataTypesManager dataTypeManager = ToolsLocator.getDataTypesManager(); |
|
811 |
Coercion coercion = dataTypeManager.getCoercion(type); |
|
812 |
return this.constant(coercion.coerce(value)); |
|
813 |
} catch (Exception ex) { |
|
814 |
throw new RuntimeException("Can't coerce value ("+Objects.toString(value)+") to "+type+".", ex); |
|
815 |
} |
|
816 |
} |
|
817 |
|
|
818 |
@Override |
|
794 | 819 |
public Group group(Value value) { |
795 | 820 |
return new GroupBase(value); |
796 | 821 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java | ||
---|---|---|
295 | 295 |
|
296 | 296 |
public Constant constant(Object value); |
297 | 297 |
|
298 |
public Constant constant(Object value, int type); |
|
299 |
|
|
300 |
public Constant constant(Object value, Class theClass); |
|
301 |
|
|
298 | 302 |
public Custom custom(Object value); |
299 | 303 |
|
300 | 304 |
public Method method(Value instance, String name, Value... values); |
Also available in: Unified diff