diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-11-30 13:55:05 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-11-30 13:55:05 +1300 |
commit | cefc12afe98f610aa0f266bcac4361f9ec414ee5 (patch) | |
tree | 48d47a0eec0c2d8a3ee7f448f8d535d7d826d546 /src/org/traccar/web/JsonConverter.java | |
parent | c6692703c8099577cb86c3eace5d8d1bc11f212d (diff) | |
parent | 1a25796d62bdf88f2cba0387a09e2eb71599e588 (diff) | |
download | trackermap-server-cefc12afe98f610aa0f266bcac4361f9ec414ee5.tar.gz trackermap-server-cefc12afe98f610aa0f266bcac4361f9ec414ee5.tar.bz2 trackermap-server-cefc12afe98f610aa0f266bcac4361f9ec414ee5.zip |
Merge master of guterresrafael/traccar into rest
Diffstat (limited to 'src/org/traccar/web/JsonConverter.java')
-rw-r--r-- | src/org/traccar/web/JsonConverter.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/org/traccar/web/JsonConverter.java b/src/org/traccar/web/JsonConverter.java index c01ce8bd6..38721db61 100644 --- a/src/org/traccar/web/JsonConverter.java +++ b/src/org/traccar/web/JsonConverter.java @@ -34,6 +34,7 @@ import javax.json.JsonValue; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; +import org.traccar.helper.Clazz; import org.traccar.helper.Log; import org.traccar.model.Factory; import org.traccar.model.MiscFormatter; @@ -57,9 +58,23 @@ public final class JsonConverter { public static <T extends Factory> T objectFromJson(JsonObject json, T prototype) { T object = (T) prototype.create(); + Method[] methods = object.getClass().getMethods(); + return objectFromJson(json, object, methods); + } + + public static <T> T objectFromJson(Reader reader, Class<T> clazz) throws ParseException { + try (JsonReader jsonReader = Json.createReader(reader)) { + return objectFromJson(jsonReader.readObject(), clazz); + } + } + public static <T> T objectFromJson(JsonObject json, Class<T> clazz) { + T object = Clazz.newInstance(clazz); Method[] methods = object.getClass().getMethods(); + return objectFromJson(json, object, methods); + } + private static <T> T objectFromJson(JsonObject json, T object, Method[] methods) { for (final Method method : methods) { if (method.getName().startsWith("set") && method.getParameterTypes().length == 1) { @@ -91,7 +106,6 @@ public final class JsonConverter { } } } - return object; } |