Revision 40733 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.daltransform.app/org.gvsig.daltransform.app.join/src/main/java/org/gvsig/app/join/dal/feature/JoinTransform.java

View differences:

JoinTransform.java
52 52
import org.gvsig.tools.persistence.PersistenceManager;
53 53
import org.gvsig.tools.persistence.PersistentState;
54 54
import org.gvsig.tools.persistence.exception.PersistenceException;
55
import org.slf4j.Logger;
56
import org.slf4j.LoggerFactory;
55 57

  
56 58
public class JoinTransform extends AbstractFeatureStoreTransform {
57 59

  
60
	private static Logger logger = LoggerFactory.getLogger(JoinTransform.class);
61
	
58 62
    public static final String PERSISTENCE_DEFINITION_NAME = "JoinTransform";
59 63
    
60 64
    /**
......
341 345

  
342 346
    private JoinTransformEvaluator getEvaluator() {
343 347
        if (this.evaluator == null){
344
            this.evaluator = new JoinTransformEvaluator(keyAttr2);
348
        	FeatureType ft2 = null;
349
        	try {
350
				ft2 = this.store2.getDefaultFeatureType();
351
			} catch (DataException e) {
352
				logger.error("While getting feat type.", e);
353
			}
354
        	FeatureAttributeDescriptor att2 = ft2.getAttributeDescriptor(keyAttr2);
355
        	boolean is_num = att2.getDataType().isNumeric();
356
            this.evaluator = new JoinTransformEvaluator(keyAttr2, is_num);
345 357
        }
346 358
        return evaluator;
347 359

  
......
350 362
    private class JoinTransformEvaluator implements Evaluator {
351 363

  
352 364
        private String attribute;
365
        private boolean isNumeric = false;
353 366
        private Object value;
354 367
        private String sql;
355 368
        private EvaluatorFieldsInfo info = null;
356 369

  
357 370
        //		private int attributeIndex;
358 371

  
359
        public JoinTransformEvaluator(String attribute) {
372
        public JoinTransformEvaluator(String attribute, boolean is_numeric) {
360 373
            this.attribute = attribute;
374
            this.isNumeric = is_numeric;
361 375
            this.value = null;
362 376
            this.info = new EvaluatorFieldsInfo();
363 377

  
......
366 380

  
367 381
        public void updateValue(Object value) {
368 382
            this.value = value;
369
            this.sql = this.attribute + "= '" + this.value + "'";
383
            String qt = this.isNumeric ? "" : "'";
384
            this.sql = this.attribute + " = " + qt + this.value + qt;
370 385
            this.info = new EvaluatorFieldsInfo();
371 386
            this.info.addMatchFieldValue(this.attribute, value);
372 387
        }

Also available in: Unified diff