Revision 46505 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/DefaultExpressionBuilder.java
DefaultExpressionBuilder.java | ||
---|---|---|
85 | 85 |
|
86 | 86 |
@Override |
87 | 87 |
public void accept(Visitor visitor, VisitorFilter filter) { |
88 |
super.accept(visitor, filter); |
|
89 |
this.value.accept(visitor, filter); |
|
88 |
boolean visitChildren = true; |
|
89 |
if (filter==null || filter.accept(this)) { |
|
90 |
visitor.visit(this); |
|
91 |
} else { |
|
92 |
visitChildren = !filter.skipChildren(); |
|
93 |
} |
|
94 |
if(visitChildren){ |
|
95 |
this.value.accept(visitor, filter); |
|
96 |
} |
|
90 | 97 |
} |
91 | 98 |
|
92 | 99 |
@Override |
... | ... | |
369 | 376 |
|
370 | 377 |
@Override |
371 | 378 |
public void accept(Visitor visitor, VisitorFilter filter) { |
372 |
super.accept(visitor, filter); |
|
373 |
if (this.values != null) { |
|
374 |
for (Value theValue : values) { |
|
375 |
theValue.accept(visitor, filter); |
|
379 |
boolean visitChildren = true; |
|
380 |
if (filter==null || filter.accept(this)) { |
|
381 |
visitor.visit(this); |
|
382 |
} else { |
|
383 |
visitChildren = !filter.skipChildren(); |
|
384 |
} |
|
385 |
if(visitChildren){ |
|
386 |
if (this.values != null) { |
|
387 |
for (Value theValue : values) { |
|
388 |
theValue.accept(visitor, filter); |
|
389 |
} |
|
376 | 390 |
} |
377 | 391 |
} |
378 | 392 |
} |
... | ... | |
483 | 497 |
|
484 | 498 |
@Override |
485 | 499 |
public void accept(Visitor visitor, VisitorFilter filter) { |
486 |
super.accept(visitor, filter); |
|
487 |
if( this.parameters!=null ) { |
|
488 |
for (Value argument : this.parameters) { |
|
489 |
if( argument!=null ) { |
|
490 |
argument.accept(visitor, filter); |
|
500 |
boolean visitChildren = true; |
|
501 |
if (filter==null || filter.accept(this)) { |
|
502 |
visitor.visit(this); |
|
503 |
} else { |
|
504 |
visitChildren = !filter.skipChildren(); |
|
505 |
} |
|
506 |
if(visitChildren){ |
|
507 |
if( this.parameters!=null ) { |
|
508 |
for (Value argument : this.parameters) { |
|
509 |
if( argument!=null ) { |
|
510 |
argument.accept(visitor, filter); |
|
511 |
} |
|
491 | 512 |
} |
492 | 513 |
} |
493 | 514 |
} |
... | ... | |
573 | 594 |
|
574 | 595 |
@Override |
575 | 596 |
public void accept(Visitor visitor, VisitorFilter filter) { |
576 |
this.instance.accept(visitor, filter); |
|
577 |
super.accept(visitor, filter); |
|
597 |
boolean visitChildren = true; |
|
598 |
if (filter==null || filter.accept(this)) { |
|
599 |
visitor.visit(this); |
|
600 |
} else { |
|
601 |
visitChildren = !filter.skipChildren(); |
|
602 |
} |
|
603 |
if(visitChildren){ |
|
604 |
this.instance.accept(visitor, filter); |
|
605 |
} |
|
578 | 606 |
} |
579 | 607 |
|
580 | 608 |
@Override |
... | ... | |
791 | 819 |
public Value toValue(String expression) { |
792 | 820 |
try { |
793 | 821 |
Code code = ExpressionUtils.compile(expression); |
822 |
code.link(ExpressionUtils.createSymbolTable()); |
|
794 | 823 |
return code.toValue(this); |
795 | 824 |
} catch(Throwable ex) { |
796 | 825 |
return custom(expression); |
... | ... | |
898 | 927 |
|
899 | 928 |
@Override |
900 | 929 |
public Constant constant(Object value) { |
930 |
if(value == null){ |
|
931 |
return VALUE_NULL; |
|
932 |
} |
|
901 | 933 |
return new ConstantBase(this, value); |
902 | 934 |
} |
903 | 935 |
|
Also available in: Unified diff