svn-gvsig-desktop / 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 / javascripting / CosaScriptEngineFactory.java @ 44389
History | View | Annotate | Download (3.38 KB)
1 |
package org.gvsig.expressionevaluator.impl.javascripting; |
---|---|
2 |
|
3 |
import java.util.Arrays; |
4 |
import java.util.Collections; |
5 |
import java.util.List; |
6 |
import javax.script.ScriptEngine; |
7 |
import javax.script.ScriptEngineFactory; |
8 |
|
9 |
/**
|
10 |
*
|
11 |
* @author jjdelcerro
|
12 |
*/
|
13 |
public class CosaScriptEngineFactory |
14 |
implements ScriptEngineFactory
|
15 |
{ |
16 |
public static final String ENGINE_NAME = "Cosa"; |
17 |
public static final String ENGINE_VERSION = "1.0.0"; |
18 |
|
19 |
public static final String LANGUAGE_NAME = "cosa"; |
20 |
public static final String LANGUAGE_VERSION = "1.0"; |
21 |
public static final String[] NAMES = new String[] { |
22 |
ENGINE_NAME, |
23 |
"COSA",
|
24 |
"cosa"
|
25 |
}; |
26 |
public static final String[] FILE_EXTENSIONS = new String[] { |
27 |
"cosa"
|
28 |
}; |
29 |
public static final String[] MIME_TYPES = new String[] { |
30 |
"text/cosa",
|
31 |
"application/cosa",
|
32 |
"text/x-cosa",
|
33 |
"application/x-cosa"
|
34 |
}; |
35 |
|
36 |
public CosaScriptEngineFactory() {
|
37 |
|
38 |
} |
39 |
|
40 |
@Override
|
41 |
public String getEngineName() { |
42 |
return ENGINE_NAME;
|
43 |
} |
44 |
|
45 |
@Override
|
46 |
public String getEngineVersion() { |
47 |
return ENGINE_VERSION;
|
48 |
} |
49 |
|
50 |
@Override
|
51 |
public List<String> getExtensions() { |
52 |
return Collections.unmodifiableList(Arrays.asList(FILE_EXTENSIONS)); |
53 |
} |
54 |
|
55 |
@Override
|
56 |
public String getLanguageName() { |
57 |
return LANGUAGE_NAME;
|
58 |
} |
59 |
|
60 |
@Override
|
61 |
public String getLanguageVersion() { |
62 |
return LANGUAGE_VERSION;
|
63 |
} |
64 |
|
65 |
@Override
|
66 |
public Object getParameter(String key) { |
67 |
switch (key) {
|
68 |
case ScriptEngine.ENGINE:
|
69 |
return getEngineName();
|
70 |
case ScriptEngine.ENGINE_VERSION:
|
71 |
return getEngineVersion();
|
72 |
case ScriptEngine.NAME:
|
73 |
return getEngineName();
|
74 |
case ScriptEngine.LANGUAGE:
|
75 |
return getLanguageName();
|
76 |
case ScriptEngine.LANGUAGE_VERSION:
|
77 |
return getLanguageVersion();
|
78 |
default:
|
79 |
return null; |
80 |
} |
81 |
|
82 |
} |
83 |
|
84 |
@Override
|
85 |
public String getMethodCallSyntax(String obj, String m, String... args) { |
86 |
StringBuilder buffer = new StringBuilder(); |
87 |
buffer.append(String.format("%s.%s(", obj, m)); |
88 |
int i = args.length;
|
89 |
for (String arg : args) { |
90 |
buffer.append(arg); |
91 |
if (i-- > 0) { |
92 |
buffer.append(", ");
|
93 |
} |
94 |
} |
95 |
buffer.append(")");
|
96 |
return buffer.toString();
|
97 |
} |
98 |
|
99 |
@Override
|
100 |
public String getOutputStatement(String toDisplay) { |
101 |
StringBuilder buffer = new StringBuilder(toDisplay.length() + 8); |
102 |
buffer.append("print('");
|
103 |
buffer.append(toDisplay.replace("'", "''")); |
104 |
buffer.append("')");
|
105 |
return buffer.toString();
|
106 |
} |
107 |
|
108 |
@Override
|
109 |
public String getProgram(String... statements) { |
110 |
StringBuilder buffer = new StringBuilder(); |
111 |
for (String statement : statements) { |
112 |
buffer.append(statement); |
113 |
buffer.append("\n");
|
114 |
} |
115 |
return buffer.toString();
|
116 |
} |
117 |
|
118 |
@Override
|
119 |
public ScriptEngine getScriptEngine() {
|
120 |
return new CosaScriptEngine(this); |
121 |
} |
122 |
|
123 |
@Override
|
124 |
public List<String> getMimeTypes() { |
125 |
return Collections.unmodifiableList(Arrays.asList(MIME_TYPES)); |
126 |
} |
127 |
|
128 |
@Override
|
129 |
public List<String> getNames() { |
130 |
return Collections.unmodifiableList(Arrays.asList(NAMES)); |
131 |
} |
132 |
|
133 |
} |