summaryrefslogtreecommitdiffstats
path: root/contrib/java/generated/org/uscxml/StateChart.java
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-11-28 17:03:31 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-11-28 17:03:31 (GMT)
commita6313d4ab2005196f376870c9ca945c691948416 (patch)
tree5345422d235e7c511885601854b6a2923db09e2e /contrib/java/generated/org/uscxml/StateChart.java
parentfcfc842a1ccee7a6b2579889f3236d50849c0679 (diff)
downloaduscxml-a6313d4ab2005196f376870c9ca945c691948416.zip
uscxml-a6313d4ab2005196f376870c9ca945c691948416.tar.gz
uscxml-a6313d4ab2005196f376870c9ca945c691948416.tar.bz2
Refactored Java into bindings and generated
Diffstat (limited to 'contrib/java/generated/org/uscxml/StateChart.java')
-rw-r--r--contrib/java/generated/org/uscxml/StateChart.java222
1 files changed, 222 insertions, 0 deletions
diff --git a/contrib/java/generated/org/uscxml/StateChart.java b/contrib/java/generated/org/uscxml/StateChart.java
new file mode 100644
index 0000000..6b620ab
--- /dev/null
+++ b/contrib/java/generated/org/uscxml/StateChart.java
@@ -0,0 +1,222 @@
+package org.uscxml;
+
+import java.util.BitSet;
+import java.util.Deque;
+import java.util.List;
+import java.util.Map;
+
+/** Base class for generated StateCharts */
+
+public abstract class StateChart {
+
+ public enum InterpreterState {
+ USCXML_FINISHED,
+ USCXML_UNDEF,
+ USCXML_IDLE,
+ USCXML_INITIALIZED,
+ USCXML_INSTANTIATED,
+ USCXML_MICROSTEPPED,
+ USCXML_MACROSTEPPED,
+ USCXML_CANCELLED
+ }
+
+ public enum StateType {
+ USCXML_STATE_ATOMIC,
+ USCXML_STATE_PARALLEL,
+ USCXML_STATE_COMPOUND,
+ USCXML_STATE_FINAL,
+ USCXML_STATE_HISTORY_DEEP,
+ USCXML_STATE_HISTORY_SHALLOW,
+ USCXML_STATE_INITIAL,
+ USCXML_STATE_HAS_HISTORY
+ }
+
+ public enum TransitionType {
+ USCXML_TRANS_SPONTANEOUS,
+ USCXML_TRANS_TARGETLESS,
+ USCXML_TRANS_INTERNAL,
+ USCXML_TRANS_HISTORY,
+ USCXML_TRANS_INITIAL
+ }
+
+ public abstract class State {
+ String name;
+ int parent;
+ BitSet children;
+ BitSet completion;
+ BitSet ancestors;
+ Data data;
+ StateType type;
+
+ public abstract void onEntry() throws InterpreterException;
+ public abstract void onExit() throws InterpreterException;
+ public abstract void invoke(Invoke invoker, boolean invoke) throws InterpreterException;
+ }
+
+ public abstract class Transition {
+ int source;
+ BitSet target;
+ String event;
+ String condition;
+ TransitionType type;
+ BitSet conflicts;
+ BitSet exitSet;
+
+ public abstract boolean isEnabled();
+ public abstract boolean isMatched();
+ public abstract void onTransition();
+ }
+
+ public class Data {
+ String id;
+ String src;
+ String expr;
+ String content;
+ }
+
+ public class Assign {
+ String location;
+ String expr;
+ String content;
+ }
+
+ public class Foreach {
+ String array;
+ String item;
+ String index;
+ }
+
+ public class Param {
+ String name;
+ String expr;
+ String location;
+ }
+
+ public class DoneData {
+ int source;
+ String content;
+ String contentExpr;
+ List<Param> params;
+ }
+
+ public abstract class Invoke {
+ StateChart machine;
+ String type;
+ String typeExpr;
+ String src;
+ String srcExpr;
+ String id;
+ String idlocation;
+ String sourceName;
+ String namelist;
+ boolean autoForward;
+ String content;
+ String contentExpr;
+ List<Param> params;
+
+ public abstract void finalize();
+ }
+
+ public class Send {
+ String event;
+ String eventExpr;
+ String target;
+ String targetExpr;
+ String type;
+ String typeExpr;
+ String id;
+ String idlocation;
+ String delay;
+ String delayExpr;
+ String namelist;
+ String content;
+ String contentExpr;
+ List<Param> params;
+ }
+
+ public List<Transition> transitions;
+ public List<State> states;
+
+ public Deque<Object> externalQueue;
+ public Deque<Object> internalQueue;
+
+ protected InterpreterState state = InterpreterState.USCXML_UNDEF;
+ protected Object event;
+
+ protected BitSet flags;
+ protected BitSet config;
+ protected BitSet history;
+ protected BitSet invocations;
+ protected BitSet initializedData;
+
+ protected Map<String, Integer> stateNamesToIndex;
+
+ public InterpreterState step() throws org.uscxml.InterpreterException {
+ return step(0);
+ }
+
+ public InterpreterState step(long blockMs) throws org.uscxml.InterpreterException {
+ /** Here you would implement microstep(T) as in the book chapter */
+
+
+ /** Just to silence the compiler warning */
+ if (true) throw new InterpreterException("", "");
+ return state;
+ }
+
+ public void cancel() {
+ state = InterpreterState.USCXML_CANCELLED;
+ }
+
+ public void reset() {
+ history.clear();
+ config.clear();
+ flags.clear();
+ // @TODO: uninvoke any invokers
+ invocations.clear();
+ }
+
+ public InterpreterState getState() { return state; }
+
+ public boolean isInState(String stateId) {
+ if (!stateNamesToIndex.containsKey(stateId))
+ return false;
+ return config.get((int) stateNamesToIndex.get(stateId));
+ }
+
+ public void receive(Object event) {
+ externalQueue.addLast(event);
+ }
+
+ protected Object dequeueInternal() {
+ try {
+ return internalQueue.removeLast();
+ } catch(Exception e) {
+ return null;
+ }
+ }
+
+ protected Object dequeueExternal() {
+ try {
+ return externalQueue.removeLast();
+ } catch(Exception e) {
+ return null;
+ }
+ }
+
+ public abstract boolean isTrue(String expression);
+ public abstract void raiseDoneEvent(State state, DoneData doneData);
+
+ public abstract void execContentLog(String label, String expression);
+ public abstract void execContentRaise(String event);
+ public abstract void execContentSend(Send send);
+ public abstract void execContentForeachInit(Foreach foreach);
+ public abstract void execContentForeachNext(Foreach foreach);
+ public abstract void execContentForeachDone(Foreach foreach);
+ public abstract void execContentAssign(Assign assign);
+ public abstract void execContentInit(Data data);
+ public abstract void execContentCancel(String sendId, String sendIdExpr);
+ public abstract void execContentScript(String src, String content);
+ public abstract void execContentFinalize(Invoke invoker, Object event);
+
+} \ No newline at end of file