o Added some missing Javadoc for STatemachine module

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/c6f68526
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/c6f68526
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/c6f68526

Branch: refs/heads/2.0
Commit: c6f68526e8dd8cd23d07145ffad0710476f7074e
Parents: 972449e
Author: Emmanuel Lécharny <elecha...@symas.com>
Authored: Mon Dec 26 18:35:33 2016 +0100
Committer: Emmanuel Lécharny <elecha...@symas.com>
Committed: Mon Dec 26 18:35:33 2016 +0100

----------------------------------------------------------------------
 .../org/apache/mina/statemachine/State.java     |  8 ++++++
 .../transition/AbstractTransition.java          | 30 ++++++++++++++++++++
 .../statemachine/transition/Transition.java     | 19 +++++++++++++
 .../mina/statemachine/StateMachineTest.java     | 10 +++++++
 4 files changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/c6f68526/mina-statemachine/src/main/java/org/apache/mina/statemachine/State.java
----------------------------------------------------------------------
diff --git 
a/mina-statemachine/src/main/java/org/apache/mina/statemachine/State.java 
b/mina-statemachine/src/main/java/org/apache/mina/statemachine/State.java
index 0ea35bb..6cb9f40 100644
--- a/mina-statemachine/src/main/java/org/apache/mina/statemachine/State.java
+++ b/mina-statemachine/src/main/java/org/apache/mina/statemachine/State.java
@@ -45,14 +45,18 @@ import org.apache.mina.statemachine.transition.Transition;
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public class State {
+    /** The state ID */
     private final String id;
 
+    /** The paret state */
     private final State parent;
 
     private List<TransitionHolder> transitionHolders = new 
ArrayList<TransitionHolder>();
 
+    /** The list of transitions for this state */
     private List<Transition> transitions = Collections.emptyList();
 
+    /** The list of transitions that */
     private List<SelfTransition> onEntries = new ArrayList<SelfTransition>();
 
     private List<SelfTransition> onExits = new ArrayList<SelfTransition>();
@@ -124,7 +128,9 @@ public class State {
         if (onEntrySelfTransaction == null) {
             throw new IllegalArgumentException("transition");
         }
+        
         onEntries.add(onEntrySelfTransaction);
+        
         return this;
     }
 
@@ -138,7 +144,9 @@ public class State {
         if (onExitSelfTransaction == null) {
             throw new IllegalArgumentException("transition");
         }
+        
         onExits.add(onExitSelfTransaction);
+        
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/mina/blob/c6f68526/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/AbstractTransition.java
----------------------------------------------------------------------
diff --git 
a/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/AbstractTransition.java
 
b/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/AbstractTransition.java
index e8645d8..3eb66f8 100644
--- 
a/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/AbstractTransition.java
+++ 
b/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/AbstractTransition.java
@@ -32,8 +32,10 @@ import org.apache.mina.statemachine.event.Event;
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public abstract class AbstractTransition implements Transition {
+    /** The accepted event ID */
     private final Object eventId;
 
+    /** The next state, if any */
     private final State nextState;
 
     /**
@@ -58,10 +60,38 @@ public abstract class AbstractTransition implements 
Transition {
         this.nextState = nextState;
     }
 
+    /**
+     * Creates a new instance with the specified {@link State} as next state 
+     * and for the wild card {@link Event} id.
+     * 
+     * @param nextState the next {@link State}.
+     */
+    public AbstractTransition(State nextState) {
+        this.eventId = Event.WILDCARD_EVENT_ID;
+        this.nextState = nextState;
+    }
+
+    /**
+     * Creates a new instance with a reflexive {@link State} as next state 
+     * and for the wild card {@link Event} id.
+     */
+    public AbstractTransition() {
+        this.eventId = Event.WILDCARD_EVENT_ID;
+        this.nextState = null;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public State getNextState() {
         return nextState;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public boolean execute(Event event) {
         if (!eventId.equals(Event.WILDCARD_EVENT_ID) && 
!eventId.equals(event.getId())) {
             return false;

http://git-wip-us.apache.org/repos/asf/mina/blob/c6f68526/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/Transition.java
----------------------------------------------------------------------
diff --git 
a/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/Transition.java
 
b/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/Transition.java
index 7166602..c7f1abf 100644
--- 
a/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/Transition.java
+++ 
b/mina-statemachine/src/main/java/org/apache/mina/statemachine/transition/Transition.java
@@ -26,6 +26,21 @@ import org.apache.mina.statemachine.event.Event;
 /**
  * The interface implemented by classes which need to react on transitions
  * between states.
+ * 
+ * A Transition must implement two methods 
+ * <ul>
+ *   <li>execute : a method called when we process the transition</li>
+ *   <li>getNextState : a method that gives the next state for this 
transition</li>
+ * </ul>
+ * 
+ * Each Transition accepts two parameters :
+ * <ul>
+ *   <li>An event ID : this defines the event this transition will accept</li>
+ *   <li>A next state</li>
+ * </ul>
+ * 
+ * The event ID might be '*', which means the transition will accept any event.
+ * The next state can be null, which means teh next state is the current state.
  *
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
@@ -35,6 +50,10 @@ public interface Transition {
      * {@link Transition} to determine whether it actually applies for the
      * specified {@link Event}. If this {@link Transition} doesn't apply
      * nothing should be executed and <tt>false</tt> must be returned.
+     * The method will accept any {@link Event} if it is registered with the 
+     * wild card event ID ('*'), and the event ID it is declared for (ie,
+     * the event ID that has been passed as a parameter to this transition 
+     * constructor.)
      * 
      * @param event the current {@link Event}.
      * @return <tt>true</tt> if the {@link Transition} was executed, 

http://git-wip-us.apache.org/repos/asf/mina/blob/c6f68526/mina-statemachine/src/test/java/org/apache/mina/statemachine/StateMachineTest.java
----------------------------------------------------------------------
diff --git 
a/mina-statemachine/src/test/java/org/apache/mina/statemachine/StateMachineTest.java
 
b/mina-statemachine/src/test/java/org/apache/mina/statemachine/StateMachineTest.java
index 467a411..f9b154c 100644
--- 
a/mina-statemachine/src/test/java/org/apache/mina/statemachine/StateMachineTest.java
+++ 
b/mina-statemachine/src/test/java/org/apache/mina/statemachine/StateMachineTest.java
@@ -88,6 +88,7 @@ public class StateMachineTest {
         @Override
         protected boolean doExecute(Event event) {
             event.getContext().setAttribute("success", true);
+            
             return true;
         }
     }
@@ -104,6 +105,7 @@ public class StateMachineTest {
         @Override
         protected boolean doExecute(Event event) {
             StateControl.breakAndContinue();
+            
             return true;
         }
     }
@@ -121,9 +123,13 @@ public class StateMachineTest {
             this.stateId = stateId;
         }
 
+        /**
+         * {@inheritDoc}
+         */
         @Override
         protected boolean doExecute(Event event) {
             StateControl.breakAndGotoNow(stateId);
+            
             return true;
         }
     }
@@ -141,9 +147,13 @@ public class StateMachineTest {
             this.stateId = stateId;
         }
 
+        /**
+         * {@inheritDoc}
+         */
         @Override
         protected boolean doExecute(Event event) {
             StateControl.breakAndGotoNext(stateId);
+            
             return true;
         }
     }

Reply via email to