Revision 44446 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/DefaultExpressionEvaluatorManager.java
DefaultExpressionEvaluatorManager.java | ||
---|---|---|
47 | 47 |
private final Map<String,GrammarFactory> grammarFactories; |
48 | 48 |
private Bookmarks<Expression> bookmarks; |
49 | 49 |
private History<Expression> history; |
50 |
private SymbolTable inmutableSymbolTable; |
|
50 | 51 |
|
51 | 52 |
public DefaultExpressionEvaluatorManager() { |
52 | 53 |
this.symbolTableFactories = new HashMap<>(); |
... | ... | |
76 | 77 |
throw new IllegalArgumentException("factory can't be null"); |
77 | 78 |
} |
78 | 79 |
this.symbolTableFactories.put(factory.getName().toUpperCase(),factory); |
80 |
this.inmutableSymbolTable = null; |
|
79 | 81 |
} |
80 | 82 |
|
81 | 83 |
@Override |
84 |
public SymbolTable getInmutableSymbolTable() { |
|
85 |
if( this.inmutableSymbolTable==null ) { |
|
86 |
this.inmutableSymbolTable = new InmutableSymbolTable(); |
|
87 |
} |
|
88 |
return this.inmutableSymbolTable; |
|
89 |
} |
|
90 |
|
|
91 |
@Override |
|
82 | 92 |
public Object evaluate(String source) { |
83 | 93 |
DefaultInterpreter interpreter = new DefaultInterpreter(); |
84 | 94 |
DefaultCompiler compiler = new DefaultCompiler(); |
... | ... | |
91 | 101 |
DefaultInterpreter interpreter = new DefaultInterpreter(); |
92 | 102 |
DefaultCompiler compiler = new DefaultCompiler(); |
93 | 103 |
Code code = compiler.compileExpression(source); |
94 |
interpreter.setSymbolTable(symbolTable); |
|
104 |
if( symbolTable!=null ) { |
|
105 |
interpreter.setSymbolTable(symbolTable); |
|
106 |
} |
|
95 | 107 |
return interpreter.run(code); |
96 | 108 |
} |
97 | 109 |
|
98 | 110 |
@Override |
99 | 111 |
public Object evaluate(SymbolTable symbolTable, Code code) { |
100 | 112 |
DefaultInterpreter interpreter = new DefaultInterpreter(); |
101 |
interpreter.setSymbolTable(symbolTable); |
|
113 |
if( symbolTable!=null ) { |
|
114 |
interpreter.setSymbolTable(symbolTable); |
|
115 |
} |
|
102 | 116 |
return interpreter.run(code); |
103 | 117 |
} |
104 | 118 |
|
Also available in: Unified diff