removed crazy shit
This commit is contained in:
parent
e3a38a86ad
commit
0aa4a93582
5 changed files with 30 additions and 61 deletions
|
|
@ -2,11 +2,15 @@ package nl.jssl.jsontoy.deserialize;
|
|||
|
||||
public class Deserializer {
|
||||
|
||||
public static Object deserialize(String json) {
|
||||
if (json.equals("{}")) {
|
||||
return null;
|
||||
} else
|
||||
return "test";
|
||||
private int position;
|
||||
private final String jsonString;
|
||||
|
||||
private Deserializer( String jsonString,int position) {
|
||||
this.position = position;
|
||||
this.jsonString = jsonString;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package nl.jssl.jsontoy.serialize;
|
||||
|
||||
public class Serializer {
|
||||
private static SerializerFactory instance = new SynthSerializerFactory();
|
||||
private static SynthSerializerFactory instance = new SynthSerializerFactory();
|
||||
|
||||
public static String toJSONString(boolean b) {
|
||||
return Boolean.toString(b);
|
||||
|
|
@ -28,7 +28,7 @@ public class Serializer {
|
|||
}
|
||||
|
||||
public static String toJSONString(char c) {
|
||||
return "\"" + Character.toString(c) + "\"";
|
||||
return "\"" + c + "\"";
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
|
@ -39,7 +39,5 @@ public class Serializer {
|
|||
return instance.createSerializer((Class<T>) o.getClass()).toJSONString(o);
|
||||
}
|
||||
|
||||
public static void setInstance(SerializerFactory instance) {
|
||||
Serializer.instance = instance;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
package nl.jssl.jsontoy.serialize;
|
||||
|
||||
public interface SerializerFactory {
|
||||
public <T> JSONSerializer<T> createSerializer(Class<T> beanjavaClass);
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@ import javassist.CtNewMethod;
|
|||
import javassist.Modifier;
|
||||
import javassist.NotFoundException;
|
||||
|
||||
public class SynthSerializerFactory implements SerializerFactory {
|
||||
class SynthSerializerFactory {
|
||||
private static final String STRING = "java.lang.String";
|
||||
private static final String BOOLEAN = "java.lang.Boolean";
|
||||
private static final String CHARACTER = "java.lang.Character";
|
||||
|
|
@ -28,7 +28,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
private static final String SHORT = "java.lang.Short";
|
||||
private static final String INTEGER = "java.lang.Integer";
|
||||
|
||||
private final static Set<String> wrappersAndString = new HashSet<String>(Arrays.asList(BOOLEAN, CHARACTER, BYTE, DOUBLE, FLOAT, LONG, SHORT, INTEGER,
|
||||
private final static Set<String> wrappersAndString = new HashSet<>(Arrays.asList(BOOLEAN, CHARACTER, BYTE, DOUBLE, FLOAT, LONG, SHORT, INTEGER,
|
||||
STRING));
|
||||
|
||||
private static final String COLLECTION = "java.util.Collection";
|
||||
|
|
@ -41,7 +41,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
|
||||
private final ClassPool pool = ClassPool.getDefault();
|
||||
private CtClass serializerBase;
|
||||
private final Map<String, CtClass> primitiveWrappers = new HashMap<String, CtClass>();
|
||||
|
||||
|
||||
public SynthSerializerFactory() {
|
||||
init();
|
||||
|
|
@ -50,34 +50,23 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
void init() {
|
||||
try {
|
||||
serializerBase = pool.get(JSONSerializer.class.getName());
|
||||
|
||||
primitiveWrappers.put("int", pool.get(INTEGER));
|
||||
primitiveWrappers.put("short", pool.get(SHORT));
|
||||
primitiveWrappers.put("byte", pool.get(BYTE));
|
||||
primitiveWrappers.put("long", pool.get(LONG));
|
||||
primitiveWrappers.put("float", pool.get(FLOAT));
|
||||
primitiveWrappers.put("double", pool.get(DOUBLE));
|
||||
primitiveWrappers.put("boolean", pool.get(BOOLEAN));
|
||||
primitiveWrappers.put("char", pool.get(CHARACTER));
|
||||
} catch (NotFoundException e) {
|
||||
throw new SerializerCreationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public <T> JSONSerializer<T> createSerializer(Class<T> beanjavaClass) {
|
||||
<T> JSONSerializer<T> createSerializer(Class<T> beanjavaClass) {
|
||||
try {
|
||||
CtClass beanClass = pool.get(beanjavaClass.getName());
|
||||
|
||||
JSONSerializer<T> jsonSerializer = createSerializer(beanClass);
|
||||
|
||||
return jsonSerializer;
|
||||
return createSerializer2(beanClass);
|
||||
} catch (NotFoundException e) {
|
||||
throw new SerializerCreationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <T> JSONSerializer<T> createSerializer(CtClass beanClass) {
|
||||
private <T> JSONSerializer<T> createSerializer2(CtClass beanClass) {
|
||||
if (serializers.containsKey(createSerializerName(beanClass))) {
|
||||
return (JSONSerializer<T>) serializers.get(createSerializerName(beanClass));
|
||||
}
|
||||
|
|
@ -201,11 +190,11 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
}
|
||||
|
||||
public String createSerializerName(String name) {
|
||||
return ROOT_PACKAGE + name.replaceAll("\\[\\]", "Array") + "Serializer";
|
||||
return ROOT_PACKAGE + name.replaceAll("\\[]", "Array") + "Serializer";
|
||||
}
|
||||
|
||||
private boolean isCollection(CtClass beanClass) throws NotFoundException {
|
||||
List<CtClass> interfaces = new ArrayList<CtClass>(Arrays.asList(beanClass.getInterfaces()));
|
||||
List<CtClass> interfaces = new ArrayList<>(Arrays.asList(beanClass.getInterfaces()));
|
||||
interfaces.add(beanClass);
|
||||
for (CtClass interfaze : interfaces) {
|
||||
if (interfaze.getName().equals(COLLECTION) || interfaze.getName().equals(LIST) || interfaze.getName().equals(SET)) {
|
||||
|
|
@ -216,7 +205,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
}
|
||||
|
||||
private boolean isMap(CtClass beanClass) throws NotFoundException {
|
||||
List<CtClass> interfaces = new ArrayList<CtClass>(Arrays.asList(beanClass.getInterfaces()));
|
||||
List<CtClass> interfaces = new ArrayList<>(Arrays.asList(beanClass.getInterfaces()));
|
||||
interfaces.add(beanClass);
|
||||
for (CtClass interfaze : interfaces) {
|
||||
if (interfaze.getName().equals(MAP)) {
|
||||
|
|
@ -284,7 +273,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
* Retrieves getter methods from a class
|
||||
*/
|
||||
private List<CtMethod> getGetters(CtClass beanClass) {
|
||||
List<CtMethod> methods = new ArrayList<CtMethod>();
|
||||
List<CtMethod> methods = new ArrayList<>();
|
||||
List<CtField> fields = getAllFields(beanClass);
|
||||
for (CtField field : fields) {
|
||||
try {
|
||||
|
|
@ -305,10 +294,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
|
||||
private List<CtField> getAllFields(CtClass beanClass) {
|
||||
try {
|
||||
List<CtField> allfields = new ArrayList<>();
|
||||
for (CtField field : beanClass.getDeclaredFields()) {
|
||||
allfields.add(field);
|
||||
}
|
||||
List<CtField> allfields = new ArrayList<>(Arrays.asList(beanClass.getDeclaredFields()));
|
||||
if (beanClass.getSuperclass() != null) {
|
||||
return getAllFields(beanClass.getSuperclass(), allfields);
|
||||
}
|
||||
|
|
@ -320,9 +306,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
}
|
||||
|
||||
private List<CtField> getAllFields(CtClass beanClass, List<CtField> allfields) {
|
||||
for (CtField field : beanClass.getDeclaredFields()) {
|
||||
allfields.add(field);
|
||||
}
|
||||
allfields.addAll(Arrays.asList(beanClass.getDeclaredFields()));
|
||||
|
||||
return allfields;
|
||||
}
|
||||
|
|
@ -368,7 +352,7 @@ public class SynthSerializerFactory implements SerializerFactory {
|
|||
}
|
||||
|
||||
String innerClassName(String name) {
|
||||
return "L" + name.replaceAll("\\.", "/").replaceAll("\\[\\]", "");
|
||||
return "L" + name.replaceAll("\\.", "/").replaceAll("\\[]", "");
|
||||
}
|
||||
|
||||
static boolean isPrimitiveOrWrapperOrString(CtClass beanClass) {
|
||||
|
|
|
|||
|
|
@ -1,20 +1,17 @@
|
|||
package nl.jssl.jsontoy.serialize.collections;
|
||||
|
||||
import static junit.framework.Assert.assertTrue;
|
||||
import nl.jssl.jsontoy.serialize.Serializer;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import nl.jssl.jsontoy.serialize.SerializerCreationException;
|
||||
import nl.jssl.jsontoy.serialize.Serializer;
|
||||
import nl.jssl.jsontoy.serialize.SynthSerializerFactory;
|
||||
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class MapTest {
|
||||
@Test
|
||||
public void testValue() {
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("key1", "value1");
|
||||
map.put("key2", "value2");
|
||||
String jsonString = Serializer.toJSONString(map);
|
||||
|
|
@ -24,7 +21,7 @@ public class MapTest {
|
|||
@Test
|
||||
public void testPropertyValue() {
|
||||
Bean object = new Bean();
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("key1", "value1");
|
||||
map.put("key2", "value2");
|
||||
object.setMap(map);
|
||||
|
|
@ -33,15 +30,6 @@ public class MapTest {
|
|||
|| "{\"map\": {\"key2\": \"value2\", \"key1\": \"value1\"}}".equals(jsonString));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pumpUpTheVolume() {
|
||||
Serializer.setInstance(new SynthSerializerFactory());
|
||||
try {
|
||||
throw new SerializerCreationException(new Exception());
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
public class Bean {
|
||||
|
||||
private Map<String, String> map;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue