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;
}