diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/web/EnumFactory.java | 20 | ||||
-rw-r--r-- | src/org/traccar/web/JsonConverter.java | 20 |
2 files changed, 3 insertions, 37 deletions
diff --git a/src/org/traccar/web/EnumFactory.java b/src/org/traccar/web/EnumFactory.java deleted file mode 100644 index efbfd4b20..000000000 --- a/src/org/traccar/web/EnumFactory.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.traccar.web; - -import org.traccar.model.Factory; - -import javax.json.JsonObject; - -public class EnumFactory<T extends Enum<T> & Factory> { - private Class<T> commandTypeClass; - private String jsonKey; - - public EnumFactory(Class<T> commandTypeClass, String type) { - this.commandTypeClass = commandTypeClass; - jsonKey = type; - } - - public <K> K create(JsonObject json) { - Factory factory = Enum.valueOf(commandTypeClass, json.getString(jsonKey)); - return (K) factory.create(); - } -} diff --git a/src/org/traccar/web/JsonConverter.java b/src/org/traccar/web/JsonConverter.java index 7962ac8ab..0dc4f24eb 100644 --- a/src/org/traccar/web/JsonConverter.java +++ b/src/org/traccar/web/JsonConverter.java @@ -46,20 +46,9 @@ public class JsonConverter { return objectFromJson(Json.createReader(reader).readObject(), prototype); } - public static <T> T enumObjectFromJson(Reader reader, EnumFactory<? extends Enum<?>> factory) throws ParseException { - JsonObject json = Json.createReader(reader).readObject(); - T object = factory.<T>create(json); - populateObject(json, object); - return object; - } - public static <T extends Factory> T objectFromJson(JsonObject json, T prototype) throws ParseException { T object = (T) prototype.create(); - populateObject(json, object); - return object; - } - private static void populateObject(JsonObject json, Object object) throws ParseException { Method[] methods = object.getClass().getMethods(); for (final Method method : methods) { @@ -86,17 +75,14 @@ public class JsonConverter { } else if (parameterType.isEnum()) { method.invoke(object, Enum.valueOf((Class<? extends Enum>) parameterType, json.getString(name))); } else if (parameterType.equals(Map.class)) { - //method.invoke(object, json.getString(name)); - } else { - Object nestedObject = parameterType.newInstance(); - populateObject(json.getJsonObject(name), nestedObject); - method.invoke(object, nestedObject); + // TODO: method.invoke(object, json.getString(name)); } - } catch (IllegalAccessException | InvocationTargetException | InstantiationException error) { + } catch (IllegalAccessException | InvocationTargetException error) { } } } + return object; } public static <T> JsonObject objectToJson(T object) { |