Revision 44744 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/impl/expressionevaluator/DefaultFeatureAttributeEmulatorExpression.java

View differences:

DefaultFeatureAttributeEmulatorExpression.java
47 47
    private String errorMessage;
48 48
    
49 49
    private boolean enableExceptions;
50
    private List<String> undefinedSymbols;
50 51
    
51 52
    private FilteredLogger logger;
52 53
    
......
69 70
    private void checkVars(final FeatureType featureType) {
70 71
        this.valid = true;
71 72
        final List<String> theUsedFields = new ArrayList<>();
72
        final List<String> undefinedFields = new ArrayList<>();
73
        this.undefinedSymbols = new ArrayList<>();
73 74
        
74 75
        try {
75 76
            Code code = this.expression.getCode();
......
80 81
                    if (code instanceof Identifier) {
81 82
                        String name = ((Identifier) code).name();
82 83
                        if (featureType.get(name) == null) {
83
                            undefinedFields.add(name);
84
                            valid = false;
84
                            undefinedSymbols.add(name);
85 85
                        } else {
86 86
                            theUsedFields.add(name);
87 87
                        }
88 88
                    }
89 89
                }
90 90
            });
91
            if(!undefinedFields.isEmpty()){
92
                this.errorMessage = "undefined fields " + StringUtils.join(undefinedFields,", ");
93
            }
94 91
        } catch (Exception ex) {
95 92
            valid = false;
96 93
            this.errorMessage = ex.getMessage();
......
99 96
    }
100 97

  
101 98
    @Override
99
    public List<String> getUndefinedSymbols() {
100
      return undefinedSymbols;
101
    }
102

  
103
    @Override
102 104
    public boolean isEnableExceptions() {
103 105
        return enableExceptions;
104 106
    }
......
134 136

  
135 137
    @Override
136 138
    public Object get(Feature feature) {
137
        if (!this.valid) {
138
            return null;
139
        }
140 139
        this.getFeatureSymbolTable().setFeature(feature);
141 140
        try {
142 141
            Object result = this.expression.execute(this.getSymbolTable());

Also available in: Unified diff