public void doTest (final Class c, Expectation e) { Gdx.app.log("ClassReflectionTest", "Name of class: " + c.getName()); boolean isArray = ClassReflection.isArray(c); expectResult(e.isArray, isArray, "value of is Array"); boolean isEnum = ClassReflection.isEnum(c); expectResult(e.isEnum, isEnum, "value of is Enum"); boolean isInterface = ClassReflection.isInterface(c); expectResult(e.isInterface, isInterface, "value of is Interface"); boolean isPrimitive = ClassReflection.isPrimitive(c); expectResult(e.isPrimitive, isPrimitive, "value of is Primitive"); boolean isAnnotation = ClassReflection.isAnnotation(c); expectResult(e.isAnnotation, isAnnotation, "value of is Annotation"); boolean isStaticClass = ClassReflection.isStaticClass(c); expectResult(e.isStatic, isStaticClass, "value of is Static Class"); boolean isAbstract = ClassReflection.isAbstract(c); expectResult(e.isAbstract, isAbstract, "value of is Abstract Class"); Class componentType = ClassReflection.getComponentType(c); expectResult(e.componentType, componentType, "component type of Array"); }
@Override @SuppressWarnings("unchecked") public EnumOrderedSet read(Json json, JsonValue jsonData, Class type) { if(jsonData == null || jsonData.isNull()) return null; String c = json.readValue("c", String.class, "", jsonData); if("default".equals(c)) return new EnumOrderedSet(); try { Class<? extends Enum<?>> cl = ClassReflection.forName(c); if(!ClassReflection.isEnum(cl)) return null; Enum<?> i = json.readValue("i", cl, jsonData); Object[] r = json.readValue("r", Object[].class, jsonData); return Maker.makeEOS(i, (Enum<?>[]) r); } catch (ReflectionException e) { return null; } //return new OrderedMap(json.readValue(OrderedSet.class, jsonData.get("k")), // json.readValue(ArrayList.class, jsonData.get("v")), jsonData.getFloat("f")); } });
@Override @SuppressWarnings("unchecked") public EnumOrderedMap read(Json json, JsonValue jsonData, Class type) { if(jsonData == null || jsonData.isNull()) return null; String c = json.readValue("c", String.class, "", jsonData); if("default".equals(c)) return new EnumOrderedMap(); try { Class<? extends Enum<?>> cl = ClassReflection.forName(c); if(!ClassReflection.isEnum(cl)) return null; Enum<?> k = json.readValue("k", cl, jsonData); Object v = json.readValue("v", null, INVALID, jsonData); Object[] r = json.readValue("r", Object[].class, jsonData); if(v == INVALID) return new EnumOrderedMap(); return Maker.makeEOM(k, v, r); } catch (ReflectionException e) { return null; } //return new OrderedMap(json.readValue(OrderedSet.class, jsonData.get("k")), // json.readValue(ArrayList.class, jsonData.get("v")), jsonData.getFloat("f")); } });