Revision 44748 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java
DefaultCodeBuilder.java | ||
---|---|---|
49 | 49 |
import org.gvsig.expressionevaluator.Function; |
50 | 50 |
import org.gvsig.expressionevaluator.Interpreter; |
51 | 51 |
import org.gvsig.expressionevaluator.SymbolTable; |
52 |
import org.gvsig.expressionevaluator.impl.function.programming.GetattrFunction; |
|
53 | 52 |
import org.gvsig.expressionevaluator.impl.function.programming.GetitemFunction; |
54 | 53 |
import org.gvsig.tools.dynobject.DynObject; |
55 | 54 |
import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException; |
... | ... | |
272 | 271 |
return this.codes.size(); |
273 | 272 |
} |
274 | 273 |
|
275 |
public void add(String name, Code arg) { |
|
276 |
this.codes.add(new ImmutablePair<>(name, arg)); |
|
274 |
public void add(String name, Code parameter) { |
|
275 |
if( !StringUtils.isBlank(name) ) { |
|
276 |
for (int i = 0; i < codes.size(); i++) { |
|
277 |
Pair<String, Code> arg = codes.get(i); |
|
278 |
if( StringUtils.equalsIgnoreCase(name, arg.getKey()) ) { |
|
279 |
codes.set(i, new ImmutablePair<>(name, parameter)); |
|
280 |
return; |
|
281 |
} |
|
282 |
} |
|
283 |
} |
|
284 |
this.codes.add(new ImmutablePair<>(name, parameter)); |
|
277 | 285 |
} |
278 | 286 |
|
279 | 287 |
public void add(Code arg) { |
... | ... | |
285 | 293 |
} |
286 | 294 |
|
287 | 295 |
@Override |
296 |
public boolean contains(String name) { |
|
297 |
for (Pair<String, Code> arg : this.codes) { |
|
298 |
if( StringUtils.equalsIgnoreCase(arg.getKey(), name) ) { |
|
299 |
return true; |
|
300 |
} |
|
301 |
} |
|
302 |
return false; |
|
303 |
} |
|
304 |
|
|
305 |
@Override |
|
288 | 306 |
public boolean contains(String name, int index) { |
289 | 307 |
String argNameX = name + String.valueOf(index).trim(); |
290 | 308 |
for (Pair<String, Code> arg : this.codes) { |
... | ... | |
327 | 345 |
return null; |
328 | 346 |
} |
329 | 347 |
|
348 |
@Override |
|
330 | 349 |
public String getName(int n) { |
331 | 350 |
return this.codes.get(n).getKey(); |
332 | 351 |
} |
... | ... | |
548 | 567 |
break; |
549 | 568 |
case FUNCTION: |
550 | 569 |
default: |
551 |
if( StringUtils.equalsIgnoreCase(this.name(),GetattrFunction.NAME) ) {
|
|
570 |
if( StringUtils.equalsIgnoreCase(this.name(),ExpressionBuilder.FUNCTION_GETATTR) ) {
|
|
552 | 571 |
Code arg0 = this.parameters().get(0); |
553 | 572 |
Code arg1 = this.parameters().get(1); |
554 | 573 |
if( arg0 instanceof Code.Identifier && arg1 instanceof Code.Constant ) { |
... | ... | |
845 | 864 |
BaseCodes args = args(); |
846 | 865 |
args.add(obj); |
847 | 866 |
args.add(constant(attrname)); |
848 |
return function(GetattrFunction.NAME, args);
|
|
867 |
return function(ExpressionBuilder.FUNCTION_GETATTR, args);
|
|
849 | 868 |
} |
850 | 869 |
|
851 | 870 |
@Override |
Also available in: Unified diff