[sarasvati] r1281 committed - Add example snippets

1 view
Skip to first unread message

sara...@googlecode.com

unread,
Jan 27, 2013, 12:08:00 PM1/27/13
to sarasvati-...@googlegroups.com
Revision: 1281
Author: plorenz
Date: Sun Jan 27 09:07:40 2013
Log: Add example snippets
http://code.google.com/p/sarasvati/source/detail?r=1281

Added:

/java/trunk/sarasvati-example/src/main/java/com/googlecode/sarasvati/example/snippets

/java/trunk/sarasvati-example/src/main/java/com/googlecode/sarasvati/example/snippets/CompleteWithCheckSiblings.java

/java/trunk/sarasvati-example/src/main/java/com/googlecode/sarasvati/example/snippets/NotBacktrableWhenCompleteNode.java

=======================================
--- /dev/null
+++
/java/trunk/sarasvati-example/src/main/java/com/googlecode/sarasvati/example/snippets/CompleteWithCheckSiblings.java
Sun Jan 27 09:07:40 2013
@@ -0,0 +1,44 @@
+package com.googlecode.sarasvati.example.snippets;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import com.googlecode.sarasvati.ArcToken;
+import com.googlecode.sarasvati.Engine;
+import com.googlecode.sarasvati.NodeToken;
+
+public class CompleteWithCheckSiblings
+{
+ public List<NodeToken> getSiblings(final NodeToken token)
+ {
+ final List<NodeToken> result = new LinkedList<NodeToken>();
+ for (final ArcToken arcParent : token.getParentTokens())
+ {
+ final NodeToken parent = arcParent.getParentToken();
+ for (final ArcToken siblingArcs : parent.getChildTokens())
+ {
+ final NodeToken child = siblingArcs.getChildToken();
+ if (!token.equals(child))
+ {
+ result.add(child);
+ }
+ }
+ }
+ return result;
+ }
+
+ public void complete(final Engine engine, final NodeToken token, final
String arcName)
+ {
+ if ("back".equals(arcName))
+ {
+ for (final NodeToken sibling : getSiblings(token))
+ {
+ if (sibling.isComplete())
+ {
+ throw new RuntimeException("Can not go back to start if sibling
tasks are complete");
+ }
+ }
+ }
+ engine.complete(token, arcName);
+ }
+}
=======================================
--- /dev/null
+++
/java/trunk/sarasvati-example/src/main/java/com/googlecode/sarasvati/example/snippets/NotBacktrableWhenCompleteNode.java
Sun Jan 27 09:07:40 2013
@@ -0,0 +1,14 @@
+package com.googlecode.sarasvati.example.snippets;
+
+import com.googlecode.sarasvati.Engine;
+import com.googlecode.sarasvati.NodeToken;
+import com.googlecode.sarasvati.hib.HibNode;
+
+public class NotBacktrableWhenCompleteNode extends HibNode
+{
+ @Override
+ public boolean isBacktrackable(Engine engine, NodeToken token)
+ {
+ return !token.isComplete();
+ }
+}
Reply all
Reply to author
Forward
0 new messages