From 1bd347d9970ba8d00b757ece940b8a32564821e4 Mon Sep 17 00:00:00 2001 From: frsyuki Date: Sun, 24 Oct 2010 21:17:19 +0900 Subject: [PATCH] java: fixes CustomMessage class --- .../main/java/org/msgpack/CustomMessage.java | 13 +++- .../org/msgpack/template/AnyTemplate.java | 2 +- .../msgpack/template/BigIntegerTemplate.java | 2 +- .../org/msgpack/template/BooleanTemplate.java | 2 +- .../msgpack/template/ByteArrayTemplate.java | 2 +- .../org/msgpack/template/ByteTemplate.java | 2 +- .../org/msgpack/template/DoubleTemplate.java | 2 +- .../org/msgpack/template/FloatTemplate.java | 2 +- .../org/msgpack/template/IntegerTemplate.java | 2 +- .../org/msgpack/template/LongTemplate.java | 2 +- .../org/msgpack/template/ShortTemplate.java | 2 +- .../org/msgpack/template/StringTemplate.java | 2 +- .../util/codegen/DynamicCodeGenBase.java | 6 +- .../msgpack/TestMessagePackStaticMethods.java | 66 +++++++++---------- 14 files changed, 58 insertions(+), 49 deletions(-) diff --git a/java/src/main/java/org/msgpack/CustomMessage.java b/java/src/main/java/org/msgpack/CustomMessage.java index 959c9cd5..832aa599 100644 --- a/java/src/main/java/org/msgpack/CustomMessage.java +++ b/java/src/main/java/org/msgpack/CustomMessage.java @@ -24,9 +24,18 @@ public class CustomMessage { CustomPacker.register(target, packer); } - public static void registerTemplate(Class target, Template tmpl) { - CustomUnpacker.register(target, tmpl); + public static void registerConverter(Class target, MessageConverter converter) { + CustomConverter.register(target, converter); + } + + public static void registerUnpacker(Class target, MessageUnpacker unpacker) { + CustomUnpacker.register(target, unpacker); + } + + public static void register(Class target, Template tmpl) { + CustomPacker.register(target, tmpl); CustomConverter.register(target, tmpl); + CustomUnpacker.register(target, tmpl); } public static boolean isAnnotated(Class target, Class with) { diff --git a/java/src/main/java/org/msgpack/template/AnyTemplate.java b/java/src/main/java/org/msgpack/template/AnyTemplate.java index fb2e1eee..91eab900 100644 --- a/java/src/main/java/org/msgpack/template/AnyTemplate.java +++ b/java/src/main/java/org/msgpack/template/AnyTemplate.java @@ -46,7 +46,7 @@ public class AnyTemplate implements Template { static final AnyTemplate instance = new AnyTemplate(); static { - CustomMessage.registerTemplate(MessagePackObject.class, instance); + CustomMessage.register(MessagePackObject.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/BigIntegerTemplate.java b/java/src/main/java/org/msgpack/template/BigIntegerTemplate.java index 66e142b0..79b5c7dc 100644 --- a/java/src/main/java/org/msgpack/template/BigIntegerTemplate.java +++ b/java/src/main/java/org/msgpack/template/BigIntegerTemplate.java @@ -43,7 +43,7 @@ public class BigIntegerTemplate implements Template { static final BigIntegerTemplate instance = new BigIntegerTemplate(); static { - CustomMessage.registerTemplate(BigInteger.class, instance); + CustomMessage.register(BigInteger.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/BooleanTemplate.java b/java/src/main/java/org/msgpack/template/BooleanTemplate.java index e9fd33cc..dd3367ff 100644 --- a/java/src/main/java/org/msgpack/template/BooleanTemplate.java +++ b/java/src/main/java/org/msgpack/template/BooleanTemplate.java @@ -42,7 +42,7 @@ public class BooleanTemplate implements Template { static final BooleanTemplate instance = new BooleanTemplate(); static { - CustomMessage.registerTemplate(Boolean.class, instance); + CustomMessage.register(Boolean.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/ByteArrayTemplate.java b/java/src/main/java/org/msgpack/template/ByteArrayTemplate.java index 45a006fb..2008b7ca 100644 --- a/java/src/main/java/org/msgpack/template/ByteArrayTemplate.java +++ b/java/src/main/java/org/msgpack/template/ByteArrayTemplate.java @@ -42,7 +42,7 @@ public class ByteArrayTemplate implements Template { static final ByteArrayTemplate instance = new ByteArrayTemplate(); static { - CustomMessage.registerTemplate(byte[].class, instance); + CustomMessage.register(byte[].class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/ByteTemplate.java b/java/src/main/java/org/msgpack/template/ByteTemplate.java index d58e8b0b..0c8a31bb 100644 --- a/java/src/main/java/org/msgpack/template/ByteTemplate.java +++ b/java/src/main/java/org/msgpack/template/ByteTemplate.java @@ -42,7 +42,7 @@ public class ByteTemplate implements Template { static final ByteTemplate instance = new ByteTemplate(); static { - CustomMessage.registerTemplate(Byte.class, instance); + CustomMessage.register(Byte.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/DoubleTemplate.java b/java/src/main/java/org/msgpack/template/DoubleTemplate.java index c899e733..94550ebf 100644 --- a/java/src/main/java/org/msgpack/template/DoubleTemplate.java +++ b/java/src/main/java/org/msgpack/template/DoubleTemplate.java @@ -42,7 +42,7 @@ public class DoubleTemplate implements Template { static final DoubleTemplate instance = new DoubleTemplate(); static { - CustomMessage.registerTemplate(Double.class, instance); + CustomMessage.register(Double.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/FloatTemplate.java b/java/src/main/java/org/msgpack/template/FloatTemplate.java index 354e3f8c..c247e296 100644 --- a/java/src/main/java/org/msgpack/template/FloatTemplate.java +++ b/java/src/main/java/org/msgpack/template/FloatTemplate.java @@ -42,7 +42,7 @@ public class FloatTemplate implements Template { static final FloatTemplate instance = new FloatTemplate(); static { - CustomMessage.registerTemplate(Float.class, instance); + CustomMessage.register(Float.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/IntegerTemplate.java b/java/src/main/java/org/msgpack/template/IntegerTemplate.java index 21ff0af9..2dee8e08 100644 --- a/java/src/main/java/org/msgpack/template/IntegerTemplate.java +++ b/java/src/main/java/org/msgpack/template/IntegerTemplate.java @@ -42,7 +42,7 @@ public class IntegerTemplate implements Template { static final IntegerTemplate instance = new IntegerTemplate(); static { - CustomMessage.registerTemplate(Integer.class, instance); + CustomMessage.register(Integer.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/LongTemplate.java b/java/src/main/java/org/msgpack/template/LongTemplate.java index d8990afd..930b7d0d 100644 --- a/java/src/main/java/org/msgpack/template/LongTemplate.java +++ b/java/src/main/java/org/msgpack/template/LongTemplate.java @@ -42,7 +42,7 @@ public class LongTemplate implements Template { static final LongTemplate instance = new LongTemplate(); static { - CustomMessage.registerTemplate(Long.class, instance); + CustomMessage.register(Long.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/ShortTemplate.java b/java/src/main/java/org/msgpack/template/ShortTemplate.java index 0268797a..10ac43b3 100644 --- a/java/src/main/java/org/msgpack/template/ShortTemplate.java +++ b/java/src/main/java/org/msgpack/template/ShortTemplate.java @@ -42,7 +42,7 @@ public class ShortTemplate implements Template { static final ShortTemplate instance = new ShortTemplate(); static { - CustomMessage.registerTemplate(Short.class, instance); + CustomMessage.register(Short.class, instance); } } diff --git a/java/src/main/java/org/msgpack/template/StringTemplate.java b/java/src/main/java/org/msgpack/template/StringTemplate.java index 4a4be3ee..dd31d9e0 100644 --- a/java/src/main/java/org/msgpack/template/StringTemplate.java +++ b/java/src/main/java/org/msgpack/template/StringTemplate.java @@ -42,7 +42,7 @@ public class StringTemplate implements Template { static final StringTemplate instance = new StringTemplate(); static { - CustomMessage.registerTemplate(String.class, instance); + CustomMessage.register(String.class, instance); } } diff --git a/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGenBase.java b/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGenBase.java index c80d3549..c8ab3c7f 100644 --- a/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGenBase.java +++ b/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGenBase.java @@ -581,7 +581,7 @@ public class DynamicCodeGenBase implements Constants { } else if (CustomMessage.isAnnotated(c, MessagePackMessage.class)) { // @MessagePackMessage Template tmpl = DynamicTemplate.create(c); - CustomMessage.registerTemplate(c, tmpl); + CustomMessage.register(c, tmpl); return tmpl; } else if (CustomMessage.isAnnotated(c, MessagePackDelegate.class)) { // FIXME DelegatePacker @@ -593,12 +593,12 @@ public class DynamicCodeGenBase implements Constants { MessagePackOrdinalEnum.class)) { // @MessagePackOrdinalEnum Template tmpl = DynamicOrdinalEnumTemplate.create(c); - CustomMessage.registerTemplate(c, tmpl); + CustomMessage.register(c, tmpl); return tmpl; } else if (MessageConvertable.class.isAssignableFrom(c) || MessageUnpackable.class.isAssignableFrom(c)) { Template tmpl = new MessageUnpackableConvertableTemplate(c); - CustomMessage.registerTemplate(c, tmpl); + CustomMessage.register(c, tmpl); return tmpl; } else { throw new MessageTypeException("Type error: " diff --git a/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java b/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java index e7b8d843..f08176ed 100644 --- a/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java +++ b/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java @@ -72,20 +72,6 @@ public class TestMessagePackStaticMethods extends TestCase { byte[] e = MessagePack.pack(createProvidedClass(), tClass(ProvidedClass.class)); byte[] f = MessagePack.pack(createUserDefinedClass(), tClass(UserDefinedClass.class)); - { - String aobj = MessagePack.unpack(a, String.class); - Integer bobj = MessagePack.unpack(b, Integer.class); - Object cobj = MessagePack.unpack(c, Object.class); - ProvidedClass eobj = MessagePack.unpack(e, ProvidedClass.class); - UserDefinedClass fobj = MessagePack.unpack(f, UserDefinedClass.class); - - assertEquals(aobj, "msgpack"); - assertEquals(bobj, (Integer)1); - assertEquals(cobj, null); - assertEquals(eobj, createProvidedClass()); - assertEquals(fobj, createUserDefinedClass()); - } - { Object aobj = MessagePack.unpack(a, TString); Object bobj = MessagePack.unpack(b, TInteger); @@ -103,6 +89,20 @@ public class TestMessagePackStaticMethods extends TestCase { assertEquals(eobj, createProvidedClass()); assertEquals(fobj, createUserDefinedClass()); } + + { + String aobj = MessagePack.unpack(a, String.class); + Integer bobj = MessagePack.unpack(b, Integer.class); + Object cobj = MessagePack.unpack(c, Object.class); + ProvidedClass eobj = MessagePack.unpack(e, ProvidedClass.class); + UserDefinedClass fobj = MessagePack.unpack(f, UserDefinedClass.class); + + assertEquals(aobj, "msgpack"); + assertEquals(bobj, (Integer)1); + assertEquals(cobj, null); + assertEquals(eobj, createProvidedClass()); + assertEquals(fobj, createUserDefinedClass()); + } } @Test @@ -120,25 +120,6 @@ public class TestMessagePackStaticMethods extends TestCase { ByteArrayOutputStream fout = new ByteArrayOutputStream(); MessagePack.pack(fout, createUserDefinedClass()); - { - InputStream ain = new ByteArrayInputStream(aout.toByteArray()); - String aobj = MessagePack.unpack(ain, String.class); - InputStream bin = new ByteArrayInputStream(bout.toByteArray()); - Integer bobj = MessagePack.unpack(bin, Integer.class); - InputStream cin = new ByteArrayInputStream(cout.toByteArray()); - Object cobj = MessagePack.unpack(cin, Object.class); - InputStream ein = new ByteArrayInputStream(eout.toByteArray()); - ProvidedClass eobj = MessagePack.unpack(ein, ProvidedClass.class); - InputStream fin = new ByteArrayInputStream(fout.toByteArray()); - UserDefinedClass fobj = MessagePack.unpack(fin, UserDefinedClass.class); - - assertEquals(aobj, "msgpack"); - assertEquals(bobj, (Integer)1); - assertEquals(cobj, null); - assertEquals(eobj, createProvidedClass()); - assertEquals(fobj, createUserDefinedClass()); - } - { InputStream ain = new ByteArrayInputStream(aout.toByteArray()); Object aobj = MessagePack.unpack(ain, TString); @@ -163,6 +144,25 @@ public class TestMessagePackStaticMethods extends TestCase { assertEquals(eobj, createProvidedClass()); assertEquals(fobj, createUserDefinedClass()); } + + { + InputStream ain = new ByteArrayInputStream(aout.toByteArray()); + String aobj = MessagePack.unpack(ain, String.class); + InputStream bin = new ByteArrayInputStream(bout.toByteArray()); + Integer bobj = MessagePack.unpack(bin, Integer.class); + InputStream cin = new ByteArrayInputStream(cout.toByteArray()); + Object cobj = MessagePack.unpack(cin, Object.class); + InputStream ein = new ByteArrayInputStream(eout.toByteArray()); + ProvidedClass eobj = MessagePack.unpack(ein, ProvidedClass.class); + InputStream fin = new ByteArrayInputStream(fout.toByteArray()); + UserDefinedClass fobj = MessagePack.unpack(fin, UserDefinedClass.class); + + assertEquals(aobj, "msgpack"); + assertEquals(bobj, (Integer)1); + assertEquals(cobj, null); + assertEquals(eobj, createProvidedClass()); + assertEquals(fobj, createUserDefinedClass()); + } } @Test