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 |
}
|