summaryrefslogtreecommitdiffstats
path: root/contrib/java
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-08-13 10:07:32 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-08-13 10:07:32 (GMT)
commit459f406eb2a36d393bd3a2b6aa3d63d86eb99c07 (patch)
tree35593bb978fee75bb7547f3d2c84a9039413fe1f /contrib/java
parentbeac3e74f703148085947d75da6fdaa9fd7472b4 (diff)
downloaduscxml-459f406eb2a36d393bd3a2b6aa3d63d86eb99c07.zip
uscxml-459f406eb2a36d393bd3a2b6aa3d63d86eb99c07.tar.gz
uscxml-459f406eb2a36d393bd3a2b6aa3d63d86eb99c07.tar.bz2
Started Java datamodel and fixed memory leaks
Diffstat (limited to 'contrib/java')
-rw-r--r--contrib/java/.classpath7
-rw-r--r--contrib/java/.project24
-rw-r--r--contrib/java/src/org/uscxml/tests/TestDataModel.java108
-rw-r--r--contrib/java/src/org/uscxml/tests/TestInvoker.java65
4 files changed, 204 insertions, 0 deletions
diff --git a/contrib/java/.classpath b/contrib/java/.classpath
new file mode 100644
index 0000000..053c69a
--- /dev/null
+++ b/contrib/java/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="uscxml"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/contrib/java/.project b/contrib/java/.project
new file mode 100644
index 0000000..4c68397
--- /dev/null
+++ b/contrib/java/.project
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>uscxml</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>uscxml</name>
+ <type>2</type>
+ <location>/Users/sradomski/Documents/TK/Code/uscxml/build/cli/src/bindings/swig/java</location>
+ </link>
+ </linkedResources>
+</projectDescription>
diff --git a/contrib/java/src/org/uscxml/tests/TestDataModel.java b/contrib/java/src/org/uscxml/tests/TestDataModel.java
new file mode 100644
index 0000000..c9d8ae0
--- /dev/null
+++ b/contrib/java/src/org/uscxml/tests/TestDataModel.java
@@ -0,0 +1,108 @@
+package org.uscxml.tests;
+
+import org.uscxml.Data;
+import org.uscxml.Event;
+import org.uscxml.Factory;
+import org.uscxml.Interpreter;
+import org.uscxml.JavaDataModel;
+import org.uscxml.SWIGTYPE_p_Arabica__DOM__DocumentT_std__string_t;
+import org.uscxml.SWIGTYPE_p_Arabica__DOM__ElementT_std__string_t;
+import org.uscxml.SWIGTYPE_p_boost__shared_ptrT_uscxml__DataModelImpl_t;
+import org.uscxml.SWIGTYPE_p_uscxml__InterpreterImpl;
+import org.uscxml.StringSet;
+
+
+public class TestDataModel extends JavaDataModel {
+
+ @Override
+ public JavaDataModel create(Interpreter interpreter) {
+ return new JavaDataModel();
+ }
+
+ @Override
+ public StringSet getNames() {
+ StringSet ss = new StringSet();
+ ss.insert("java");
+ return ss;
+ }
+
+ @Override
+ public boolean validate(String location, String schema) {
+ return true;
+ }
+
+ @Override
+ public void setEvent(Event event) {
+ /* make sure the fields of event are available as _event to conform
+ * with the SCXML draft
+ */
+ }
+
+ @Override
+ public Data getStringAsData(String content) {
+ Data data = new Data();
+ return data;
+ }
+
+ @Override
+ public long getLength(String expr) {
+ return 0;
+ }
+
+ @Override
+ public void setForeach(String item, String array, String index, long iteration) {
+ }
+
+ @Override
+ public void eval(SWIGTYPE_p_Arabica__DOM__ElementT_std__string_t scriptElem, String expr) {
+ }
+
+ @Override
+ public String evalAsString(String expr) {
+ return "";
+ }
+
+ @Override
+ public boolean evalAsBool(String expr) {
+ return true;
+ }
+
+ @Override
+ public boolean isDeclared(String expr) {
+ return true;
+ }
+
+ @Override
+ public void assign(SWIGTYPE_p_Arabica__DOM__ElementT_std__string_t assignElem, SWIGTYPE_p_Arabica__DOM__DocumentT_std__string_t doc, String content) {
+ }
+
+ @Override
+ public void assign(String location, Data data) {
+ super.assign(location, data);
+ }
+
+ @Override
+ public void init(SWIGTYPE_p_Arabica__DOM__ElementT_std__string_t dataElem, SWIGTYPE_p_Arabica__DOM__DocumentT_std__string_t doc, String content) {
+ super.init(dataElem, doc, content);
+ }
+
+ @Override
+ public void init(String location, Data data) {
+ super.init(location, data);
+ }
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ System.load("/Users/sradomski/Documents/TK/Code/uscxml/build/cli/lib/libuscxmlNativeJava64_d.jnilib");
+
+ TestDataModel datamodel = new TestDataModel();
+ Factory.getInstance().registerDataModel(datamodel);
+
+ Interpreter interpreter = Interpreter.fromURI("/Users/sradomski/Documents/TK/Code/uscxml/test/samples/uscxml/test-java-datamodel.scxml");
+ while(true)
+ interpreter.interpret();
+ }
+
+}
diff --git a/contrib/java/src/org/uscxml/tests/TestInvoker.java b/contrib/java/src/org/uscxml/tests/TestInvoker.java
new file mode 100644
index 0000000..b41bd43
--- /dev/null
+++ b/contrib/java/src/org/uscxml/tests/TestInvoker.java
@@ -0,0 +1,65 @@
+package org.uscxml.tests;
+
+import org.uscxml.Data;
+import org.uscxml.Event;
+import org.uscxml.Factory;
+import org.uscxml.Interpreter;
+import org.uscxml.InvokeRequest;
+import org.uscxml.JavaInvoker;
+import org.uscxml.SendRequest;
+import org.uscxml.StringSet;
+
+
+public class TestInvoker extends JavaInvoker {
+
+ @Override
+ public StringSet getNames() {
+ StringSet ss = new StringSet();
+ ss.insert("java");
+ return ss;
+ }
+
+ @Override
+ public Data getDataModelVariables() {
+ Data data = new Data();
+ data.getArray().add(new Data("foo", Data.Type.VERBATIM));
+ return data;
+ }
+
+ @Override
+ public void send(SendRequest req) {
+ System.out.println("send");
+ }
+
+ @Override
+ public void invoke(InvokeRequest req) {
+ System.out.println("invoke");
+
+ System.out.println(Data.toJSON(req.getData()));
+ System.out.println(req.getXML());
+
+ Event ev = new Event();
+ ev.setName("foo");
+ returnEvent(ev);
+ }
+
+ @Override
+ public JavaInvoker create(Interpreter interpreter) {
+ return new TestInvoker();
+ }
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ System.load("/Users/sradomski/Documents/TK/Code/uscxml/build/cli/lib/libuscxmlNativeJava64_d.jnilib");
+
+ TestInvoker invoker = new TestInvoker();
+ Factory.getInstance().registerInvoker(invoker);
+
+ Interpreter interpreter = Interpreter.fromURI("/Users/sradomski/Documents/TK/Code/uscxml/test/samples/uscxml/test-java-invoker.scxml");
+ while(true)
+ interpreter.interpret();
+ }
+
+}