Author: niklas
Date: Mon Nov  5 11:10:32 2007
New Revision: 592122

URL: http://svn.apache.org/viewvc?rev=592122&view=rev
Log:
Resolved DIRMINA-463: Introduced IoHandler and IoFilter specific transition 
annotations and enums which enumerates the possible IoHandler and IoFilter 
events.

Added:
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java
   (with props)
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java
   (with props)
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java
   (with props)
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java
   (with props)
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transition.java
      - copied, changed from r592107, 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handler.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transitions.java
      - copied, changed from r592107, 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handlers.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java
   (with props)
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoHandlerEvents.java
      - copied, changed from r592107, 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoSessionEvents.java
Removed:
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handler.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handlers.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoSessionEvents.java
Modified:
    mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/Main.java
    
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateControl.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineFactory.java
    
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodTransition.java
    
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineFactoryTest.java
    
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineProxyFactoryTest.java
    
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateTest.java

Modified: 
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/Main.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/Main.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/Main.java 
(original)
+++ mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/Main.java 
Mon Nov  5 11:10:32 2007
@@ -45,7 +45,7 @@
     private static final int PORT = 12345;
     
     private static IoHandler createIoHandler() {
-        StateMachine sm = StateMachineFactory.create(TapeDeckServer.EMPTY, new 
TapeDeckServer());
+        StateMachine sm = 
StateMachineFactory.createForIoHandler(TapeDeckServer.EMPTY, new 
TapeDeckServer());
         
         return (IoHandler) StateMachineProxyFactory.create(IoHandler.class, 
sm, 
                 new IoSessionStateContextLookup(new StateContextFactory() {

Modified: 
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java
 (original)
+++ 
mina/trunk/example/src/main/java/org/apache/mina/example/tapedeck/TapeDeckServer.java
 Mon Nov  5 11:10:32 2007
@@ -19,13 +19,13 @@
  */
 package org.apache.mina.example.tapedeck;
 
-import static org.apache.mina.statemachine.event.IoSessionEvents.*;
+import static org.apache.mina.statemachine.event.IoHandlerEvents.*;
 
 import org.apache.mina.common.IoFutureListener;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.statemachine.StateControl;
-import org.apache.mina.statemachine.annotation.Handler;
-import org.apache.mina.statemachine.annotation.Handlers;
+import org.apache.mina.statemachine.annotation.IoHandlerTransition;
+import org.apache.mina.statemachine.annotation.IoHandlerTransitions;
 import org.apache.mina.statemachine.annotation.State;
 import org.apache.mina.statemachine.context.AbstractStateContext;
 import org.apache.mina.statemachine.context.StateContext;
@@ -53,12 +53,12 @@
         public String tapeName;
     }
     
-    @Handler(on = SESSION_OPENED, in = EMPTY)
+    @IoHandlerTransition(on = SESSION_OPENED, in = EMPTY)
     public void connect(IoSession session) {
         session.write("+ Greetings from your tape deck!");
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = EMPTY, next = LOADED)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = EMPTY, next = LOADED)
     public void loadTape(TapeDeckContext context, IoSession session, 
LoadCommand cmd) {
         if (cmd.getTapeNumber() < 1 || cmd.getTapeNumber() > tapes.length) {
             session.write("- Unknown tape number: " + cmd.getTapeNumber());
@@ -69,31 +69,31 @@
         }
     }
 
-    @Handlers({
-        @Handler(on = MESSAGE_RECEIVED, in = LOADED, next = PLAYING),
-        @Handler(on = MESSAGE_RECEIVED, in = PAUSED, next = PLAYING)
+    @IoHandlerTransitions({
+        @IoHandlerTransition(on = MESSAGE_RECEIVED, in = LOADED, next = 
PLAYING),
+        @IoHandlerTransition(on = MESSAGE_RECEIVED, in = PAUSED, next = 
PLAYING)
     })
     public void playTape(TapeDeckContext context, IoSession session, 
PlayCommand cmd) {
         session.write("+ Playing \"" + context.tapeName + "\"");
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = PLAYING, next = PAUSED)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = PLAYING, next = PAUSED)
     public void pauseTape(TapeDeckContext context, IoSession session, 
PauseCommand cmd) {
         session.write("+ \"" + context.tapeName + "\" paused");
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = PLAYING, next = LOADED)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = PLAYING, next = LOADED)
     public void stopTape(TapeDeckContext context, IoSession session, 
StopCommand cmd) {
         session.write("+ \"" + context.tapeName + "\" stopped");
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = LOADED, next = EMPTY)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = LOADED, next = EMPTY)
     public void ejectTape(TapeDeckContext context, IoSession session, 
EjectCommand cmd) {
         session.write("+ \"" + context.tapeName + "\" ejected");
         context.tapeName = null;
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = ROOT)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = ROOT)
     public void listTapes(IoSession session, ListCommand cmd) {
         StringBuilder response = new StringBuilder("+ (");
         for (int i = 0; i < tapes.length; i++) {
@@ -107,7 +107,7 @@
         session.write(response);
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = ROOT)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = ROOT)
     public void info(TapeDeckContext context, IoSession session, InfoCommand 
cmd) {
         String state = context.getCurrentState().getId().toLowerCase();
         if (context.tapeName == null) {
@@ -118,29 +118,29 @@
         }
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = ROOT)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = ROOT)
     public void quit(TapeDeckContext context, IoSession session, QuitCommand 
cmd) {
         session.write("+ Bye! Please come 
back!").addListener(IoFutureListener.CLOSE);
     }
     
-    @Handler(on = MESSAGE_RECEIVED, in = ROOT, weight = 10)
+    @IoHandlerTransition(on = MESSAGE_RECEIVED, in = ROOT, weight = 10)
     public void error(Event event, StateContext context, IoSession session, 
Command cmd) {
         session.write("- Cannot " + cmd.getName() 
                 + " while " + context.getCurrentState().getId().toLowerCase());
     }
     
-    @Handler(on = EXCEPTION_CAUGHT, in = ROOT)
+    @IoHandlerTransition(on = EXCEPTION_CAUGHT, in = ROOT)
     public void commandSyntaxError(IoSession session, CommandSyntaxException 
e) {
         session.write("- " + e.getMessage());
     }
     
-    @Handler(on = EXCEPTION_CAUGHT, in = ROOT, weight = 10)
+    @IoHandlerTransition(on = EXCEPTION_CAUGHT, in = ROOT, weight = 10)
     public void exceptionCaught(IoSession session, Exception e) {
         e.printStackTrace();
         session.close();
     }
     
-    @Handler(in = ROOT, weight = 100)
+    @IoHandlerTransition(in = ROOT, weight = 100)
     public void unhandledEvent() {
     }
     

Modified: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateControl.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateControl.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateControl.java
 (original)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateControl.java
 Mon Nov  5 11:10:32 2007
@@ -19,7 +19,6 @@
  */
 package org.apache.mina.statemachine;
 
-import org.apache.mina.statemachine.annotation.Handler;
 import org.apache.mina.statemachine.event.Event;
 import org.apache.mina.statemachine.transition.Transition;
 
@@ -30,7 +29,7 @@
  * immediately and let the new [EMAIL PROTECTED] State} handle the current 
[EMAIL PROTECTED] Event}.
  * The <code>*Next()</code> family on the other hand let the new [EMAIL 
PROTECTED] State}
  * handle the next [EMAIL PROTECTED] Event} which is generated which make 
these method the 
- * programmatic equivalent of using the [EMAIL PROTECTED] Handler} annotation.
+ * programmatic equivalent of using the [EMAIL PROTECTED] 
org.apache.mina.statemachine.annotation.Transition} annotation.
  * </p>
  * <p>
  * Using the <code>breakAndCall*()</code> and <code>breakAndReturn*</code> 
methods one
@@ -68,7 +67,7 @@
      * Breaks the execution of the current [EMAIL PROTECTED] Transition} and 
lets the
      * [EMAIL PROTECTED] State} with the specified id handle the 
<strong>next</strong> [EMAIL PROTECTED] Event}.
      * Using this method is the programmatic equivalent of using the
-     * [EMAIL PROTECTED] Handler} annotation.
+     * [EMAIL PROTECTED] org.apache.mina.statemachine.annotation.Transition} 
annotation.
      * 
      * @param state the id of the [EMAIL PROTECTED] State} to go to.
      */

Modified: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineFactory.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineFactory.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineFactory.java
 (original)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/StateMachineFactory.java
 Mon Nov  5 11:10:32 2007
@@ -32,16 +32,19 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.mina.statemachine.annotation.Handler;
-import org.apache.mina.statemachine.annotation.Handlers;
+import org.apache.mina.statemachine.annotation.IoFilterTransition;
+import org.apache.mina.statemachine.annotation.IoFilterTransitions;
+import org.apache.mina.statemachine.annotation.IoHandlerTransition;
+import org.apache.mina.statemachine.annotation.IoHandlerTransitions;
+import org.apache.mina.statemachine.annotation.Transition;
+import org.apache.mina.statemachine.annotation.Transitions;
 import org.apache.mina.statemachine.event.Event;
 import org.apache.mina.statemachine.transition.MethodTransition;
-import org.apache.mina.statemachine.transition.Transition;
 
 
 /**
  * Creates [EMAIL PROTECTED] StateMachine}s by reading [EMAIL PROTECTED] 
org.apache.mina.statemachine.annotation.State},
- * [EMAIL PROTECTED] Handler} and [EMAIL PROTECTED] Handlers} annotations from 
one or more arbitrary 
+ * [EMAIL PROTECTED] Transition} and [EMAIL PROTECTED] Transitions} 
annotations from one or more arbitrary 
  * objects.
  * 
  *
@@ -104,20 +107,54 @@
      * @return the [EMAIL PROTECTED] StateMachine} object.
      */
     public static StateMachine create(String start, Object handler, Object... 
handlers) {
-        return create(Handler.class, Handlers.class, start, handler, handlers);
+        return create(Transition.class, Transitions.class, start, handler, 
handlers);
+    }
+    
+    /**
+     * Creates a new [EMAIL PROTECTED] StateMachine} from the specified 
handler objects and
+     * using the [EMAIL PROTECTED] State} with the specified id as start 
state. This method
+     * should be used when using the [EMAIL PROTECTED] IoHandlerTransition} and
+     * [EMAIL PROTECTED] IoHandlerTransitions} annotations.
+     * 
+     * @param start the id of the start [EMAIL PROTECTED] State} to use.
+     * @param handler the first object containing the annotations describing 
the 
+     *        state machine.
+     * @param handlers zero or more additional objects containing the 
+     *        annotations describing the state machine.
+     * @return the [EMAIL PROTECTED] StateMachine} object.
+     */
+    public static StateMachine createForIoHandler(String start, Object 
handler, Object... handlers) {
+        return create(IoHandlerTransition.class, IoHandlerTransitions.class, 
start, handler, handlers);
+    }
+    
+    /**
+     * Creates a new [EMAIL PROTECTED] StateMachine} from the specified 
handler objects and
+     * using the [EMAIL PROTECTED] State} with the specified id as start 
state. This method
+     * should be used when using the [EMAIL PROTECTED] IoFilterTransition} and
+     * [EMAIL PROTECTED] IoFilterTransitions} annotations.
+     * 
+     * @param start the id of the start [EMAIL PROTECTED] State} to use.
+     * @param handler the first object containing the annotations describing 
the 
+     *        state machine.
+     * @param handlers zero or more additional objects containing the 
+     *        annotations describing the state machine.
+     * @return the [EMAIL PROTECTED] StateMachine} object.
+     */
+    public static StateMachine createForIoFilter(String start, Object handler, 
Object... handlers) {
+        return create(IoFilterTransition.class, IoFilterTransitions.class, 
start, handler, handlers);
     }
     
     /**
      * Creates a new [EMAIL PROTECTED] StateMachine} from the specified 
handler objects and
      * using the [EMAIL PROTECTED] State} with the specified id as start 
state. Use this
-     * method if you want to use your own alternatives to the [EMAIL 
PROTECTED] Handler}
-     * and [EMAIL PROTECTED] Handlers} annotations.
+     * method if you want to use your own alternatives to the [EMAIL 
PROTECTED] Transition}
+     * and [EMAIL PROTECTED] Transitions} annotations.
      * 
-     * @param handlerAnnotation the annotation to use instead of [EMAIL 
PROTECTED] Handler}. 
-     *        The annotation must have the same parameters as [EMAIL 
PROTECTED] Handler} 
+     * @param transitionAnnotation the annotation to use instead of [EMAIL 
PROTECTED] Transition}. 
+     *        The annotation must have the same parameters as [EMAIL 
PROTECTED] Transition} 
      *        but the <code>on</code> parameter may be of an enum type instead 
of string.
-     * @param handlersAnnotation the annotation to use instead of [EMAIL 
PROTECTED] Handlers}. 
-     *        The annotation must have the same parameters as [EMAIL 
PROTECTED] Handlers}. 
+     * @param transitionsAnnotation the annotation to use instead of [EMAIL 
PROTECTED] Transitions}. 
+     *        The annotation must have the same parameters as [EMAIL 
PROTECTED] Transitions}. 
      * @param start the id of the start [EMAIL PROTECTED] State} to use.
      * @param handler the first object containing the annotations describing 
the 
      *        state machine.
@@ -125,8 +162,8 @@
      *        annotations describing the state machine.
      * @return the [EMAIL PROTECTED] StateMachine} object.
      */
-    public static StateMachine create(Class<? extends Annotation> 
handlerAnnotation, 
-            Class<? extends Annotation> handlersAnnotation, 
+    public static StateMachine create(Class<? extends Annotation> 
transitionAnnotation, 
+            Class<? extends Annotation> transitionsAnnotation, 
             String start, Object handler, Object... handlers) {
         
         Map<String, State> states = new HashMap<String, State>();
@@ -146,20 +183,20 @@
             throw new StateMachineCreationException("Start state '" + start + 
"' not found.");
         }
 
-        setupTransitions(handlerAnnotation, handlersAnnotation, states, 
handlersList);
+        setupTransitions(transitionAnnotation, transitionsAnnotation, states, 
handlersList);
 
         return new StateMachine(states.values(), start);
     }
 
-    private static void setupTransitions(Class<? extends Annotation> 
handlerAnnotation, 
-            Class<? extends Annotation> handlersAnnotation, Map<String, State> 
states, List<Object> handlers) {
+    private static void setupTransitions(Class<? extends Annotation> 
transitionAnnotation, 
+            Class<? extends Annotation> transitionsAnnotation, Map<String, 
State> states, List<Object> handlers) {
         for (Object handler : handlers) {
-            setupTransitions(handlerAnnotation, handlersAnnotation, states, 
handler);
+            setupTransitions(transitionAnnotation, transitionsAnnotation, 
states, handler);
         }
     }
     
-    private static void setupTransitions(Class<? extends Annotation> 
handlerAnnotation, 
-            Class<? extends Annotation> handlersAnnotation, Map<String, State> 
states, Object handler) {
+    private static void setupTransitions(Class<? extends Annotation> 
transitionAnnotation, 
+            Class<? extends Annotation> transitionsAnnotation, Map<String, 
State> states, Object handler) {
         
         Method[] methods = handler.getClass().getDeclaredMethods();
         Arrays.sort(methods, new Comparator<Method>() {
@@ -169,20 +206,20 @@
         });
         
         for (Method m : methods) {
-            List<HandlerWrapper> handlerAnnotations = new 
ArrayList<HandlerWrapper>();
-            if (m.isAnnotationPresent(handlerAnnotation)) {
-                handlerAnnotations.add(new HandlerWrapper(handlerAnnotation, 
m.getAnnotation(handlerAnnotation)));
-            }
-            if (m.isAnnotationPresent(handlersAnnotation)) {
-                handlerAnnotations.addAll(Arrays.asList(new 
HandlersWrapper(handlerAnnotation, 
-                        handlersAnnotation, 
m.getAnnotation(handlersAnnotation)).value()));
+            List<TransitionWrapper> transitionAnnotations = new 
ArrayList<TransitionWrapper>();
+            if (m.isAnnotationPresent(transitionAnnotation)) {
+                transitionAnnotations.add(new 
TransitionWrapper(transitionAnnotation, m.getAnnotation(transitionAnnotation)));
+            }
+            if (m.isAnnotationPresent(transitionsAnnotation)) {
+                transitionAnnotations.addAll(Arrays.asList(new 
TransitionsWrapper(transitionAnnotation, 
+                        transitionsAnnotation, 
m.getAnnotation(transitionsAnnotation)).value()));
             }
             
-            if (handlerAnnotations.isEmpty()) {
+            if (transitionAnnotations.isEmpty()) {
                 continue;
             }
             
-            for (HandlerWrapper annotation : handlerAnnotations) {
+            for (TransitionWrapper annotation : transitionAnnotations) {
                 Object[] eventIds = annotation.on();
                 if (eventIds.length == 0) {
                     throw new StateMachineCreationException("Error encountered 
" 
@@ -196,7 +233,7 @@
                 }
                 
                 State next = null;
-                if (!annotation.next().equals(Handler.SELF)) {
+                if (!annotation.next().equals(Transition.SELF)) {
                     next = states.get(annotation.next());
                     if (next == null) {
                         throw new StateMachineCreationException("Error 
encountered " 
@@ -209,6 +246,9 @@
                     if (event == null) {
                         event = Event.WILDCARD_EVENT_ID;
                     }
+                    if (!(event instanceof String)) {
+                        event = event.toString();
+                    }
                     for (String in : annotation.in()) {
                         State state = states.get(in);
                         if (state == null) {
@@ -217,8 +257,7 @@
                                     + m + ". Unknown state: " + in + ".");
                         }
 
-                        Transition t = new MethodTransition(event, next, m, 
handler);
-                        state.addTransition(t, annotation.weight());
+                        state.addTransition(new MethodTransition(event, next, 
m, handler), annotation.weight());
                     }
                 }
             }
@@ -297,11 +336,11 @@
         return states.values().toArray(new State[0]);
     }
     
-    private static class HandlerWrapper {
-        private final Class<? extends Annotation> handlerClazz;
+    private static class TransitionWrapper {
+        private final Class<? extends Annotation> transitionClazz;
         private final Annotation annotation;
-        public HandlerWrapper(Class<? extends Annotation> handlerClazz, 
Annotation annotation) {
-            this.handlerClazz = handlerClazz;
+        public TransitionWrapper(Class<? extends Annotation> transitionClazz, 
Annotation annotation) {
+            this.transitionClazz = transitionClazz;
             this.annotation = annotation;
         }
         Object[] on() {
@@ -319,47 +358,47 @@
         @SuppressWarnings("unchecked")
         private <T> T getParameter(String name, Class<T> returnType) {
             try {
-                Method m = handlerClazz.getMethod(name);
+                Method m = transitionClazz.getMethod(name);
                 if (!returnType.isAssignableFrom(m.getReturnType())) {
                     throw new NoSuchMethodException();
                 }
                 return (T) m.invoke(annotation);
             } catch (Throwable t) {
                 throw new StateMachineCreationException("Could not get 
parameter '" 
-                        + name + "' from Handler annotation " + handlerClazz);
+                        + name + "' from Transition annotation " + 
transitionClazz);
             }
         }
     }
     
-    private static class HandlersWrapper {
-        private final Class<? extends Annotation> handlersclazz;
-        private final Class<? extends Annotation> handlerClazz;
+    private static class TransitionsWrapper {
+        private final Class<? extends Annotation> transitionsclazz;
+        private final Class<? extends Annotation> transitionClazz;
         private final Annotation annotation;
-        public HandlersWrapper(Class<? extends Annotation> handlerClazz, 
-                Class<? extends Annotation> handlersclazz, Annotation 
annotation) {
-            this.handlerClazz = handlerClazz;
-            this.handlersclazz = handlersclazz;
+        public TransitionsWrapper(Class<? extends Annotation> transitionClazz, 
+                Class<? extends Annotation> transitionsclazz, Annotation 
annotation) {
+            this.transitionClazz = transitionClazz;
+            this.transitionsclazz = transitionsclazz;
             this.annotation = annotation;
         }
-        HandlerWrapper[] value() {
+        TransitionWrapper[] value() {
             Annotation[] annos = getParameter("value", Annotation[].class);
-            HandlerWrapper[] wrappers = new HandlerWrapper[annos.length];
+            TransitionWrapper[] wrappers = new TransitionWrapper[annos.length];
             for (int i = 0; i < annos.length; i++) {
-                wrappers[i] = new HandlerWrapper(handlerClazz, annos[i]);
+                wrappers[i] = new TransitionWrapper(transitionClazz, annos[i]);
             }
             return wrappers;
         }
         @SuppressWarnings("unchecked")
         private <T> T getParameter(String name, Class<T> returnType) {
             try {
-                Method m = handlersclazz.getMethod(name);
+                Method m = transitionsclazz.getMethod(name);
                 if (!returnType.isAssignableFrom(m.getReturnType())) {
                     throw new NoSuchMethodException();
                 }
                 return (T) m.invoke(annotation);
             } catch (Throwable t) {
                 throw new StateMachineCreationException("Could not get 
parameter '" 
-                        + name + "' from Handlers annotation " + 
handlersclazz);
+                        + name + "' from Transitions annotation " + 
transitionsclazz);
             }
         }
     }

Added: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java?rev=592122&view=auto
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java
 (added)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java
 Mon Nov  5 11:10:32 2007
@@ -0,0 +1,70 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.mina.statemachine.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.mina.common.IoFilter;
+import org.apache.mina.statemachine.StateMachine;
+import org.apache.mina.statemachine.event.IoFilterEvents;
+
+/**
+ * Annotation used on methods to indicate that the method handles a specific
+ * kind of [EMAIL PROTECTED] IoFilterEvents} event when in a specific state. 
This should
+ * be used when creating [EMAIL PROTECTED] StateMachine}s for MINA's [EMAIL 
PROTECTED] IoFilter}
+ * interface.
+ *
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
[EMAIL PROTECTED](RetentionPolicy.RUNTIME)
[EMAIL PROTECTED](ElementType.METHOD)
+public @interface IoFilterTransition {
+    public static final String SELF = "__self__";
+
+    /**
+     * Specifies the ids of one or more events handled by the annotated 
method. If
+     * not specified the handler method will be executed for any event.
+     */
+    IoFilterEvents[] on() default IoFilterEvents.ANY;
+
+    /**
+     * The id of the state or states that this handler applies to. Must be
+     * specified.
+     */
+    String[] in();
+
+    /**
+     * The id of the state the [EMAIL PROTECTED] StateMachine} should move to 
next after
+     * executing the annotated method. If not specified the [EMAIL PROTECTED] 
StateMachine}
+     * will remain in the same state.
+     */
+    String next() default SELF;
+
+    /**
+     * The weight used to order handler annotations which match the same event 
+     * in the same state. Transitions with lower weight will be matched first. 
The
+     * default weight is 0.
+     */
+    int weight() default 0;
+}

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransition.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date Id

Added: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java?rev=592122&view=auto
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java
 (added)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java
 Mon Nov  5 11:10:32 2007
@@ -0,0 +1,42 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.mina.statemachine.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.mina.common.IoFilter;
+import org.apache.mina.statemachine.StateMachine;
+
+/**
+ * Annotation used to annotate a method with several [EMAIL PROTECTED] 
IoFilterTransition}s.
+ * This should be used when creating [EMAIL PROTECTED] StateMachine}s for 
MINA's 
+ * [EMAIL PROTECTED] IoFilter} interface.
+ * 
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
[EMAIL PROTECTED](RetentionPolicy.RUNTIME)
[EMAIL PROTECTED](ElementType.METHOD)
+public @interface IoFilterTransitions {
+    IoFilterTransition[] value();
+}

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoFilterTransitions.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date Id

Added: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java?rev=592122&view=auto
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java
 (added)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java
 Mon Nov  5 11:10:32 2007
@@ -0,0 +1,70 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.mina.statemachine.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.mina.common.IoHandler;
+import org.apache.mina.statemachine.StateMachine;
+import org.apache.mina.statemachine.event.IoHandlerEvents;
+
+/**
+ * Annotation used on methods to indicate that the method handles a specific
+ * kind of [EMAIL PROTECTED] IoHandlerEvents} event when in a specific state. 
This should
+ * be used when creating [EMAIL PROTECTED] StateMachine}s for MINA's [EMAIL 
PROTECTED] IoHandler}
+ * interface.
+ *
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
[EMAIL PROTECTED](RetentionPolicy.RUNTIME)
[EMAIL PROTECTED](ElementType.METHOD)
+public @interface IoHandlerTransition {
+    public static final String SELF = "__self__";
+
+    /**
+     * Specifies the ids of one or more events handled by the annotated 
method. If
+     * not specified the handler method will be executed for any event.
+     */
+    IoHandlerEvents[] on() default IoHandlerEvents.ANY;
+
+    /**
+     * The id of the state or states that this handler applies to. Must be
+     * specified.
+     */
+    String[] in();
+
+    /**
+     * The id of the state the [EMAIL PROTECTED] StateMachine} should move to 
next after
+     * executing the annotated method. If not specified the [EMAIL PROTECTED] 
StateMachine}
+     * will remain in the same state.
+     */
+    String next() default SELF;
+
+    /**
+     * The weight used to order handler annotations which match the same event 
+     * in the same state. Transitions with lower weight will be matched first. 
The
+     * default weight is 0.
+     */
+    int weight() default 0;
+}

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransition.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date Id

Added: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java?rev=592122&view=auto
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java
 (added)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java
 Mon Nov  5 11:10:32 2007
@@ -0,0 +1,42 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.mina.statemachine.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.mina.common.IoHandler;
+import org.apache.mina.statemachine.StateMachine;
+
+/**
+ * Annotation used to annotate a method with several [EMAIL PROTECTED] 
IoHandlerTransition}s.
+ * This should be used when creating [EMAIL PROTECTED] StateMachine}s for 
MINA's 
+ * [EMAIL PROTECTED] IoHandler} interface.
+ * 
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
[EMAIL PROTECTED](RetentionPolicy.RUNTIME)
[EMAIL PROTECTED](ElementType.METHOD)
+public @interface IoHandlerTransitions {
+    IoHandlerTransition[] value();
+}

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/IoHandlerTransitions.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date Id

Copied: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transition.java
 (from r592107, 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handler.java)
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transition.java?p2=mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transition.java&p1=mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handler.java&r1=592107&r2=592122&rev=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handler.java
 (original)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transition.java
 Mon Nov  5 11:10:32 2007
@@ -36,7 +36,7 @@
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
-public @interface Handler {
+public @interface Transition {
     public static final String SELF = "__self__";
 
     /**
@@ -60,7 +60,7 @@
 
     /**
      * The weight used to order handler annotations which match the same event 
-     * in the same state. Handlers with lower weight will be matched first. The
+     * in the same state. Transitions with lower weight will be matched first. 
The
      * default weight is 0.
      */
     int weight() default 0;

Copied: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transitions.java
 (from r592107, 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handlers.java)
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transitions.java?p2=mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transitions.java&p1=mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handlers.java&r1=592107&r2=592122&rev=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Handlers.java
 (original)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/annotation/Transitions.java
 Mon Nov  5 11:10:32 2007
@@ -25,13 +25,13 @@
 import java.lang.annotation.Target;
 
 /**
- * Annotation used to annotate a method with several [EMAIL PROTECTED] 
Handler}s.
+ * Annotation used to annotate a method with several [EMAIL PROTECTED] 
Transition}s.
  *
  * @author The Apache MINA Project ([EMAIL PROTECTED])
  * @version $Rev$, $Date$
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
-public @interface Handlers {
-    Handler[] value();
+public @interface Transitions {
+    Transition[] value();
 }

Added: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java?rev=592122&view=auto
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java
 (added)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java
 Mon Nov  5 11:10:32 2007
@@ -0,0 +1,55 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.mina.statemachine.event;
+
+import org.apache.mina.common.IoFilter;
+import org.apache.mina.statemachine.annotation.IoFilterTransition;
+
+/**
+ * Defines all possible MINA [EMAIL PROTECTED] IoFilter} events for use in 
[EMAIL PROTECTED] IoFilterTransition}
+ * annotations.
+ *
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
+public enum IoFilterEvents {
+    ANY(Event.WILDCARD_EVENT_ID),
+    SESSION_CREATED("sessionCreated"),
+    SESSION_OPENED("sessionOpened"),
+    SESSION_CLOSED("sessionClosed"),
+    SESSION_IDLE("sessionIdle"),
+    MESSAGE_RECEIVED("messageReceived"),
+    MESSAGE_SENT("messageSent"),
+    FILTER_CLOSE("filterClose"),
+    FILTER_WRITE("filterWrite"),
+    FILTER_SET_TRAFFIC_MASK("filterSetTrafficMask"),
+    EXCEPTION_CAUGHT("exceptionCaught");
+
+    private final String value;
+    
+    private IoFilterEvents(String value) {
+        this.value = value;
+    }
+    
+    @Override
+    public String toString() {
+        return value;
+    }
+}

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoFilterEvents.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date Id

Copied: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoHandlerEvents.java
 (from r592107, 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoSessionEvents.java)
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoHandlerEvents.java?p2=mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoHandlerEvents.java&p1=mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoSessionEvents.java&r1=592107&r2=592122&rev=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoSessionEvents.java
 (original)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/event/IoHandlerEvents.java
 Mon Nov  5 11:10:32 2007
@@ -20,30 +20,33 @@
 package org.apache.mina.statemachine.event;
 
 import org.apache.mina.common.IoHandler;
-import org.apache.mina.statemachine.annotation.Handler;
+import org.apache.mina.statemachine.annotation.IoHandlerTransition;
 
 /**
- * Defines all possible MINA [EMAIL PROTECTED] IoHandler} events for use in 
[EMAIL PROTECTED] Handler}
+ * Defines all possible MINA [EMAIL PROTECTED] IoHandler} events for use in 
[EMAIL PROTECTED] IoHandlerTransition}
  * annotations.
  *
  * @author The Apache MINA Project ([EMAIL PROTECTED])
  * @version $Rev$, $Date$
  */
-public final class IoSessionEvents {
-    public static final String SESSION_CREATED = "sessionCreated";
-
-    public static final String SESSION_OPENED = "sessionOpened";
-
-    public static final String SESSION_CLOSED = "sessionClosed";
-
-    public static final String SESSION_IDLE = "sessionIdle";
-
-    public static final String MESSAGE_RECEIVED = "messageReceived";
-
-    public static final String MESSAGE_SENT = "messageSent";
-
-    public static final String EXCEPTION_CAUGHT = "exceptionCaught";
-
-    private IoSessionEvents() {
+public enum IoHandlerEvents {
+    ANY(Event.WILDCARD_EVENT_ID),
+    SESSION_CREATED("sessionCreated"),
+    SESSION_OPENED("sessionOpened"),
+    SESSION_CLOSED("sessionClosed"),
+    SESSION_IDLE("sessionIdle"),
+    MESSAGE_RECEIVED("messageReceived"),
+    MESSAGE_SENT("messageSent"),
+    EXCEPTION_CAUGHT("exceptionCaught");
+
+    private final String value;
+    
+    private IoHandlerEvents(String value) {
+        this.value = value;
+    }
+    
+    @Override
+    public String toString() {
+        return value;
     }
 }

Modified: 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodTransition.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodTransition.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodTransition.java
 (original)
+++ 
mina/trunk/statemachine/src/main/java/org/apache/mina/statemachine/transition/MethodTransition.java
 Mon Nov  5 11:10:32 2007
@@ -29,7 +29,7 @@
 import org.apache.mina.statemachine.State;
 import org.apache.mina.statemachine.StateMachine;
 import org.apache.mina.statemachine.StateMachineFactory;
-import org.apache.mina.statemachine.annotation.Handler;
+import org.apache.mina.statemachine.annotation.Transition;
 import org.apache.mina.statemachine.context.StateContext;
 import org.apache.mina.statemachine.event.Event;
 import org.slf4j.Logger;
@@ -50,7 +50,7 @@
  * </p>
  * <p>
  * Normally you wouldn't create instances of this class directly but rather 
use the 
- * [EMAIL PROTECTED] Handler} annotation to define the methods which should be 
used as
+ * [EMAIL PROTECTED] Transition} annotation to define the methods which should 
be used as
  * transitions in your state machine and then let [EMAIL PROTECTED] 
StateMachineFactory} create a 
  * [EMAIL PROTECTED] StateMachine} for you.
  * </p>

Modified: 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineFactoryTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineFactoryTest.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineFactoryTest.java
 (original)
+++ 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineFactoryTest.java
 Mon Nov  5 11:10:32 2007
@@ -28,10 +28,9 @@
 import org.apache.mina.statemachine.StateMachine;
 import org.apache.mina.statemachine.StateMachineCreationException;
 import org.apache.mina.statemachine.StateMachineFactory;
-import org.apache.mina.statemachine.annotation.Handler;
-import org.apache.mina.statemachine.annotation.Handlers;
+import org.apache.mina.statemachine.annotation.Transition;
+import org.apache.mina.statemachine.annotation.Transitions;
 import org.apache.mina.statemachine.transition.MethodTransition;
-import org.apache.mina.statemachine.transition.Transition;
 
 /**
  * Tests [EMAIL PROTECTED] StateMachineFactory}.
@@ -74,7 +73,7 @@
         assertEquals(States.D, d.getId());
         assertSame(a, d.getParent());
 
-        List<Transition> trans = null;
+        List<org.apache.mina.statemachine.transition.Transition> trans = null;
 
         trans = a.getTransitions();
         assertEquals(3, trans.size());
@@ -127,27 +126,27 @@
         @org.apache.mina.statemachine.annotation.State(A)
         protected static final String D = "d";
         
-        @Handler(on = "bar", in = A)
+        @Transition(on = "bar", in = A)
         protected void barInA() {
         }
 
-        @Handler(on = "bar", in = C, next = A)
+        @Transition(on = "bar", in = C, next = A)
         protected void barInC() {
         }
 
-        @Handler(in = A)
+        @Transition(in = A)
         protected void error() {
         }
 
-        @Handler(on = "foo", in = A, next = B)
+        @Transition(on = "foo", in = A, next = B)
         protected void fooInA() {
         }
 
-        @Handler(on = "foo", in = B, next = C)
+        @Transition(on = "foo", in = B, next = C)
         protected void fooInB() {
         }
 
-        @Handlers( { @Handler(on = { "foo", "bar" }, in = C, next = D), 
@Handler(on = "foo", in = D) })
+        @Transitions( { @Transition(on = { "foo", "bar" }, in = C, next = D), 
@Transition(on = "foo", in = D) })
         protected void fooOrBarInCOrFooInD() {
         }
       

Modified: 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineProxyFactoryTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineProxyFactoryTest.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineProxyFactoryTest.java
 (original)
+++ 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateMachineProxyFactoryTest.java
 Mon Nov  5 11:10:32 2007
@@ -27,8 +27,8 @@
 import org.apache.mina.statemachine.StateMachine;
 import org.apache.mina.statemachine.StateMachineFactory;
 import org.apache.mina.statemachine.StateMachineProxyFactory;
-import org.apache.mina.statemachine.annotation.Handler;
-import org.apache.mina.statemachine.annotation.Handlers;
+import org.apache.mina.statemachine.annotation.Transition;
+import org.apache.mina.statemachine.annotation.Transitions;
 import org.apache.mina.statemachine.event.Event;
 import org.apache.mina.statemachine.transition.MethodTransition;
 
@@ -162,33 +162,33 @@
         
         private LinkedList<String> messages = new LinkedList<String>();
         
-        @Handler(on = "insert", in = "s1", next = "s2")
+        @Transition(on = "insert", in = "s1", next = "s2")
         public void inserted(String name) {
             messages.add("Tape '" + name + "' inserted");
         }
 
-        @Handler(on = "eject", in = "s4", next = "s1")
+        @Transition(on = "eject", in = "s4", next = "s1")
         public void ejected() {
             messages.add("Tape ejected");
         }
         
-        @Handlers([EMAIL PROTECTED]( on = "start", in = "s2", next = "s3" ),
-                   @Handler( on = "pause", in = "s5", next = "s3" )})
+        @Transitions([EMAIL PROTECTED]( on = "start", in = "s2", next = "s3" ),
+                   @Transition( on = "pause", in = "s5", next = "s3" )})
         public void playing() {
             messages.add("Playing");
         }
         
-        @Handler(on = "pause", in = "s3", next = "s5")
+        @Transition(on = "pause", in = "s3", next = "s5")
         public void paused() {
             messages.add("Paused");
         }
 
-        @Handler(on = "stop", in = "s3", next = "s4")
+        @Transition(on = "stop", in = "s3", next = "s4")
         public void stopped() {
             messages.add("Stopped");
         }
 
-        @Handler(on = "*", in = "parent")
+        @Transition(on = "*", in = "parent")
         public void error(Event event) {
             messages.add("Error: Cannot " + event.getId() + " at this time");
         }

Modified: 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateTest.java?rev=592122&r1=592121&r2=592122&view=diff
==============================================================================
--- 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateTest.java
 (original)
+++ 
mina/trunk/statemachine/src/test/java/org/apache/mina/statemachine/StateTest.java
 Mon Nov  5 11:10:32 2007
@@ -25,7 +25,7 @@
 import com.agical.rmock.extension.junit.RMockTestCase;
 
 /**
- * Tests [EMAIL PROTECTED] FsmState}.
+ * Tests [EMAIL PROTECTED] State}.
  *
  * @author The Apache MINA Project ([EMAIL PROTECTED])
  * @version $Rev$, $Date$


Reply via email to