java: refactor org.msgpack.util.codegen.*.java

This commit is contained in:
Muga Nishizawa 2010-10-23 23:13:17 +09:00
parent 3473800ab6
commit 57446de875
3 changed files with 4 additions and 117 deletions

View File

@ -68,58 +68,6 @@ public interface Constants {
String METHOD_NAME_UNPACK = "unpack"; String METHOD_NAME_UNPACK = "unpack";
String METHOD_NAME_UNPACKBOOLEAN = "unpackBoolean";
String METHOD_NAME_UNPACKBYTE = "unpackByte";
String METHOD_NAME_UNPACKDOUBLE = "unpackDouble";
String METHOD_NAME_UNPACKFLOAT = "unpackFloat";
String METHOD_NAME_UNPACKINT = "unpackInt";
String METHOD_NAME_UNPACKLONG = "unpackLong";
String METHOD_NAME_UNPACKSHORT = "unpackShort";
String METHOD_NAME_UNPACKSTRING = "unpackString";
String METHOD_NAME_UNPACKBIGINTEGER = "unpackBigInteger";
String METHOD_NAME_UNPACKOBJECT = "unpackObject";
String METHOD_NAME_UNPACKBYTEARRAY = "unpackByteArray";
String METHOD_NAME_UNPACKARRAY = "unpackArray";
String METHOD_NAME_UNPACKMAP = "unpackMap";
String METHOD_NAME_ASARRAY = "asArray";
String METHOD_NAME_ASBOOLEAN = "asBoolean";
String METHOD_NAME_ASBYTE = "asByte";
String METHOD_NAME_ASSHORT = "asShort";
String METHOD_NAME_ASINT = "asInt";
String METHOD_NAME_ASFLOAT = "asFloat";
String METHOD_NAME_ASLONG = "asLong";
String METHOD_NAME_ASDOUBLE = "asDouble";
String METHOD_NAME_ASSTRING = "asString";
String METHOD_NAME_ASBYTEARRAY = "asByteArray";
String METHOD_NAME_ASBIGINTEGER = "asBigInteger";
String METHOD_NAME_ASLIST = "asList";
String METHOD_NAME_ASMAP = "asMap";
String STATEMENT_PACKER_PACKERMETHODBODY_01 = "%s _$$_t = (%s)$2; "; String STATEMENT_PACKER_PACKERMETHODBODY_01 = "%s _$$_t = (%s)$2; ";
String STATEMENT_PACKER_PACKERMETHODBODY_02 = "$1.packArray(%d); "; String STATEMENT_PACKER_PACKERMETHODBODY_02 = "$1.packArray(%d); ";

View File

@ -207,11 +207,11 @@ public class DynamicCodeGenBase implements Constants {
} }
} }
static interface TemplateAccessor { public static interface TemplateAccessor {
void setTemplates(Template[] templates); void setTemplates(Template[] templates);
} }
static class TemplateAccessorImpl implements TemplateAccessor { protected static class TemplateAccessorImpl implements TemplateAccessor {
public Class<?> type; public Class<?> type;
public Template[] _$$_templates; public Template[] _$$_templates;
@ -416,67 +416,6 @@ public class DynamicCodeGenBase implements Constants {
} }
} }
public String getUnpackMethodName(Class<?> c)
throws DynamicCodeGenException {
if (c.equals(boolean.class) || c.equals(Boolean.class)) {
return METHOD_NAME_UNPACKBOOLEAN;
} else if (c.equals(byte.class) || c.equals(Byte.class)) {
return METHOD_NAME_UNPACKBYTE;
} else if (c.equals(short.class) || c.equals(Short.class)) {
return METHOD_NAME_UNPACKSHORT;
} else if (c.equals(int.class) || c.equals(Integer.class)) {
return METHOD_NAME_UNPACKINT;
} else if (c.equals(float.class) || c.equals(Float.class)) {
return METHOD_NAME_UNPACKFLOAT;
} else if (c.equals(long.class) || c.equals(Long.class)) {
return METHOD_NAME_UNPACKLONG;
} else if (c.equals(double.class) || c.equals(Double.class)) {
return METHOD_NAME_UNPACKDOUBLE;
} else if (c.equals(String.class)) {
return METHOD_NAME_UNPACKSTRING;
} else if (c.equals(byte[].class)) {
return METHOD_NAME_UNPACKBYTEARRAY;
} else if (c.equals(BigInteger.class)) {
return METHOD_NAME_UNPACKBIGINTEGER;
} else if (List.class.isAssignableFrom(c)) {
return METHOD_NAME_UNPACK;
} else if (Map.class.isAssignableFrom(c)) {
return METHOD_NAME_UNPACK;
} else {
throw new DynamicCodeGenException("Type error: " + c.getName());
}
}
public String getAsMethodName(Class<?> c) {
if (c.equals(boolean.class) || c.equals(Boolean.class)) {
return METHOD_NAME_ASBOOLEAN;
} else if (c.equals(byte.class) || c.equals(Byte.class)) {
return METHOD_NAME_ASBYTE;
} else if (c.equals(short.class) || c.equals(Short.class)) {
return METHOD_NAME_ASSHORT;
} else if (c.equals(int.class) || c.equals(Integer.class)) {
return METHOD_NAME_ASINT;
} else if (c.equals(float.class) || c.equals(Float.class)) {
return METHOD_NAME_ASFLOAT;
} else if (c.equals(long.class) || c.equals(Long.class)) {
return METHOD_NAME_ASLONG;
} else if (c.equals(double.class) || c.equals(Double.class)) {
return METHOD_NAME_ASDOUBLE;
} else if (c.equals(String.class)) {
return METHOD_NAME_ASSTRING;
} else if (c.equals(byte[].class)) {
return METHOD_NAME_ASBYTEARRAY;
} else if (c.equals(BigInteger.class)) {
return METHOD_NAME_ASBIGINTEGER;
} else if (List.class.isAssignableFrom(c)) {
return METHOD_NAME_ASLIST;
} else if (Map.class.isAssignableFrom(c)) {
return METHOD_NAME_ASMAP;
} else {
throw new DynamicCodeGenException("Type error: " + c.getName());
}
}
public static MessagePacker toMessagePacker(Template tmpl) { public static MessagePacker toMessagePacker(Template tmpl) {
if (tmpl instanceof BigIntegerTemplate) { if (tmpl instanceof BigIntegerTemplate) {
return BigIntegerPacker.getInstance(); return BigIntegerPacker.getInstance();

View File

@ -37,8 +37,8 @@ public class DynamicPacker {
Constructor<?> cons = packerClass Constructor<?> cons = packerClass
.getDeclaredConstructor(new Class[] { Class.class }); .getDeclaredConstructor(new Class[] { Class.class });
Object obj = cons.newInstance(new Object[] { c }); Object obj = cons.newInstance(new Object[] { c });
((MessagePackerAccessor) obj).setMessagePackers(gen MessagePacker[] packers = gen.getMessagePackers(c);
.getMessagePackers(c)); ((MessagePackerAccessor) obj).setMessagePackers(packers);
return (MessagePacker) obj; return (MessagePacker) obj;
} catch (InstantiationException e) { } catch (InstantiationException e) {
throw new DynamicCodeGenException(e.getMessage(), e); throw new DynamicCodeGenException(e.getMessage(), e);