Author: mheath
Date: Sat Jul 14 12:05:44 2007
New Revision: 556323

URL: http://svn.apache.org/viewvc?view=rev&rev=556323
Log:
Made MessageEncoder parameterized.

Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoderFactory.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java?view=diff&rev=556323&r1=556322&r2=556323
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
 Sat Jul 14 12:05:44 2007
@@ -63,7 +63,7 @@
 public class DemuxingProtocolCodecFactory implements ProtocolCodecFactory {
     private MessageDecoderFactory[] decoderFactories = new 
MessageDecoderFactory[0];
 
-    private MessageEncoderFactory[] encoderFactories = new 
MessageEncoderFactory[0];
+    private MessageEncoderFactory<?>[] encoderFactories = new 
MessageEncoderFactory[0];
 
     private static final Class<?>[] EMPTY_PARAMS = new Class[0];
 
@@ -84,8 +84,7 @@
 
         boolean registered = false;
         if (MessageEncoder.class.isAssignableFrom(encoderOrDecoderClass)) {
-            register(new DefaultConstructorMessageEncoderFactory(
-                    encoderOrDecoderClass));
+            register(new 
DefaultConstructorMessageEncoderFactory(encoderOrDecoderClass));
             registered = true;
         }
 
@@ -101,16 +100,16 @@
         }
     }
 
-    public void register(MessageEncoder encoder) {
-        register(new SingletonMessageEncoderFactory(encoder));
+    public <T> void register(MessageEncoder<T> encoder) {
+        register(new SingletonMessageEncoderFactory<T>(encoder));
     }
 
-    public void register(MessageEncoderFactory factory) {
+    public void register(MessageEncoderFactory<?> factory) {
         if (factory == null) {
             throw new NullPointerException("factory");
         }
-        MessageEncoderFactory[] encoderFactories = this.encoderFactories;
-        MessageEncoderFactory[] newEncoderFactories = new 
MessageEncoderFactory[encoderFactories.length + 1];
+        MessageEncoderFactory<?>[] encoderFactories = this.encoderFactories;
+        MessageEncoderFactory<?>[] newEncoderFactories = new 
MessageEncoderFactory[encoderFactories.length + 1];
         System.arraycopy(encoderFactories, 0, newEncoderFactories, 0,
                 encoderFactories.length);
         newEncoderFactories[encoderFactories.length] = factory;
@@ -327,18 +326,18 @@
         }
     }
 
-    private static class SingletonMessageEncoderFactory implements
-            MessageEncoderFactory {
-        private final MessageEncoder encoder;
+    private static class SingletonMessageEncoderFactory<T> implements
+            MessageEncoderFactory<T> {
+        private final MessageEncoder<T> encoder;
 
-        private SingletonMessageEncoderFactory(MessageEncoder encoder) {
+        private SingletonMessageEncoderFactory(MessageEncoder<T> encoder) {
             if (encoder == null) {
                 throw new NullPointerException("encoder");
             }
             this.encoder = encoder;
         }
 
-        public MessageEncoder getEncoder() {
+        public MessageEncoder<T> getEncoder() {
             return encoder;
         }
     }
@@ -359,11 +358,11 @@
         }
     }
 
-    private static class DefaultConstructorMessageEncoderFactory implements
-            MessageEncoderFactory {
-        private final Class<?> encoderClass;
+    private static class DefaultConstructorMessageEncoderFactory<T> implements
+            MessageEncoderFactory<T> {
+        private final Class<MessageEncoder<T>> encoderClass;
 
-        private DefaultConstructorMessageEncoderFactory(Class<?> encoderClass) 
{
+        private 
DefaultConstructorMessageEncoderFactory(Class<MessageEncoder<T>> encoderClass) {
             if (encoderClass == null) {
                 throw new NullPointerException("encoderClass");
             }
@@ -375,8 +374,8 @@
             this.encoderClass = encoderClass;
         }
 
-        public MessageEncoder getEncoder() throws Exception {
-            return (MessageEncoder) encoderClass.newInstance();
+        public MessageEncoder<T> getEncoder() throws Exception {
+            return encoderClass.newInstance();
         }
     }
 

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java?view=diff&rev=556323&r1=556322&r2=556323
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
 Sat Jul 14 12:05:44 2007
@@ -34,11 +34,11 @@
  * @see DemuxingProtocolCodecFactory
  * @see MessageEncoderFactory
  */
-public interface MessageEncoder {
+public interface MessageEncoder<T> {
     /**
      * Returns the set of message classes this encoder can encode.
      */
-    Set<Class<?>> getMessageTypes();
+    Set<Class<T>> getMessageTypes();
 
     /**
      * Encodes higher-level message objects into binary or protocol-specific 
data.
@@ -49,6 +49,6 @@
      * 
      * @throws Exception if the message violated protocol specification
      */
-    void encode(IoSession session, Object message, ProtocolEncoderOutput out)
+    void encode(IoSession session, T message, ProtocolEncoderOutput out)
             throws Exception;
 }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoderFactory.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoderFactory.java?view=diff&rev=556323&r1=556322&r2=556323
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoderFactory.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoderFactory.java
 Sat Jul 14 12:05:44 2007
@@ -27,9 +27,9 @@
  * 
  * @see DemuxingProtocolCodecFactory
  */
-public interface MessageEncoderFactory {
+public interface MessageEncoderFactory<T> {
     /**
      * Creates a new message encoder.
      */
-    MessageEncoder getEncoder() throws Exception;
+    MessageEncoder<T> getEncoder() throws Exception;
 }


Reply via email to