Updated Branches: refs/heads/trunk 24f3eaf20 -> d7fe9b011
refined the API, add more docs Project: http://git-wip-us.apache.org/repos/asf/mina/repo Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/d7fe9b01 Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/d7fe9b01 Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/d7fe9b01 Branch: refs/heads/trunk Commit: d7fe9b011f43e7e805f282927a16e44ad1e93a32 Parents: 24f3eaf Author: paliwalashish <[email protected]> Authored: Sun Jul 28 12:06:56 2013 +0530 Committer: paliwalashish <[email protected]> Committed: Sun Jul 28 12:06:56 2013 +0530 ---------------------------------------------------------------------- .../org/apache/mina/avro/codec/AvroDecoder.java | 20 ++++++++++++++++---- .../org/apache/mina/avro/codec/AvroEncoder.java | 19 +++++++++++++++++++ .../codec/serialization/AvroMessageDecoder.java | 5 +++-- 3 files changed, 38 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina/blob/d7fe9b01/avro/src/main/java/org/apache/mina/avro/codec/AvroDecoder.java ---------------------------------------------------------------------- diff --git a/avro/src/main/java/org/apache/mina/avro/codec/AvroDecoder.java b/avro/src/main/java/org/apache/mina/avro/codec/AvroDecoder.java index 25ce582..5fbe738 100644 --- a/avro/src/main/java/org/apache/mina/avro/codec/AvroDecoder.java +++ b/avro/src/main/java/org/apache/mina/avro/codec/AvroDecoder.java @@ -28,14 +28,26 @@ import org.apache.mina.codec.delimited.SizePrefixedDecoder; import org.apache.mina.codec.delimited.ints.VarInt; /** - * + * Avro Decoder */ public class AvroDecoder<T extends GenericContainer> extends SizePrefixedDecoder<T> { - private Schema schema; + /** + * Construct an Avro Decoder + * + * @param sizeDecoder Size decoder to decode size prefix + * @param payloadDecoder Avro Message decoder to decode Avro message received + */ + public AvroDecoder(IoBufferDecoder<Integer> sizeDecoder, IoBufferDecoder<T> payloadDecoder) { + super(sizeDecoder, payloadDecoder); + } - public AvroDecoder(IoBufferDecoder<Integer> sizeDecoder, IoBufferDecoder<T> payloadDecoder, Schema schema) { + /** + * Construct an Avro Decoder + * + * @param schema Avro Schema to be used + */ + public AvroDecoder(Schema schema) { super(new VarInt().getDecoder(), new AvroMessageDecoder<T>(schema)); - this.schema = schema; } } http://git-wip-us.apache.org/repos/asf/mina/blob/d7fe9b01/avro/src/main/java/org/apache/mina/avro/codec/AvroEncoder.java ---------------------------------------------------------------------- diff --git a/avro/src/main/java/org/apache/mina/avro/codec/AvroEncoder.java b/avro/src/main/java/org/apache/mina/avro/codec/AvroEncoder.java index 22c9467..597d22e 100644 --- a/avro/src/main/java/org/apache/mina/avro/codec/AvroEncoder.java +++ b/avro/src/main/java/org/apache/mina/avro/codec/AvroEncoder.java @@ -27,10 +27,29 @@ import org.apache.mina.codec.delimited.SizePrefixedEncoder; import org.apache.mina.codec.delimited.ints.VarInt; /** + * Avro Encoder * + * It used GenericContainer, parent class for Avro's GenericRecord and SpecificRecord + * User need to specify the type while creating the instance of the Encoder. The default + * Size encoder is {@code VarInt} encoder */ public class AvroEncoder<T extends GenericContainer> extends SizePrefixedEncoder<T> { + + /** + * Intializes the Avro Encoder + * + * @param sizeEncoder Size Prefix encoder + * @param payloadEncoder Avro Encoder to encode message into Avro format + */ public AvroEncoder(ByteBufferEncoder<Integer> sizeEncoder, ByteBufferEncoder<T> payloadEncoder) { + super(sizeEncoder, payloadEncoder); + } + + /** + * Intializes the Avro Encoder + * Default Encoder are VarInt encoder for Size and {@link AvroEncoder} for Avro encoding + */ + public AvroEncoder() { super(new VarInt().getEncoder(), new AvroMessageEncoder<T>()); } } http://git-wip-us.apache.org/repos/asf/mina/blob/d7fe9b01/avro/src/main/java/org/apache/mina/avro/codec/serialization/AvroMessageDecoder.java ---------------------------------------------------------------------- diff --git a/avro/src/main/java/org/apache/mina/avro/codec/serialization/AvroMessageDecoder.java b/avro/src/main/java/org/apache/mina/avro/codec/serialization/AvroMessageDecoder.java index 013fea1..69944a8 100644 --- a/avro/src/main/java/org/apache/mina/avro/codec/serialization/AvroMessageDecoder.java +++ b/avro/src/main/java/org/apache/mina/avro/codec/serialization/AvroMessageDecoder.java @@ -45,15 +45,16 @@ public class AvroMessageDecoder<T extends GenericContainer> extends IoBufferDeco // Logger public static final Logger LOG = LoggerFactory.getLogger(AvroMessageDecoder.class); + // Avro Schema used for decoding private Schema schema; /** * Default Constructor - * @param schema + * @param schema Avro Schema to be used for decoding the messages */ public AvroMessageDecoder(Schema schema) { if(schema == null) { - LOG.error("Avro Schema passed cannot be null"); + LOG.error("Avro Schema cannot be null"); throw new IllegalArgumentException("Avro Schema cannot be null"); } this.schema = schema;
