summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorMuga Nishizawa <muga@f11vm.(none)>2010-09-30 01:17:44 +0900
committerMuga Nishizawa <muga@f11vm.(none)>2010-09-30 01:17:44 +0900
commit0bd4150a801930d12594e12442b424b0f820a202 (patch)
tree8eeff77daeed4208e109c325960c4d2d5e691467 /java/src
parent7f7f5253f2e45927f119065e766d499feeb8c566 (diff)
downloadmsgpack-python-0bd4150a801930d12594e12442b424b0f820a202.tar.gz
java: changes several methods declared in a DynamicCodeGen class
Diffstat (limited to 'java/src')
-rw-r--r--java/src/main/java/org/msgpack/util/codegen/DynamicCodeGen.java59
1 files changed, 23 insertions, 36 deletions
diff --git a/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGen.java b/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGen.java
index ba9b0ba..d16fd7b 100644
--- a/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGen.java
+++ b/java/src/main/java/org/msgpack/util/codegen/DynamicCodeGen.java
@@ -290,9 +290,6 @@ public class DynamicCodeGen extends DynamicCodeGenBase implements Constants {
private void addUnpackMethod(CtClass unpackerCtClass, Class<?> c, Field[] fs)
throws CannotCompileException, NotFoundException {
- if (CustomMessage.isAnnotated(c, MessagePackMessage.class)) {
- // TODO
- }
// Object unpack(Unpacker pac) throws IOException, MessageTypeException;
StringBuilder sb = new StringBuilder();
StringBuilder bsb = new StringBuilder();
@@ -302,7 +299,7 @@ public class DynamicCodeGen extends DynamicCodeGenBase implements Constants {
new String[] { VARIABLE_NAME_PK }, new Class<?>[] {
MessageTypeException.class, IOException.class }, bsb
.toString());
- //System.out.println("unpack method: " + sb.toString());
+ // System.out.println("unpack method: " + sb.toString());
CtMethod newCtMethod = CtNewMethod.make(sb.toString(), unpackerCtClass);
unpackerCtClass.addMethod(newCtMethod);
}
@@ -358,6 +355,14 @@ public class DynamicCodeGen extends DynamicCodeGenBase implements Constants {
Template tmpl = DynamicCodeGenTemplate.create(c);
CustomMessage.registerTemplate(c, tmpl);
insertCodeOfUnpackMethodCallForRegisteredType(sb, f, c);
+ } else if (CustomMessage.isAnnotated(c, MessagePackDelegate.class)) {
+ // FIXME DelegatePacker
+ throw new UnsupportedOperationException("not supported yet. : "
+ + c.getName());
+ } else if (CustomMessage.isAnnotated(c, MessagePackOrdinalEnum.class)) {
+ // FIXME OrdinalEnumPacker
+ throw new UnsupportedOperationException("not supported yet. : "
+ + c.getName());
} else {
throw new MessageTypeException("unknown type: " + c.getName());
}
@@ -710,6 +715,20 @@ public class DynamicCodeGen extends DynamicCodeGenBase implements Constants {
insertCodeOfMessageConvertCallForMsgConvtblType(sb, f, c, i);
} else if (CustomConverter.isRegistered(c)) {
insertCodeOfMessageConvertCallForRegisteredType(sb, f, c, i);
+ } else if (CustomMessage.isAnnotated(c, MessagePackMessage.class)) {
+ // @MessagePackMessage
+ Template tmpl = DynamicCodeGenTemplate.create(c);
+ CustomMessage.registerTemplate(c, tmpl);
+ insertCodeOfMessageConvertCallForRegisteredType(sb, f, c, i);
+ } else if (CustomMessage.isAnnotated(c, MessagePackDelegate.class)) {
+ // FIXME DelegatePacker
+ throw new UnsupportedOperationException("not supported yet. : "
+ + c.getName());
+ } else if (CustomMessage.isAnnotated(c,
+ MessagePackOrdinalEnum.class)) {
+ // FIXME OrdinalEnumPacker
+ throw new UnsupportedOperationException("not supported yet. : "
+ + c.getName());
} else {
throw new MessageTypeException("Type error: " + c.getName());
}
@@ -718,38 +737,6 @@ public class DynamicCodeGen extends DynamicCodeGenBase implements Constants {
private void insertCodeOfMessageConvertCallForRegisteredType(
StringBuilder sb, Field f, Class<?> c, int i) {
- // if (t.fi == null) { t.fi = new Foo(); }
- // sb.append(KEYWORD_IF);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(CHAR_NAME_LEFT_PARENTHESIS);
- // sb.append(VARIABLE_NAME_TARGET);
- // sb.append(CHAR_NAME_DOT);
- // sb.append(f.getName());
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(CHAR_NAME_EQUAL);
- // sb.append(CHAR_NAME_EQUAL);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(KEYWORD_NULL);
- // sb.append(CHAR_NAME_RIGHT_PARENTHESIS);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(CHAR_NAME_LEFT_CURLY_BRACKET);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(VARIABLE_NAME_TARGET);
- // sb.append(CHAR_NAME_DOT);
- // sb.append(f.getName());
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(CHAR_NAME_EQUAL);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(KEYWORD_NEW);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(c.getName());
- // sb.append(CHAR_NAME_LEFT_PARENTHESIS);
- // sb.append(CHAR_NAME_RIGHT_PARENTHESIS);
- // sb.append(CHAR_NAME_SEMICOLON);
- // sb.append(CHAR_NAME_SPACE);
- // sb.append(CHAR_NAME_RIGHT_CURLY_BRACKET);
- // sb.append(CHAR_NAME_SPACE);
-
// ((MessageConvertable)f_i).messageConvert(ary[i]);
// obj = tmpl.convert(mpo);
sb.append(VARIABLE_NAME_TARGET);