You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/12/06 04:27:04 UTC
svn commit: r354272 - in
/directory/network/trunk/src/java/org/apache/mina/handler/chain:
ChainedIoHandler.java Command.java CommandChain.java IoHandlerChain.java
IoHandlerCommand.java
Author: trustin
Date: Mon Dec 5 19:26:57 2005
New Revision: 354272
URL: http://svn.apache.org/viewcvs?rev=354272&view=rev
Log:
* Renamed Command to IoHandlerCommand
* Renamed CommandChain to IoHandlerChain
* Added more documentation
* Added ChainedIoHandler.getCommand()
Added:
directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerChain.java
- copied, changed from r354266, directory/network/trunk/src/java/org/apache/mina/handler/chain/CommandChain.java
directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerCommand.java
- copied, changed from r354266, directory/network/trunk/src/java/org/apache/mina/handler/chain/Command.java
Removed:
directory/network/trunk/src/java/org/apache/mina/handler/chain/Command.java
directory/network/trunk/src/java/org/apache/mina/handler/chain/CommandChain.java
Modified:
directory/network/trunk/src/java/org/apache/mina/handler/chain/ChainedIoHandler.java
Modified: directory/network/trunk/src/java/org/apache/mina/handler/chain/ChainedIoHandler.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/handler/chain/ChainedIoHandler.java?rev=354272&r1=354271&r2=354272&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/handler/chain/ChainedIoHandler.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/handler/chain/ChainedIoHandler.java Mon Dec 5 19:26:57 2005
@@ -16,20 +16,28 @@
*/
package org.apache.mina.handler.chain;
+import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoHandlerAdapter;
import org.apache.mina.common.IoSession;
/**
- *
+ * An {@link IoHandler} which executes an {@link IoHandlerCommand} or
+ * an {@link IoHandlerChain} on a <tt>messageReceived</tt> event.
*
* @author The Apache Directory Project (dev@directory.apache.org)
* @version $Rev$, $Date$
*/
public class ChainedIoHandler extends IoHandlerAdapter
{
- private final Command command;
+ private final IoHandlerCommand command;
- public ChainedIoHandler( Command command )
+ /**
+ * Creates a new instance which executes the specified
+ * {@link IoHandlerCommand} on a <tt>messageReceived</tt> event.
+ *
+ * @param command an {@link IoHandlerCommand} or an {@link IoHandlerChain} to execute
+ */
+ public ChainedIoHandler( IoHandlerCommand command )
{
if( command == null )
{
@@ -37,7 +45,21 @@
}
this.command = command;
}
+
+ /**
+ * Returns the {@link IoHandlerCommand} this handler will use to
+ * handle <tt>messageReceived</tt> events.
+ */
+ public IoHandlerCommand getCommand()
+ {
+ return command;
+ }
+ /**
+ * Handles the specified <tt>messageReceived</tt> event with the
+ * {@link IoHandlerCommand} or {@link IoHandlerChain} you specified
+ * in the constructor.
+ */
public void messageReceived( IoSession session, Object message ) throws Exception
{
command.execute( null, session, message);
Copied: directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerChain.java (from r354266, directory/network/trunk/src/java/org/apache/mina/handler/chain/CommandChain.java)
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerChain.java?p2=directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerChain.java&p1=directory/network/trunk/src/java/org/apache/mina/handler/chain/CommandChain.java&r1=354266&r2=354272&rev=354272&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/handler/chain/CommandChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerChain.java Mon Dec 5 19:26:57 2005
@@ -27,32 +27,32 @@
import org.apache.mina.common.IoSession;
/**
- * A chain of {@link Command}s.
+ * A chain of {@link IoHandlerCommand}s.
*
* @author The Apache Directory Project
* @version $Rev$, $Date$
*/
-public class CommandChain implements Command
+public class IoHandlerChain implements IoHandlerCommand
{
private static volatile int nextId = 0;
private final int id = nextId++;
- private final String NEXT_COMMAND = CommandChain.class.getName() + '.' + id + ".nextCommand";
+ private final String NEXT_COMMAND = IoHandlerChain.class.getName() + '.' + id + ".nextCommand";
private final Map name2entry = new HashMap();
private final Entry head;
private final Entry tail;
- protected CommandChain()
+ protected IoHandlerChain()
{
head = new Entry( null, null, "head", createHeadCommand() );
tail = new Entry( head, null, "tail", createTailCommand() );
head.nextEntry = tail;
}
- private Command createHeadCommand()
+ private IoHandlerCommand createHeadCommand()
{
- return new Command()
+ return new IoHandlerCommand()
{
public void execute( NextCommand next, IoSession session, Object message ) throws Exception
{
@@ -61,9 +61,9 @@
};
}
- private Command createTailCommand()
+ private IoHandlerCommand createTailCommand()
{
- return new Command()
+ return new IoHandlerCommand()
{
public void execute( NextCommand next, IoSession session, Object message ) throws Exception
{
@@ -86,7 +86,7 @@
return e;
}
- public Command get( String name )
+ public IoHandlerCommand get( String name )
{
Entry e = getEntry( name );
if( e == null )
@@ -109,14 +109,14 @@
}
public synchronized void addFirst( String name,
- Command command )
+ IoHandlerCommand command )
{
checkAddable( name );
register( head, name, command );
}
public synchronized void addLast( String name,
- Command command )
+ IoHandlerCommand command )
{
checkAddable( name );
register( tail.prevEntry, name, command );
@@ -124,7 +124,7 @@
public synchronized void addBefore( String baseName,
String name,
- Command command )
+ IoHandlerCommand command )
{
Entry baseEntry = checkOldName( baseName );
checkAddable( name );
@@ -133,14 +133,14 @@
public synchronized void addAfter( String baseName,
String name,
- Command command )
+ IoHandlerCommand command )
{
Entry baseEntry = checkOldName( baseName );
checkAddable( name );
register( baseEntry, name, command );
}
- public synchronized Command remove( String name )
+ public synchronized IoHandlerCommand remove( String name )
{
Entry entry = checkOldName( name );
deregister( entry );
@@ -156,7 +156,7 @@
}
}
- private void register( Entry prevEntry, String name, Command command )
+ private void register( Entry prevEntry, String name, IoHandlerCommand command )
{
Entry newEntry = new Entry( prevEntry, prevEntry.nextEntry, name, command );
prevEntry.nextEntry.prevEntry = newEntry;
@@ -255,7 +255,7 @@
return getEntry( name ) != null;
}
- public boolean contains( Command command )
+ public boolean contains( IoHandlerCommand command )
{
Entry e = head.nextEntry;
while( e != tail )
@@ -329,12 +329,12 @@
private final String name;
- private final Command command;
+ private final IoHandlerCommand command;
private final NextCommand nextCommand;
private Entry( Entry prevEntry, Entry nextEntry,
- String name, Command command )
+ String name, IoHandlerCommand command )
{
if( command == null )
{
@@ -364,7 +364,7 @@
return name;
}
- public Command getCommand()
+ public IoHandlerCommand getCommand()
{
return command;
}
Copied: directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerCommand.java (from r354266, directory/network/trunk/src/java/org/apache/mina/handler/chain/Command.java)
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerCommand.java?p2=directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerCommand.java&p1=directory/network/trunk/src/java/org/apache/mina/handler/chain/Command.java&r1=354266&r2=354272&rev=354272&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/handler/chain/Command.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/handler/chain/IoHandlerCommand.java Mon Dec 5 19:26:57 2005
@@ -19,21 +19,21 @@
import org.apache.mina.common.IoSession;
/**
- * <p>A {@link Command} encapsulates a unit of processing work to be
+ * <p>A {@link IoHandlerCommand} encapsulates a unit of processing work to be
* performed, whose purpose is to examine and/or modify the state of a
* transaction that is represented by custom attributes provided by
- * {@link IoSession}. Individual {@link Command}s can be assembled into
- * a {@link CommandChain}, which allows them to either complete the
+ * {@link IoSession}. Individual {@link IoHandlerCommand}s can be assembled into
+ * a {@link IoHandlerChain}, which allows them to either complete the
* required processing or delegate further processing to the next
- * {@link Command} in the {@link CommandChain}.</p>
+ * {@link IoHandlerCommand} in the {@link IoHandlerChain}.</p>
*
- * <p>{@link Command} implementations typically retrieve and store state
+ * <p>{@link IoHandlerCommand} implementations typically retrieve and store state
* information in the {@link IoSession} that is passed as a parameter to
* the {@link #execute(NextCommand,IoSession,Object)} method, using custom
- * session attributes. To improve interoperability of {@link Command}
+ * session attributes. To improve interoperability of {@link IoHandlerCommand}
* implementations, a useful design pattern is to expose the key values
- * used as JavaBeans properties of the {@link Command} implementation class
- * itself. For example, a {@link Command} that requires an input and an
+ * used as JavaBeans properties of the {@link IoHandlerCommand} implementation class
+ * itself. For example, a {@link IoHandlerCommand} that requires an input and an
* output key might implement the following properties:</p>
*
* <pre>
@@ -64,23 +64,23 @@
* <p>instead of hard coding the attribute name. The use of the "Key"
* suffix on such property names is a useful convention to identify properties
* being used in this fashion, as opposed to JavaBeans properties that simply
- * configure the internal operation of this {@link Command}.</p>
+ * configure the internal operation of this {@link IoHandlerCommand}.</p>
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public interface Command
+public interface IoHandlerCommand
{
/**
* <p>Execute a unit of processing work to be performed. This
- * {@link Command} may either complete the required processing
+ * {@link IoHandlerCommand} may either complete the required processing
* and just return to stop the processing, or delegate remaining
- * processing to the next {@link Command} in a {@link CommandChain}
- * containing this {@link Command} by calling
+ * processing to the next {@link IoHandlerCommand} in a {@link IoHandlerChain}
+ * containing this {@link IoHandlerCommand} by calling
* {@link NextCommand#execute(IoSession,Object)}.
*
- * @param next an indirect reference to the next {@link Command} that
- * provides a way to forward the request to the next {@link Command}.
+ * @param next an indirect reference to the next {@link IoHandlerCommand} that
+ * provides a way to forward the request to the next {@link IoHandlerCommand}.
* @param session the {@link IoSession} which is associated with
* this request
* @param message the message object of this request
@@ -91,9 +91,9 @@
void execute( NextCommand next, IoSession session, Object message ) throws Exception;
/**
- * Represents an indirect reference to the next {@link Command} of
- * the {@link CommandChain}. This interface provides a way to forward
- * the request to the next {@link Command}.
+ * Represents an indirect reference to the next {@link IoHandlerCommand} of
+ * the {@link IoHandlerChain}. This interface provides a way to forward
+ * the request to the next {@link IoHandlerCommand}.
*
* @author The Apache Directory Project (dev@directory.apache.org)
* @version $Rev$, $Date$
@@ -101,8 +101,8 @@
public interface NextCommand
{
/**
- * Forwards the request to the next {@link Command} in the
- * {@link CommandChain}.
+ * Forwards the request to the next {@link IoHandlerCommand} in the
+ * {@link IoHandlerChain}.
*/
void execute( IoSession session, Object message ) throws Exception;
}