summaryrefslogtreecommitdiffstats
path: root/embedding/java/src/org/uscxml/datamodel
diff options
context:
space:
mode:
Diffstat (limited to 'embedding/java/src/org/uscxml/datamodel')
-rw-r--r--embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAData.java18
-rw-r--r--embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAEvent.java21
-rw-r--r--embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java31
3 files changed, 34 insertions, 36 deletions
diff --git a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAData.java b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAData.java
index 56d7090..035da61 100644
--- a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAData.java
+++ b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAData.java
@@ -19,8 +19,8 @@ public class ECMAData implements Scriptable {
}
public Object unwrap(Data data) {
- if (data.atom.length() > 0) {
- return data.atom;
+ if (data.getAtom().length() > 0) {
+ return data.getAtom();
}
return new ECMAData(data);
@@ -28,26 +28,26 @@ public class ECMAData implements Scriptable {
@Override
public Object get(String name, Scriptable start) {
- if (data.compound.containsKey(name))
- return unwrap(data.compound.get(name));
+ if (data.hasKey(name))
+ return unwrap(data.at(name));
return NOT_FOUND;
}
@Override
public Object get(int index, Scriptable start) {
- if (data.array.size() > index)
- return unwrap(data.array.get(index));
+ if (data.getArray().size() > index)
+ return unwrap(data.item(index));
return NOT_FOUND;
}
@Override
public boolean has(String name, Scriptable start) {
- return data.compound.containsKey(name);
+ return data.hasKey(name);
}
@Override
public boolean has(int index, Scriptable start) {
- return data.array.size() > index;
+ return data.getArray().size() > index;
}
@Override
@@ -88,7 +88,7 @@ public class ECMAData implements Scriptable {
@Override
public Object[] getIds() {
- return data.compound.keySet().toArray();
+ return data.getCompound().keySet().toArray();
}
@Override
diff --git a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAEvent.java b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAEvent.java
index 58fff72..45d93b8 100644
--- a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAEvent.java
+++ b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAEvent.java
@@ -1,13 +1,12 @@
package org.uscxml.datamodel.ecmascript;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.mozilla.javascript.Scriptable;
import org.uscxml.Data;
import org.uscxml.Event;
-import org.uscxml.ParamPair;
-import org.uscxml.ParamPairVector;
public class ECMAEvent implements Scriptable {
@@ -19,17 +18,17 @@ public class ECMAEvent implements Scriptable {
public ECMAEvent(Event event) {
this.event = event;
-
- Data data = new Data(event.getData());
-
- // insert params into event.data
- ParamPairVector ppv = event.getParamPairs();
- for (int i = 0; i < ppv.size(); i++) {
- ParamPair pp = ppv.get(i);
- data.compound.put(pp.getFirst(), new Data(pp.getSecond()));
+
+ // copy event params to data
+ Data data = event.getData();
+ Map<String, List<Data>> params = event.getParams();
+ for (String key : params.keySet()) {
+ for (Data param : params.get(key)) {
+ data.put(key, param);
+ }
}
- members.put("type", event.getEventType().toString());
+ members.put("type", event.getEventType());
members.put("data", new ECMAData(data));
members.put("sendid", event.getSendId());
members.put("origin", event.getOrigin());
diff --git a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
index 152f5e3..0b2b576 100644
--- a/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
+++ b/embedding/java/src/org/uscxml/datamodel/ecmascript/ECMAScriptDataModel.java
@@ -12,7 +12,6 @@ import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.Undefined;
import org.uscxml.Data;
import org.uscxml.DataModel;
-import org.uscxml.DataNative;
import org.uscxml.Event;
import org.uscxml.Interpreter;
import org.uscxml.StringList;
@@ -45,20 +44,20 @@ public class ECMAScriptDataModel extends DataModel {
ScriptableObject obj = (ScriptableObject) Context.toObject(s,
scope);
for (Object key : obj.getIds()) {
- data.compound.put(Context.toString(key),
+ data.put(Context.toString(key),
getScriptableAsData(obj.get(key)));
}
}
} catch (ClassCastException e) {
if (object instanceof Boolean) {
- data.atom = (Context.toBoolean(object) ? "true" : "false");
- data.type = Data.Type.INTERPRETED;
+ data.setAtom(Context.toBoolean(object) ? "true" : "false");
+ data.setType(Data.Type.INTERPRETED);
} else if (object instanceof String) {
- data.atom = (String) object;
- data.type = Data.Type.VERBATIM;
+ data.setAtom((String) object);
+ data.setType(Data.Type.VERBATIM);
} else if (object instanceof Integer) {
- data.atom = ((Integer) object).toString();
- data.type = Data.Type.INTERPRETED;
+ data.setAtom(((Integer) object).toString());
+ data.setType(Data.Type.INTERPRETED);
} else {
throw new RuntimeException("Unhandled ECMA type "
+ object.getClass().getName());
@@ -102,9 +101,9 @@ public class ECMAScriptDataModel extends DataModel {
Data ioProcs = new Data();
StringVector keys = interpreter.getIOProcessorKeys();
for (int i = 0; i < keys.size(); i++) {
- ioProcs.compound.put(keys.get(i), new Data(interpreter
+ ioProcs.put(keys.get(i), interpreter
.getIOProcessors().get(keys.get(i))
- .getDataModelVariables()));
+ .getDataModelVariables());
}
newDM.scope
.put("_ioprocessors", newDM.scope, new ECMAData(ioProcs));
@@ -115,9 +114,9 @@ public class ECMAScriptDataModel extends DataModel {
Data invokers = new Data();
StringVector keys = interpreter.getInvokerKeys();
for (int i = 0; i < keys.size(); i++) {
- invokers.compound.put(keys.get(i), new Data(interpreter
+ invokers.put(keys.get(i), interpreter
.getInvokers().get(keys.get(i))
- .getDataModelVariables()));
+ .getDataModelVariables());
}
newDM.scope
.put("_ioprocessors", newDM.scope, new ECMAData(invokers));
@@ -176,7 +175,7 @@ public class ECMAScriptDataModel extends DataModel {
}
@Override
- public DataNative getStringAsData(String content) {
+ public Data getStringAsData(String content) {
if (debug) {
System.out.println(interpreter.getName() + " getStringAsData");
}
@@ -186,7 +185,7 @@ public class ECMAScriptDataModel extends DataModel {
* JSON-like Data structure
*/
if (content.length() == 0) {
- return Data.toNative(new Data());
+ return new Data();
}
// is it a json expression?
@@ -194,7 +193,7 @@ public class ECMAScriptDataModel extends DataModel {
Object json = NativeJSON.parse(ctx, scope, content,
new NullCallable());
if (json != NativeJSON.NOT_FOUND) {
- return Data.toNative(getScriptableAsData(json));
+ return getScriptableAsData(json);
}
} catch (org.mozilla.javascript.EcmaError e) {
System.err.println(e);
@@ -207,7 +206,7 @@ public class ECMAScriptDataModel extends DataModel {
x = ctx.evaluateString(scope, '"' + content + '"', "uscxml", 0,
null);
}
- return Data.toNative(getScriptableAsData(x));
+ return getScriptableAsData(x);
}
@Override