Revision 44790

View differences:

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