Revision 45219

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/symboltable/FeatureSymbolTableImpl.java
107 107

  
108 108
  @Override
109 109
  public boolean exists(String name) {
110
    if (type == null) {
110
    if (feature == null) {
111 111
      return false;
112 112
    }
113
    if (type.get(name) != null) {
114
      return true;
113
    if (this.feature.hasValue(name)) {
114
        return true;
115 115
    }
116 116
    if (StringUtils.equalsIgnoreCase(name, this.storeName) ||
117 117
        StringUtils.equalsIgnoreCase(name, SYMBOL_CURRENT_TABLE) ||
118 118
        StringUtils.equalsIgnoreCase(name, SYMBOL_CURRENT_ROW) ) {
119 119
      return true;
120 120
    }
121
    if (feature == null) {
122
      return false;
123
    }
124
    if (this.feature.hasExtraValue(name)) {
125
      return true;
126
    }
127 121
    return false;
128 122
  }
129 123

  
130 124
  @Override
131 125
  public Object value(String name) {
132
    if (feature == null) {
126
      if (feature == null) {
127
          return null;
128
      }
129
      try {
130
          return this.feature.get(name);
131
      } catch (Exception ex) {
132
          //DO NOTHING
133
      }
134
      if (StringUtils.equalsIgnoreCase(name, SYMBOL_CURRENT_ROW)) {
135
          return this.feature;
136
      }
137
      if (StringUtils.equalsIgnoreCase(name, this.storeName)
138
              || StringUtils.equalsIgnoreCase(name, SYMBOL_CURRENT_TABLE)) {
139
          return this.storeAttributeHandler;
140
      }
133 141
      return null;
134
    }
135
    if (StringUtils.equalsIgnoreCase(name, this.storeName) ||
136
        StringUtils.equalsIgnoreCase(name, SYMBOL_CURRENT_TABLE)) {
137
      return this.storeAttributeHandler;
138
    }
139
    if (StringUtils.equalsIgnoreCase(name, SYMBOL_CURRENT_ROW)) {
140
      return this.feature;
141
    }
142
    try {
143
      return this.feature.get(name);
144
    } catch (Exception ex) {
145
      return this.feature.getExtraValue(name);
146
    }
147 142
  }
148 143

  
149 144
  @Override

Also available in: Unified diff