Revision 41212 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureAttributeDescriptor.java
DefaultFeatureAttributeDescriptor.java | ||
---|---|---|
48 | 48 |
import org.gvsig.tools.dynobject.DynStruct; |
49 | 49 |
import org.gvsig.tools.dynobject.exception.DynFieldIsNotAContainerException; |
50 | 50 |
import org.gvsig.tools.dynobject.exception.DynFieldValidateException; |
51 |
import org.gvsig.tools.evaluator.AbstractEvaluator; |
|
51 | 52 |
import org.gvsig.tools.evaluator.Evaluator; |
53 |
import org.gvsig.tools.evaluator.EvaluatorData; |
|
54 |
import org.gvsig.tools.evaluator.EvaluatorException; |
|
52 | 55 |
import org.gvsig.tools.persistence.Persistent; |
53 | 56 |
import org.gvsig.tools.persistence.PersistentState; |
54 | 57 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
... | ... | |
618 | 621 |
FeatureAttributeGetter featureAttributeTransform) { |
619 | 622 |
this.featureAttributeGetter = featureAttributeTransform; |
620 | 623 |
} |
624 |
|
|
625 |
private class ConstantValueEvaluator extends AbstractEvaluator { |
|
626 |
public Object evaluate(EvaluatorData data) throws EvaluatorException { |
|
627 |
return defaultValue; |
|
628 |
} |
|
629 |
public String getName() { |
|
630 |
return "Constant attribute "+name; |
|
631 |
} |
|
632 |
} |
|
633 |
public void setConstantValue(boolean isConstantValue) { |
|
634 |
if( isConstantValue ) { |
|
635 |
/* Cuando un attributo tiene asociado un evaluador, este se interpreta |
|
636 |
* como que no debe cargarse de la fuente de datos subyacente, siendo |
|
637 |
* el evaluador el que se encarga de proporcionar su valor. |
|
638 |
* Nos limitamos a asignar un evaluador que retorna simpre el valor |
|
639 |
* por defecto para ese attributo. |
|
640 |
*/ |
|
641 |
this.evaluator = new ConstantValueEvaluator(); |
|
642 |
} else { |
|
643 |
this.evaluator = null; |
|
644 |
} |
|
645 |
} |
|
646 |
|
|
621 | 647 |
} |
Also available in: Unified diff