summaryrefslogtreecommitdiffstats
path: root/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java')
-rw-r--r--embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java21
1 files changed, 10 insertions, 11 deletions
diff --git a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
index 0b2b576..679581d 100644
--- a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
+++ b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
@@ -1,6 +1,7 @@
package org.uscxml.datamodel.ecmascript;
import java.lang.reflect.Method;
+import java.util.Map;
import org.mozilla.javascript.Callable;
import org.mozilla.javascript.Context;
@@ -14,8 +15,9 @@ import org.uscxml.Data;
import org.uscxml.DataModel;
import org.uscxml.Event;
import org.uscxml.Interpreter;
+import org.uscxml.NativeIOProcessor;
+import org.uscxml.NativeInvoker;
import org.uscxml.StringList;
-import org.uscxml.StringVector;
public class ECMAScriptDataModel extends DataModel {
@@ -84,6 +86,7 @@ public class ECMAScriptDataModel extends DataModel {
*/
ECMAScriptDataModel newDM = new ECMAScriptDataModel();
+ newDM.swigReleaseOwnership();
newDM.interpreter = interpreter;
newDM.ctx = Context.enter();
@@ -99,11 +102,9 @@ public class ECMAScriptDataModel extends DataModel {
// ioProcessors
{
Data ioProcs = new Data();
- StringVector keys = interpreter.getIOProcessorKeys();
- for (int i = 0; i < keys.size(); i++) {
- ioProcs.put(keys.get(i), interpreter
- .getIOProcessors().get(keys.get(i))
- .getDataModelVariables());
+ Map<String, NativeIOProcessor> ioProcNatives = interpreter.getIOProcessors();
+ for (String key : ioProcNatives.keySet()) {
+ ioProcs.put(key, ioProcNatives.get(key).getDataModelVariables());
}
newDM.scope
.put("_ioprocessors", newDM.scope, new ECMAData(ioProcs));
@@ -112,11 +113,9 @@ public class ECMAScriptDataModel extends DataModel {
// invokers
{
Data invokers = new Data();
- StringVector keys = interpreter.getInvokerKeys();
- for (int i = 0; i < keys.size(); i++) {
- invokers.put(keys.get(i), interpreter
- .getInvokers().get(keys.get(i))
- .getDataModelVariables());
+ Map<String, NativeInvoker> invokersNatives = interpreter.getInvokers();
+ for (String key : invokersNatives.keySet()) {
+ invokers.put(key, invokersNatives.get(key).getDataModelVariables());
}
newDM.scope
.put("_ioprocessors", newDM.scope, new ECMAData(invokers));