Revision 44339

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/featureform/swing/impl/DefaultJFeaturesForm.java
42 42
import javax.swing.JPanel;
43 43
import org.apache.commons.lang3.StringUtils;
44 44
import org.gvsig.expressionevaluator.Expression;
45
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
45 46
import org.gvsig.expressionevaluator.ExpressionUtils;
46
import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
47 47

  
48 48
import org.slf4j.Logger;
49 49
import org.slf4j.LoggerFactory;
......
93 93
import org.gvsig.tools.swing.api.windowmanager.WindowManager.MODE;
94 94
import org.gvsig.tools.swing.icontheme.IconTheme;
95 95
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
96
import org.gvsig.tools.script.ScriptManager;
96 97

  
97 98
/**
98 99
 * @author fdiaz
......
136 137
            }
137 138
            return store.getStoresRepository();
138 139
        }
140

  
141
        @Override
142
        public ScriptManager getScriptManager() {
143
            return ExpressionEvaluatorLocator.getExpressionEvaluatorManager();
144
        }
145

  
139 146
        
140 147
    }
141 148
    
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionEvaluatorLocator.java
40 40
        return (ExpressionEvaluatorManager) getInstance().get(MANAGER_NAME);
41 41
    }
42 42

  
43
    public static ExpressionEvaluatorManager getExpressionEvaluatorManager() throws LocatorException {
44
        return getManager();
45
    }
46

  
43 47
    public static void registerManager(Class clazz) {
44 48
        getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
45 49
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionEvaluatorManager.java
2 2
package org.gvsig.expressionevaluator;
3 3

  
4 4
import java.util.Collection;
5
import org.gvsig.tools.script.ScriptManager;
5 6

  
6 7

  
7
public interface ExpressionEvaluatorManager {
8
public interface ExpressionEvaluatorManager extends ScriptManager {
8 9
    
9 10
    public Object evaluate(String source);
10 11
    
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/SimpleScript.java
1
package org.gvsig.expressionevaluator.impl;
2

  
3
import java.net.URI;
4
import org.gvsig.expressionevaluator.Code;
5
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
6
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
7
import org.gvsig.expressionevaluator.ExpressionRuntimeException;
8
import org.gvsig.tools.script.Script;
9

  
10
/**
11
 *
12
 * @author jjdelcerro
13
 */
14
public class SimpleScript implements Script {
15

  
16
    private final String name;
17
    private String source;
18
    private DefaultInterpreter interpreter;
19

  
20
    public SimpleScript(String name, String source) {
21
        this.name = name;
22
        this.setCode(source);
23
    }
24
    
25
    @Override
26
    public String getName() {
27
        return this.name;
28
    }
29

  
30
    @Override
31
    public String getCode() {
32
        return this.source;
33
    }
34

  
35
    @Override
36
    public String getTypeName() {
37
        return "COSA";
38
    }
39

  
40
    @Override
41
    public URI getURI() {
42
        return null;
43
    }
44

  
45
    @Override
46
    public void put(String name, Object value) {
47
        DefaultSymbolTable symbolTable = (DefaultSymbolTable) this.interpreter.getSymbolTable();
48
        symbolTable.setVar(name, value);
49
    }
50

  
51
    @Override
52
    public Object invokeFunction(String funcname, Object[] args) throws NoSuchMethodException {
53
        if( !this.interpreter.hasFunction(funcname) ) {
54
            throw new NoSuchMethodException(funcname);
55
        }
56
        try {
57
            return this.interpreter.call(funcname, args);
58
        } catch (Exception ex) {
59
            throw new ExpressionRuntimeException(this.interpreter.getCurrentCode(),"Error calling funcion '"+funcname+"'.", ex);
60
        }
61
    }
62

  
63
    @Override
64
    public final void setCode(String source) {
65
        this.source = source;
66
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
67
        this.interpreter = new DefaultInterpreter();
68
        Code code = manager.compile(source);
69
        this.interpreter.run(code);
70
    }
71
    
72
}
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
1 1
package org.gvsig.expressionevaluator.impl;
2 2

  
3
import java.io.InputStream;
4
import java.net.URI;
5
import java.net.URL;
3 6
import org.gvsig.expressionevaluator.Grammar;
4 7
import org.gvsig.expressionevaluator.GrammarFactory;
5 8
import java.util.Collection;
6 9
import java.util.HashMap;
7 10
import java.util.Map;
11
import org.apache.commons.io.FilenameUtils;
12
import org.apache.commons.io.IOUtils;
8 13
import org.gvsig.expressionevaluator.Bookmarks;
9 14
import org.gvsig.expressionevaluator.Code;
10 15
import org.gvsig.expressionevaluator.CodeBuilder;
......
20 25
import org.gvsig.expressionevaluator.Compiler;
21 26
import org.gvsig.expressionevaluator.GrammarSet;
22 27
import org.gvsig.expressionevaluator.History;
28
import org.gvsig.tools.script.Script;
23 29
import org.slf4j.Logger;
24 30
import org.slf4j.LoggerFactory;
25 31

  
26 32

  
33
@SuppressWarnings("UseSpecificCatch")
27 34
public class DefaultExpressionEvaluatorManager implements ExpressionEvaluatorManager {
28 35

  
29 36
    private static final Logger LOGGER = LoggerFactory.getLogger(DefaultExpressionEvaluatorManager.class);
......
216 223
        }
217 224
        return this.history;
218 225
    }
226
    
227
    @Override
228
    public Script createScript(String name, String code, String languaje) {
229
        SimpleScript sc = new SimpleScript(name, code);
230
        return sc;
231
    }
232

  
233
    @Override
234
    public Script locateScript(String name) {
235
        return null;
236
    }
237

  
238
    @Override
239
    public Script loadScript(URI location) {
240
        InputStream is = null;
241
        String code = null;
242
        String name = null;
243
        try {
244
            URL url = location.toURL();
245
            is = url.openStream();
246
            code = IOUtils.toString(is);
247
            name = FilenameUtils.getBaseName(location.getPath());
248
        } catch(Exception ex) {
249
            return null;
250
        } finally {
251
            IOUtils.closeQuietly(is);
252
        }
253
        return this.createScript(name, code, "COSA");
254
    }
255
            
219 256
}
220 257

  

Also available in: Unified diff