Author: niklas
Date: Mon Jan 29 00:08:59 2007
New Revision: 500962

URL: http://svn.apache.org/viewvc?view=rev&rev=500962
Log:
* Added equals(), hashCode() and toString() methods to State.
* Fixed a bug in StateMachine. The current state wasn't updated when using 
breakAndGotoNow and breanAndReturnNow.

Modified:
    mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/State.java
    
mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/StateMachine.java

Modified: 
mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/State.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/State.java?view=diff&rev=500962&r1=500961&r2=500962
==============================================================================
--- mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/State.java 
(original)
+++ mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/State.java Mon 
Jan 29 00:08:59 2007
@@ -22,6 +22,9 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.mina.sm.transition.Transition;
 
 /**
@@ -88,6 +91,39 @@
         return this;
     }
     
+    @Override
+    public boolean equals( Object o )
+    {
+        if( ! ( o instanceof State ) )
+        {
+            return false;
+        }
+        if ( o == this )
+        {
+            return true;
+        }
+        State that = ( State ) o;
+        return new EqualsBuilder()
+            .append( this.id, that.id )
+            .isEquals();
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return new HashCodeBuilder( 13, 33 )
+            .append( this.id )
+            .toHashCode();
+    }
+
+    @Override
+    public String toString()
+    {
+        return new ToStringBuilder( this )
+            .append( "id", this.id )
+            .toString();
+    }
+
     private static class TransitionHolder implements 
Comparable<TransitionHolder>
     {
         Transition transition;

Modified: 
mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/StateMachine.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/StateMachine.java?view=diff&rev=500962&r1=500961&r2=500962
==============================================================================
--- 
mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/StateMachine.java 
(original)
+++ 
mina/sandbox/niklas/mina-sm/src/main/java/org/apache/mina/sm/StateMachine.java 
Mon Jan 29 00:08:59 2007
@@ -189,6 +189,7 @@
                                 + ". Moving to state " + newState.getId() 
                                 + " now." );
                     }
+                    setCurrentState( context, newState );
                     handle( newState, event );
                 }
                 else
@@ -222,6 +223,7 @@
                                 + ". Moving to state " + newState.getId() 
                                 + " now." );
                     }
+                    setCurrentState( context, newState );
                     handle( newState, event );
                 }
                 else
@@ -251,6 +253,7 @@
                                 + ". Moving to state " + newState.getId() 
                                 + " now." );
                     }
+                    setCurrentState( context, newState );
                     handle( newState, event );
                 }
                 else


Reply via email to