From 5b57c0fdb81bae87ca487e1d0087f8927b3fd07f Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 7 Dec 2015 10:09:08 +1300 Subject: Replace factory method with reflection --- src/org/traccar/web/JsonConverter.java | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) (limited to 'src/org/traccar/web/JsonConverter.java') diff --git a/src/org/traccar/web/JsonConverter.java b/src/org/traccar/web/JsonConverter.java index 2ef61fb13..8bf5607fb 100644 --- a/src/org/traccar/web/JsonConverter.java +++ b/src/org/traccar/web/JsonConverter.java @@ -35,7 +35,6 @@ import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; import org.traccar.helper.Log; -import org.traccar.model.Factory; import org.traccar.model.MiscFormatter; public final class JsonConverter { @@ -43,32 +42,12 @@ public final class JsonConverter { private JsonConverter() { } - private static T newClassInstance(Class clazz) { - try { - return clazz.newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - throw new IllegalArgumentException(); - } - } - private static final DateTimeFormatter DATE_FORMAT = ISODateTimeFormat.dateTime(); public static Date parseDate(String value) { return DATE_FORMAT.parseDateTime(value).toDate(); } - public static T objectFromJson(Reader reader, T prototype) throws ParseException { - try (JsonReader jsonReader = Json.createReader(reader)) { - return objectFromJson(jsonReader.readObject(), prototype); - } - } - - public static T objectFromJson(JsonObject json, T prototype) { - T object = (T) prototype.create(); - Method[] methods = object.getClass().getMethods(); - return objectFromJson(json, object, methods); - } - public static T objectFromJson(Reader reader, Class clazz) throws ParseException { try (JsonReader jsonReader = Json.createReader(reader)) { return objectFromJson(jsonReader.readObject(), clazz); @@ -76,9 +55,13 @@ public final class JsonConverter { } public static T objectFromJson(JsonObject json, Class clazz) { - T object = newClassInstance(clazz); - Method[] methods = object.getClass().getMethods(); - return objectFromJson(json, object, methods); + try { + T object = clazz.newInstance(); + Method[] methods = object.getClass().getMethods(); + return objectFromJson(json, object, methods); + } catch (InstantiationException | IllegalAccessException e) { + throw new IllegalArgumentException(); + } } private static T objectFromJson(JsonObject json, T object, Method[] methods) { -- cgit v1.2.3