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

View differences:

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