diff options
Diffstat (limited to 'embedding/java/src/org/uscxml/datamodel')
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 |