Revision: 2297
http://sourceforge.net/p/swingme/code/2297
Author: yuranet
Date: 2013-11-27 05:38:00 +0000 (Wed, 27 Nov 2013)
Log Message:
-----------
playing around with jason
Modified Paths:
--------------
ToolsME/lib/UtilME.jar
ToolsME/nbproject/project.properties
ToolsME/src/net/yura/tools/mobilegen/MobileJsonGen.java
ToolsME/test/net/yura/mobile/gen/JSONAccess.java
ToolsME/test/net/yura/tools/mobilegen/test/Test1.java
Modified: ToolsME/lib/UtilME.jar
===================================================================
(Binary files differ)
Modified: ToolsME/nbproject/project.properties
===================================================================
--- ToolsME/nbproject/project.properties 2013-11-24 03:32:03 UTC (rev 2296)
+++ ToolsME/nbproject/project.properties 2013-11-27 05:38:00 UTC (rev 2297)
@@ -1,3 +1,7 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
application.title=ToolsME
application.vendor=Lenin
build.classes.dir=${build.dir}/classes
@@ -25,6 +29,7 @@
file.reference.ant.jar=lib/ant.jar
file.reference.asm-3.2.jar=lib\\asm-3.2.jar
file.reference.asm-commons-3.2.jar=lib\\asm-commons-3.2.jar
+file.reference.bcprov-jdk15on-147.jar=lib/bcprov-jdk15on-147.jar
file.reference.Grasshopper.jar=lib/Grasshopper.jar
file.reference.midletrunner.jar=lib/midletrunner.jar
file.reference.proto.jar=lib/proto.jar
@@ -42,10 +47,13 @@
${file.reference.SwingME.jar}:\
${file.reference.asm-3.2.jar}:\
${file.reference.asm-commons-3.2.jar}:\
- ${file.reference.Grasshopper.jar}
+ ${file.reference.Grasshopper.jar}:\
+ ${file.reference.bcprov-jdk15on-147.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
@@ -68,6 +76,7 @@
main.class=net.yura.tools.translation.XULTranslationTool
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
platform.active=default_platform
run.classpath=\
${javac.classpath}:\
Modified: ToolsME/src/net/yura/tools/mobilegen/MobileJsonGen.java
===================================================================
--- ToolsME/src/net/yura/tools/mobilegen/MobileJsonGen.java 2013-11-24 03:32:03 UTC (rev 2296)
+++ ToolsME/src/net/yura/tools/mobilegen/MobileJsonGen.java 2013-11-27 05:38:00 UTC (rev 2297)
@@ -67,7 +67,7 @@
ps.println("import java.io.IOException;");
ps.println("import net.yura.mobile.io.JSONUtil;");
ps.println("import net.yura.mobile.io.json.JSONWriter;");
-ps.println("import net.yura.mobile.io.json.JSONTokener;");
+ps.println("import net.yura.mobile.util.SystemUtil;");
ps.println("/**");
ps.println(" * THIS FILE IS GENERATED, DO NOT EDIT");
@@ -92,11 +92,10 @@
ps.println(" "+ ((n==0)?"":"else ") +"if (object instanceof "+className+") {");
ps.println(" serializer.object();");
-ps.println(" serializer.key(TYPE_"+className.toUpperCase()+");");
-ps.println(" serializer.object();");
+ps.println(" serializer.key(\"class\");");
+ps.println(" serializer.value(TYPE_"+className.toUpperCase()+");");
ps.println(" save"+className+"(serializer,("+className+")object);");
ps.println(" serializer.endObject();");
-ps.println(" serializer.endObject();");
ps.println(" }");
n++;
@@ -113,22 +112,20 @@
printSaveMethod(ps,c);
}
-ps.println(" protected Object readObject(JSONTokener tokener, String name) throws IOException {");
+ps.println(" protected Object readObject(String name, Hashtable map) {");
n=0;
for (Class c:classes) {
String className = c.getSimpleName();
-ps.println(" "+ ((n==0)?"":"else ") +"if (\""+className+"\".equals(name)) {");
-ps.println(" return read"+className+"(tokener);");
+ps.println(" if (\""+className+"\".equals(name)) {");
+ps.println(" return read"+className+"(map, new "+className+"());");
ps.println(" }");
n++;
}
-ps.println(" else {");
-ps.println(" return super.readObject(tokener,name);");
-ps.println(" }");
+ps.println(" return super.readObject(name, map);");
ps.println(" }");
@@ -162,22 +159,13 @@
for (Method m: simpleMethods) {
-ps.println(" serializer.key(\""+MobileXmlGen.paramName(m)+"\");");
+String name = MobileXmlGen.paramName(m);
+ps.println(" serializer.key(\""+name+"\");");
+
Class param = m.getReturnType();
-if (param == String.class) {
-ps.println(" {");
-ps.println(" String string = object."+m.getName()+"();");
-ps.println(" if (string!=null) {");
-ps.println(" serializer.value( string );");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
-ps.println(" }");
-}
-else if (param == int.class) {
+if (param == int.class) {
ps.println(" serializer.value( object."+m.getName()+"() );");
}
else if (param == double.class) {
@@ -201,76 +189,70 @@
else if (param == byte.class) {
ps.println(" serializer.value( object."+m.getName()+"() );");
}
+else if (param == String.class) {
+ps.println(" String "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" serializer.value("+name+"Value);");
+ps.println(" }");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
+}
else if (param == Vector.class) {
-ps.println(" {");
-ps.println(" Vector vector = object."+m.getName()+"();");
-ps.println(" if (vector!=null) {");
-ps.println(" saveVector(serializer, vector );");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
+ps.println(" Vector "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" saveVector(serializer, "+name+"Value);");
ps.println(" }");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
}
else if (param == Hashtable.class) {
-ps.println(" {");
-ps.println(" Hashtable hashtable = object."+m.getName()+"();");
-ps.println(" if (hashtable!=null) {");
-ps.println(" saveHashtable( serializer, hashtable );");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
+ps.println(" Hashtable "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" saveHashtable(serializer, "+name+"Value);");
ps.println(" }");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
}
else if (param == byte[].class) {
-ps.println(" {");
-ps.println(" byte[] bytes = object."+m.getName()+"();");
-ps.println(" if (bytes!=null) {");
-ps.println(" serializer.value( new String(org.bouncycastle.util.encoders.Base64.encode(bytes)) );");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
+ps.println(" byte[] "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" serializer.value( new String(org.bouncycastle.util.encoders.Base64.encode("+name+"Value)) );");
ps.println(" }");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
}
else if (param.isArray()) {
-ps.println(" {");
-ps.println(" Object[] array = object."+m.getName()+"();");
-ps.println(" if (array!=null) {");
-ps.println(" saveArray( serializer, array );");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
+ps.println(" Object[] "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" saveArray(serializer, "+name+"Value);");
ps.println(" }");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
}
else if (param == Object.class) {
-ps.println(" {");
-ps.println(" Object obj = object."+m.getName()+"();");
-ps.println(" if (obj!=null) {");
-//ps.println(" serializer.object();");
-ps.println(" saveObject(serializer, obj );");
-//ps.println(" serializer.endObject();");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
+ps.println(" Object "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" saveObject(serializer, "+name+"Value );");
ps.println(" }");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
}
else {
-ps.println(" {");
-ps.println(" "+param.getSimpleName()+" obj = object."+m.getName()+"();");
-ps.println(" if (obj!=null) {");
-ps.println(" serializer.object();");
-ps.println(" save"+param.getSimpleName()+"( serializer, obj );");
-ps.println(" serializer.endObject();");
-ps.println(" }");
-ps.println(" else {");
-ps.println(" serializer.nullValue();");
-ps.println(" }");
+ps.println(" "+param.getSimpleName()+" "+name+"Value = object."+m.getName()+"();");
+ps.println(" if ("+name+"Value!=null) {");
+ps.println(" serializer.object();");
+ps.println(" save"+param.getSimpleName()+"(serializer, "+name+"Value);");
+ps.println(" serializer.endObject();");
ps.println(" }");
-ps.println(" ");
+ps.println(" else {");
+ps.println(" serializer.nullValue();");
+ps.println(" }");
}
}
@@ -283,94 +265,93 @@
String className = theclass.getSimpleName();
-ps.println(" protected "+className+" read"+className+"(JSONTokener tokener) throws IOException {");
+ps.println(" protected "+className+" read"+className+"(Hashtable map, "+className+" object) {");
-ps.println(" "+className+" object = new "+className+"();");
-ps.println(" tokener.startObject();");
+Class superClass = theclass.getSuperclass();
+ArrayList<Method> methods;
+if (classes.contains(superClass)) {
+ if (superClass != Object.class) {
+ ps.println(" read"+superClass.getSimpleName()+"(map, object);");
+ }
+ methods = getMethods(theclass,true,false);
+}
+else {
+ methods = getMethods(theclass,true,true);
+}
-ps.println(" for (boolean end=false;!end;end = tokener.endObject()) {");
-ps.println(" String key = tokener.nextKey();");
-ArrayList<Method> methods = getMethods(theclass,true,true);
+
int n = 0;
for (Method m: methods) {
Class param = m.getParameterTypes()[0];
-ps.println(" "+(n==0?"":"else ")+"if (\""+MobileXmlGen.paramName(m)+"\".equals(key)) {");
+String name = MobileXmlGen.paramName(m);
if (param == String.class) {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" object."+m.getName()+"( tokener.nextString() );");
-ps.println(" }");
+ps.println(" object."+m.getName()+"( (String) map.get(\""+name+"\") );");
}
else if (param == int.class) {
-ps.println(" object."+m.getName()+"( Integer.parseInt(tokener.nextSimple()) );");
+ps.println(" object."+m.getName()+"( ((Long) map.get(\""+name+"\")).intValue() );");
}
else if (param == double.class) {
-ps.println(" object."+m.getName()+"( Double.parseDouble(tokener.nextSimple()) );");
+ps.println(" object."+m.getName()+"( ((Double) map.get(\""+name+"\")).doubleValue() );");
}
else if (param == float.class) {
-ps.println(" object."+m.getName()+"( Float.parseFloat(tokener.nextSimple()) );");
+ps.println(" object."+m.getName()+"( ((Double) map.get(\""+name+"\")).floatValue() );");
}
-else if (param == boolean.class) {
-ps.println(" object."+m.getName()+"( \"true\".equals(tokener.nextSimple()) );");
-}
else if (param == short.class) {
-ps.println(" object."+m.getName()+"( Short.parseShort(tokener.nextSimple()) );");
+ps.println(" object."+m.getName()+"( ((Long) map.get(\""+name+"\")).shortValue() );");
}
else if (param == long.class) {
-ps.println(" object."+m.getName()+"( Long.parseLong(tokener.nextSimple()) );");
+ps.println(" object."+m.getName()+"( ((Long) map.get(\""+name+"\")).longValue() );");
}
else if (param == char.class) {
-ps.println(" object."+m.getName()+"( tokener.nextSimple().charAt(0) );");
+ps.println(" object."+m.getName()+"( ((Character) map.get(\""+name+"\")).charValue() );");
}
else if (param == byte.class) {
-ps.println(" object."+m.getName()+"( Byte.parseByte(tokener.nextSimple()) );");
+ps.println(" object."+m.getName()+"( ((Long) map.get(\""+name+"\")).byteValue() );");
}
-else if (param == Vector.class) {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" object."+m.getName()+"( readVector(tokener) );");
-ps.println(" }");
+else if (param == boolean.class) {
+ps.println(" object."+m.getName()+"( ((Boolean) map.get(\""+name+"\")).booleanValue() );");
}
else if (param == Hashtable.class) {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" object."+m.getName()+"( readHashtable(tokener) );");
-ps.println(" }");
+ps.println(" object."+m.getName()+"( (Hashtable) map.get(\""+name+"\") );");
}
else if (param == byte[].class) {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" object."+m.getName()+"( org.bouncycastle.util.encoders.Base64.decode( tokener.nextString() ) );");
-ps.println(" }");
+ps.println(" String "+name+"Value = (String) map.get(\""+name+"\");");
+ps.println(" if ("+name+"Value != null) {");
+ps.println(" object."+m.getName()+"( org.bouncycastle.util.encoders.Base64.decode( (String) map.get(\""+name+"\") ) );");
+ps.println(" }");
}
else if (param.isArray()) {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" Vector objects = readVector(tokener);");
-ps.println(" "+param.getComponentType().getSimpleName()+"[] array=null;");
-ps.println(" array = new "+param.getComponentType().getSimpleName()+"[objects.size()];");
-ps.println(" objects.copyInto(array);");
-ps.println(" object."+m.getName()+"(array);");
-ps.println(" }");
+ if (param.getComponentType() == Object.class){
+ps.println(" object."+m.getName()+"((Object[]) map.get(\""+name+"\"));");
+ }
+ else {
+ps.println(" Object[] "+name+"Value = (Object[]) map.get(\""+name+"\");");
+ps.println(" if ("+name+"Value != null) {");
+ps.println(" "+param.getComponentType().getSimpleName()+"[] "+name+"Array = new "+param.getComponentType().getSimpleName()+"["+name+"Value.length];");
+ps.println(" System.arraycopy("+name+"Value, 0, "+name+"Array, 0, "+name+"Value.length);");
+ps.println(" object."+m.getName()+"("+name+"Array);");
+ps.println(" }");
+ }
}
+else if (param == Vector.class) {
+ps.println(" Object[] "+name+"Value = (Object[]) map.get(\""+name+"\");");
+ps.println(" if ("+name+"Value != null) {");
+ps.println(" object."+m.getName()+"(SystemUtil.asList("+name+"Value));");
+ps.println(" }");
+}
else if (param == Object.class) {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" object."+m.getName()+"( readObject(tokener) );");
-ps.println(" }");
+ps.println(" object."+m.getName()+"( map.get(\""+name+"\") );");
}
else {
-ps.println(" if (!tokener.nextNull()) {");
-ps.println(" object."+m.getName()+"( read"+param.getSimpleName()+"(tokener) );");
-ps.println(" }");
+ps.println(" object."+m.getName()+"( ("+param.getSimpleName()+") map.get(\""+name+"\") );");
}
-ps.println(" }");
n++;
}
-ps.println(" else {");
-ps.println(" throw new IOException(\"unknown field: \"+key); // TODO skip unknown fields");
-ps.println(" }");
-ps.println(" }");
-
ps.println(" return object;");
ps.println(" }");
Modified: ToolsME/test/net/yura/mobile/gen/JSONAccess.java
===================================================================
--- ToolsME/test/net/yura/mobile/gen/JSONAccess.java 2013-11-24 03:32:03 UTC (rev 2296)
+++ ToolsME/test/net/yura/mobile/gen/JSONAccess.java 2013-11-27 05:38:00 UTC (rev 2297)
@@ -6,7 +6,7 @@
import java.io.IOException;
import net.yura.mobile.io.JSONUtil;
import net.yura.mobile.io.json.JSONWriter;
-import net.yura.mobile.io.json.JSONTokener;
+import net.yura.mobile.util.SystemUtil;
/**
* THIS FILE IS GENERATED, DO NOT EDIT
*/
@@ -18,19 +18,17 @@
protected void saveObject(JSONWriter serializer, Object object) throws IOException {
if (object instanceof TestObject) {
serializer.object();
- serializer.key(TYPE_TESTOBJECT);
- serializer.object();
+ serializer.key("class");
+ serializer.value(TYPE_TESTOBJECT);
saveTestObject(serializer,(TestObject)object);
serializer.endObject();
- serializer.endObject();
}
else if (object instanceof Test) {
serializer.object();
- serializer.key(TYPE_TEST);
- serializer.object();
+ serializer.key("class");
+ serializer.value(TYPE_TEST);
saveTest(serializer,(Test)object);
serializer.endObject();
- serializer.endObject();
}
else {
super.saveObject(serializer, object);
@@ -41,211 +39,129 @@
serializer.key("age");
serializer.value( object.getAge() );
serializer.key("body");
- {
- Object obj = object.getBody();
- if (obj!=null) {
- saveObject(serializer, obj );
- }
- else {
- serializer.nullValue();
- }
+ Object bodyValue = object.getBody();
+ if (bodyValue!=null) {
+ saveObject(serializer, bodyValue );
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("image");
- {
- byte[] bytes = object.getImage();
- if (bytes!=null) {
- serializer.value( new String(org.bouncycastle.util.encoders.Base64.encode(bytes)) );
- }
- else {
- serializer.nullValue();
- }
+ byte[] imageValue = object.getImage();
+ if (imageValue!=null) {
+ serializer.value( new String(org.bouncycastle.util.encoders.Base64.encode(imageValue)) );
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("legs");
- {
- Object[] array = object.getLegs();
- if (array!=null) {
- saveArray( serializer, array );
- }
- else {
- serializer.nullValue();
- }
+ Object[] legsValue = object.getLegs();
+ if (legsValue!=null) {
+ saveArray(serializer, legsValue);
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("loginById");
- {
- Hashtable hashtable = object.getLoginById();
- if (hashtable!=null) {
- saveHashtable( serializer, hashtable );
- }
- else {
- serializer.nullValue();
- }
+ Hashtable loginByIdValue = object.getLoginById();
+ if (loginByIdValue!=null) {
+ saveHashtable(serializer, loginByIdValue);
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("myType");
- {
- String string = object.getMyType();
- if (string!=null) {
- serializer.value( string );
- }
- else {
- serializer.nullValue();
- }
+ String myTypeValue = object.getMyType();
+ if (myTypeValue!=null) {
+ serializer.value(myTypeValue);
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("name");
- {
- String string = object.getName();
- if (string!=null) {
- serializer.value( string );
- }
- else {
- serializer.nullValue();
- }
+ String nameValue = object.getName();
+ if (nameValue!=null) {
+ serializer.value(nameValue);
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("numbers");
- {
- Vector vector = object.getNumbers();
- if (vector!=null) {
- saveVector(serializer, vector );
- }
- else {
- serializer.nullValue();
- }
+ Vector numbersValue = object.getNumbers();
+ if (numbersValue!=null) {
+ saveVector(serializer, numbersValue);
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("objectById");
- {
- Object obj = object.getObjectById();
- if (obj!=null) {
- saveObject(serializer, obj );
- }
- else {
- serializer.nullValue();
- }
+ Object objectByIdValue = object.getObjectById();
+ if (objectByIdValue!=null) {
+ saveObject(serializer, objectByIdValue );
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("objects");
- {
- Object[] array = object.getObjects();
- if (array!=null) {
- saveArray( serializer, array );
- }
- else {
- serializer.nullValue();
- }
+ Object[] objectsValue = object.getObjects();
+ if (objectsValue!=null) {
+ saveArray(serializer, objectsValue);
}
+ else {
+ serializer.nullValue();
+ }
serializer.key("testById");
- {
- Test obj = object.getTestById();
- if (obj!=null) {
- serializer.object();
- saveTest( serializer, obj );
- serializer.endObject();
- }
- else {
- serializer.nullValue();
- }
+ Test testByIdValue = object.getTestById();
+ if (testByIdValue!=null) {
+ serializer.object();
+ saveTest(serializer, testByIdValue);
+ serializer.endObject();
}
-
+ else {
+ serializer.nullValue();
+ }
}
protected void saveTest(JSONWriter serializer,Test object) throws IOException {
serializer.key("id");
serializer.value( object.getId() );
}
- protected Object readObject(JSONTokener tokener, String name) throws IOException {
+ protected Object readObject(String name, Hashtable map) {
if ("TestObject".equals(name)) {
- return readTestObject(tokener);
+ return readTestObject(map, new TestObject());
}
- else if ("Test".equals(name)) {
- return readTest(tokener);
+ if ("Test".equals(name)) {
+ return readTest(map, new Test());
}
- else {
- return super.readObject(tokener,name);
- }
+ return super.readObject(name, map);
}
- protected TestObject readTestObject(JSONTokener tokener) throws IOException {
- TestObject object = new TestObject();
- tokener.startObject();
- for (boolean end=false;!end;end = tokener.endObject()) {
- String key = tokener.nextKey();
- if ("age".equals(key)) {
- object.setAge( Byte.parseByte(tokener.nextSimple()) );
- }
- else if ("body".equals(key)) {
- if (!tokener.nextNull()) {
- object.setBody( readObject(tokener) );
- }
- }
- else if ("id".equals(key)) {
- object.setId( Integer.parseInt(tokener.nextSimple()) );
- }
- else if ("image".equals(key)) {
- if (!tokener.nextNull()) {
- object.setImage( org.bouncycastle.util.encoders.Base64.decode( tokener.nextString() ) );
- }
- }
- else if ("legs".equals(key)) {
- if (!tokener.nextNull()) {
- Vector objects = readVector(tokener);
- String[] array=null;
- array = new String[objects.size()];
- objects.copyInto(array);
- object.setLegs(array);
- }
- }
- else if ("loginById".equals(key)) {
- if (!tokener.nextNull()) {
- object.setLoginById( readHashtable(tokener) );
- }
- }
- else if ("myType".equals(key)) {
- if (!tokener.nextNull()) {
- object.setMyType( tokener.nextString() );
- }
- }
- else if ("name".equals(key)) {
- if (!tokener.nextNull()) {
- object.setName( tokener.nextString() );
- }
- }
- else if ("numbers".equals(key)) {
- if (!tokener.nextNull()) {
- object.setNumbers( readVector(tokener) );
- }
- }
- else if ("objectById".equals(key)) {
- if (!tokener.nextNull()) {
- object.setObjectById( readObject(tokener) );
- }
- }
- else if ("objects".equals(key)) {
- if (!tokener.nextNull()) {
- Vector objects = readVector(tokener);
- Object[] array=null;
- array = new Object[objects.size()];
- objects.copyInto(array);
- object.setObjects(array);
- }
- }
- else if ("testById".equals(key)) {
- if (!tokener.nextNull()) {
- object.setTestById( readTest(tokener) );
- }
- }
- else {
- throw new IOException("unknown field: "+key); // TODO skip unknown fields
- }
+ protected TestObject readTestObject(Hashtable map, TestObject object) {
+ readTest(map, object);
+ object.setAge( ((Long) map.get("age")).byteValue() );
+ object.setBody( map.get("body") );
+ String imageValue = (String) map.get("image");
+ if (imageValue != null) {
+ object.setImage( org.bouncycastle.util.encoders.Base64.decode( (String) map.get("image") ) );
}
+ Object[] legsValue = (Object[]) map.get("legs");
+ if (legsValue != null) {
+ String[] legsArray = new String[legsValue.length];
+ System.arraycopy(legsValue, 0, legsArray, 0, legsValue.length);
+ object.setLegs(legsArray);
+ }
+ object.setLoginById( (Hashtable) map.get("loginById") );
+ object.setMyType( (String) map.get("myType") );
+ object.setName( (String) map.get("name") );
+ Object[] numbersValue = (Object[]) map.get("numbers");
+ if (numbersValue != null) {
+ object.setNumbers(SystemUtil.asList(numbersValue));
+ }
+ object.setObjectById( map.get("objectById") );
+ object.setObjects((Object[]) map.get("objects"));
+ object.setTestById( (Test) map.get("testById") );
return object;
}
- protected Test readTest(JSONTokener tokener) throws IOException {
- Test object = new Test();
- tokener.startObject();
- for (boolean end=false;!end;end = tokener.endObject()) {
- String key = tokener.nextKey();
- if ("id".equals(key)) {
- object.setId( Integer.parseInt(tokener.nextSimple()) );
- }
- else {
- throw new IOException("unknown field: "+key); // TODO skip unknown fields
- }
- }
+ protected Test readTest(Hashtable map, Test object) {
+ object.setId( ((Long) map.get("id")).intValue() );
return object;
}
}
Modified: ToolsME/test/net/yura/tools/mobilegen/test/Test1.java
===================================================================
--- ToolsME/test/net/yura/tools/mobilegen/test/Test1.java 2013-11-24 03:32:03 UTC (rev 2296)
+++ ToolsME/test/net/yura/tools/mobilegen/test/Test1.java 2013-11-27 05:38:00 UTC (rev 2297)
@@ -51,7 +51,7 @@
// os = new BufferedOutputStream( new PipedOutputStream( pipe ) );
}
catch(Exception ex) {
- throw new RuntimeException();
+ throw new RuntimeException(ex);
}
}
@@ -305,7 +305,15 @@
for (Object obj:objects) {
System.out.println("DOING TEST "+util+" "+obj);
- o1 = util.read();
+ try {
+ o1 = util.read();
+ }
+ catch (Exception ex) {
+ System.err.print("FAILED TO READ OBJ = ");
+ kxml.save(System.err, obj);
+ System.err.println();
+ throw ex;
+ }
boolean equals = obj.equals(o1);
if (equals) {
System.out.println("equals="+equals+" "+o1);
@@ -314,10 +322,10 @@
}
if (!equals) {
System.err.println("ERROR IN "+util);
- System.err.print("OBJ1 = ");
+ System.err.print("OBJ1 sent = ");
kxml.save(System.err, obj);
System.err.println();
- System.err.print("OBJ2 = ");
+ System.err.print("OBJ2 got = ");
kxml.save(System.err, o1);
System.err.println();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|