Revision 44339
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