public FieldMetadata (Field field) { this.field = field; int index = (ClassReflection.isAssignableFrom(ObjectMap.class, field.getType()) || ClassReflection.isAssignableFrom(Map.class, field.getType())) ? 1 : 0; this.elementType = field.getElementType(index); } }
public FieldMetadata (Field field) { this.field = field; int index = (ClassReflection.isAssignableFrom(ObjectMap.class, field.getType()) || ClassReflection.isAssignableFrom(Map.class, field.getType())) ? 1 : 0; this.elementType = field.getElementType(index); } }
@Override public Class<?> getValueClass() { return field.getElementType(0); }
@Override public Class<?> getKeyClass() { return field.getElementType(0); }
@Override public Class<?> getValueClass() { return field.getElementType(1); }
@Override public Class<?> getValueClass() { return field.getElementType(0); }
public static DeserializedMap getImplementation(Field field, Class<?> fieldClass, Object object) throws ReflectionException { if(Map.class.isAssignableFrom(fieldClass)) { return new MapDeserializedMap(field, fieldClass, object); } else if(ArrayMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<ArrayMap>(field, ArrayMap.class, field.getElementType(0), field.getElementType(1), object); } else if(IntMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<IntMap>(field, IntMap.class, Integer.class, field.getElementType(0), object); } else if(IntFloatMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<IntFloatMap>(field, IntFloatMap.class, Integer.class, Float.class, object); } else if(IntIntMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<IntIntMap>(field, IntIntMap.class, Integer.class, Integer.class, object); } else if(LongMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<LongMap>(field, LongMap.class, Long.class, field.getElementType(0), object); } else if(ObjectFloatMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<ObjectFloatMap>(field, ObjectFloatMap.class, field.getElementType(0), Float.class, object); } else if(ObjectIntMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<ObjectIntMap>(field, ObjectIntMap.class, field.getElementType(0), Integer.class, object); } else if(ObjectMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<ObjectMap>(field, ObjectMap.class, field.getElementType(0), field.getElementType(1), object); } else if(OrderedMap.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedMap<OrderedMap>(field, OrderedMap.class, field.getElementType(0), field.getElementType(1), object); } return null; } }
Class<?> valueClass = fieldDefinition.getElementType(0); if(valueClass.isInterface() && valueClass.getAnnotation(NonConcrete.class) == null) { throw new SerializationException(fieldName + ":: Cannot serialize interface unless it has a @" + NonConcrete.class.getSimpleName() + " annotation"); Class<?> valueClass = fieldDefinition.getElementType(0); if(valueClass.isInterface() && valueClass.getAnnotation(NonConcrete.class) == null) { throw new SerializationException(fieldName + ":: Cannot serialize interface unless it has a @" + NonConcrete.class.getSimpleName() + " annotation"); Class<?> valueClass = fieldDefinition.getElementType(1); if(valueClass.isInterface() && valueClass.getAnnotation(NonConcrete.class) == null) { throw new SerializationException(fieldName + ":: Cannot serialize interface unless it has a @" + NonConcrete.class.getSimpleName() + " annotation"); Class<?> valueClass = fieldDefinition.getElementType(1); if(valueClass.isInterface() && valueClass.getAnnotation(NonConcrete.class) == null) { throw new SerializationException(fieldName + ":: Cannot serialize interface unless it has a @" + NonConcrete.class.getSimpleName() + " annotation");
Class<?> valueClass = fieldDefinition.getElementType(0); if(valueClass.isInterface() && valueClass.getAnnotation(NonConcrete.class) == null) { throw new SerializationException("Cannot serialize interface unless it has a @" + NonConcrete.class.getSimpleName() + " annotation"); Class<?> valueClass = fieldDefinition.getElementType(1); if(valueClass.isInterface() && valueClass.getAnnotation(NonConcrete.class) == null) { throw new SerializationException("Cannot serialize interface unless it has a @" + NonConcrete.class.getSimpleName() + " annotation");
public FieldMetadata (Field field) { this.field = field; int index = (ClassReflection.isAssignableFrom(ObjectMap.class, field.getType()) || ClassReflection.isAssignableFrom(Map.class, field.getType())) ? 1 : 0; this.elementType = field.getElementType(index); } }
return new SetDeserializedCollection(field, fieldClass, object); } else if(Array.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedCollection<Array, Object>(Array.class, field.getElementType(0), field, fieldClass, object); } else if(BooleanArray.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedCollection<BooleanArray, Boolean>(BooleanArray.class, Boolean.class, field, fieldClass, object); return new GdxDeserializedCollection<LongArray, Long>(LongArray.class, Long.class, field, fieldClass, object); } else if(OrderedSet.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedCollection<OrderedSet, Object>(OrderedSet.class, field.getElementType(0), field, fieldClass, object); } else if(ObjectSet.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedCollection<ObjectSet, Object>(ObjectSet.class, field.getElementType(0), field, fieldClass, object); } else if(ShortArray.class.isAssignableFrom(fieldClass)) { return new GdxDeserializedCollection<ShortArray, Short>(ShortArray.class, Short.class, field, fieldClass, object);