diff options
| author | frsyuki <frsyuki@users.sourceforge.jp> | 2010-10-24 18:45:58 +0900 |
|---|---|---|
| committer | frsyuki <frsyuki@users.sourceforge.jp> | 2010-10-24 18:45:58 +0900 |
| commit | 19fd4e755cd88fc0b108e2c860ebf88394d98f03 (patch) | |
| tree | 323a3faf2764c96d988c3afb1884dd1a28568590 /java | |
| parent | 77698cd924b1e8fc5f3033e4e04d7b1da95563f6 (diff) | |
| download | msgpack-python-19fd4e755cd88fc0b108e2c860ebf88394d98f03.tar.gz | |
java: removes ReflectionPacker and ReflectionTemplate (replaced by DynamicCodeGen)
Diffstat (limited to 'java')
4 files changed, 0 insertions, 219 deletions
diff --git a/java/src/main/java/org/msgpack/ReflectionBase.java b/java/src/main/java/org/msgpack/ReflectionBase.java deleted file mode 100644 index 66ec12a..0000000 --- a/java/src/main/java/org/msgpack/ReflectionBase.java +++ /dev/null @@ -1,26 +0,0 @@ -// -// MessagePack for Java -// -// Copyright (C) 2009-2010 FURUHASHI Sadayuki -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -package org.msgpack; - -import java.io.IOException; -import java.lang.reflect.*; - -// FIXME mock-up -abstract class ReflectionBase { -} - diff --git a/java/src/main/java/org/msgpack/ReflectionPacker.java b/java/src/main/java/org/msgpack/ReflectionPacker.java deleted file mode 100644 index 72406aa..0000000 --- a/java/src/main/java/org/msgpack/ReflectionPacker.java +++ /dev/null @@ -1,49 +0,0 @@ -// -// MessagePack for Java -// -// Copyright (C) 2009-2010 FURUHASHI Sadayuki -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -package org.msgpack; - -import java.io.IOException; -import java.lang.reflect.*; - -// FIXME mock-up -public class ReflectionPacker extends ReflectionBase implements MessagePacker { - private Class<?> klass; - - private ReflectionPacker(Class<?> klass) { - this.klass = klass; - } - - static public ReflectionPacker create(Class klass) { - // FIXME code generation: generates subclass of ReflectionPacker - // returned instance will be cached by Packer into CustomPacker - return new ReflectionPacker(klass); - } - - public void pack(Packer pk, Object target) throws IOException { - Field[] fields = klass.getDeclaredFields(); - pk.packArray(fields.length); - try { - for(int i=0; i < fields.length; i++) { - pk.pack(fields[i].get(target)); - } - } catch(IllegalAccessException e) { - throw new MessageTypeException(e.getMessage()); // FIXME - } - } -} - diff --git a/java/src/main/java/org/msgpack/ReflectionTemplate.java b/java/src/main/java/org/msgpack/ReflectionTemplate.java deleted file mode 100644 index 5b49078..0000000 --- a/java/src/main/java/org/msgpack/ReflectionTemplate.java +++ /dev/null @@ -1,74 +0,0 @@ -// -// MessagePack for Java -// -// Copyright (C) 2009-2010 FURUHASHI Sadayuki -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -package org.msgpack; - -import java.io.IOException; -import java.lang.reflect.*; -import org.msgpack.template.ClassTemplate; - -// FIXME mock-up -public class ReflectionTemplate extends ReflectionBase implements Template { - private Class klass; - - private ReflectionTemplate(Class klass) { - this.klass = klass; - } - - static public ReflectionTemplate create(Class klass) { - // FIXME code generation: generates subclass of ReflectionPacker - // returned instance will be cached by ClassTemplate into CustomUnpacker/CustomConverter - return new ReflectionTemplate(klass); - } - - public Object unpack(Unpacker pac) throws IOException, MessageTypeException { - // FIXME optimize it - return convert(pac.unpackObject()); - } - - public Object convert(MessagePackObject from) throws MessageTypeException { - Object obj; - try { - obj = klass.newInstance(); - } catch (IllegalAccessException e) { - throw new MessageTypeException(e.getMessage()); // FIXME - } catch (InstantiationException e) { - throw new MessageTypeException(e.getMessage()); // FIXME - } - - // FIXME check Requred/Optional - - Field[] fields = klass.getDeclaredFields(); - MessagePackObject[] array = from.asArray(); - if(fields.length < array.length) { - throw new MessageTypeException(); - } - - try { - for(int i=0; i < fields.length; i++) { - // FIXME generics getDeclaringClass - Object value = new ClassTemplate(fields[i].getType()).convert(array[i]); - fields[i].set(obj, value); - } - } catch(IllegalAccessException e) { - throw new MessageTypeException(e.getMessage()); // FIXME - } - - return obj; - } -} - diff --git a/java/src/test/java/org/msgpack/TestReflectionPackerTemplate.java b/java/src/test/java/org/msgpack/TestReflectionPackerTemplate.java deleted file mode 100644 index 1f0016d..0000000 --- a/java/src/test/java/org/msgpack/TestReflectionPackerTemplate.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.msgpack; - -import static org.msgpack.Templates.*; - -import java.util.*; -import java.io.*; - -import org.junit.Test; -import static org.junit.Assert.*; - -public class TestReflectionPackerTemplate { - - public static class StringFieldClass { - public String s1; - public String s2; - public StringFieldClass() { } - } - - @Test - public void testPackConvert() throws Exception { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - - MessagePacker packer = ReflectionPacker.create(StringFieldClass.class); - - StringFieldClass src = new StringFieldClass(); - - src.s1 = "kumofs"; - src.s2 = "frsyuki"; - - packer.pack(new Packer(out), src); - - Template tmpl = ReflectionTemplate.create(StringFieldClass.class); - - ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); - - Object obj = tmpl.unpack(new Unpacker(in)); - assertEquals(obj.getClass(), StringFieldClass.class); - - StringFieldClass dst = (StringFieldClass)obj; - assertEquals(src.s1, dst.s1); - assertEquals(src.s2, dst.s2); - } - - @Test - public void testPackConvert02() throws Exception { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - - CustomPacker.register(StringFieldClass.class, ReflectionPacker.create(StringFieldClass.class)); - - - StringFieldClass src = new StringFieldClass(); - - src.s1 = "kumofs"; - src.s2 = "frsyuki"; - - new Packer(out).pack(src); - - Template tmpl = ReflectionTemplate.create(StringFieldClass.class); - - ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); - - Object obj = tmpl.unpack(new Unpacker(in)); - assertEquals(obj.getClass(), StringFieldClass.class); - - StringFieldClass dst = (StringFieldClass)obj; - assertEquals(src.s1, dst.s1); - assertEquals(src.s2, dst.s2); - } -} - |
