From ebd8f5c7a8095a77013b393197b690895811be15 Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Thu, 14 Apr 2016 12:49:21 -0400 Subject: [PATCH 1/7] started work on geojson docs --- .../services/commons/geojson/Feature.java | 74 +++++++++++++++---- .../commons/geojson/FeatureCollection.java | 51 +++++++++---- .../services/commons/geojson/GeoJSON.java | 2 +- .../services/commons/geojson/Geometry.java | 3 +- .../commons/geojson/GeometryCollection.java | 51 +++++++++---- .../services/commons/geojson/LineString.java | 38 ++++++---- 6 files changed, 162 insertions(+), 57 deletions(-) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java index 761aa99be..18316331f 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java @@ -8,7 +8,9 @@ import com.mapbox.services.commons.models.Position; /** - * Created by antonio on 1/30/16. + * A GeoJSON object with the type "Feature" is a feature object. + * + * @see Official GeoJSON Feature Specifications */ public class Feature implements GeoJSON { @@ -17,57 +19,98 @@ public class Feature implements GeoJSON { private final JsonObject properties; private final String id; - /* - * Private constructor + /** + * Private constructor. + * + * @param geometry {@link Geometry} object. + * @param properties of this feature as JSON. + * @param id common identifier of this feature. */ - private Feature(Geometry geometry, JsonObject properties, String id) { this.geometry = geometry; this.properties = properties; this.id = id; } - /* - * Getters - */ + // ******************************* Getters ******************************* + /** + * Should always be "Feature". + * + * @return String "Feature". + */ @Override public String getType() { return type; } + /** + * Get the features {@link Geometry}. + * + * @return {@link Geometry} of the feature or null if not set. + */ public Geometry getGeometry() { return geometry; } + /** + * Returns the optional properties of this feature as JSON. + * + * @return the properties of this feature + */ public JsonObject getProperties() { return properties; } + /** + * The optional, common identifier of this feature. + * + * @return The common identifier of this feature, if set. + */ public String getId() { return id; } - /* - * Factories - */ + // ****************************** Factories ****************************** + /** + * Create a feature from geometry. + * + * @param geometry {@link Geometry} object. + */ public static Feature fromGeometry(Geometry geometry) { return new Feature(geometry, null, null); } + /** + * Create a feature from geometry. + * + * @param geometry {@link Geometry} object. + * @param properties of this feature as JSON. + */ public static Feature fromGeometry(Geometry geometry, JsonObject properties) { return new Feature(geometry, properties, null); } + /** + * Create a feature from geometry. + * + * @param geometry {@link Geometry} object. + * @param properties of this feature as JSON. + * @param id common identifier of this feature. + */ public static Feature fromGeometry(Geometry geometry, JsonObject properties, String id) { return new Feature(geometry, properties, id); } - /* - * Gson interface - */ + // **************************** Gson Interface *************************** + /** + * Create a GeoJSON feature object from JSON. + * + * @param json String of JSON making up a feature. + * @return {@link Feature} GeoJSON object. + */ public static Feature fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); @@ -75,6 +118,11 @@ public static Feature fromJson(String json) { return gson.create().fromJson(json, Feature.class); } + /** + * Convert feature into JSON. + * + * @return String containing feature JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java index 94b6774bb..429f7af7a 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java @@ -9,46 +9,66 @@ import java.util.List; /** - * Created by antonio on 1/30/16. + * A GeoJSON object with the type "FeatureCollection" is a feature object which represents a + * collection of feature objects. + * + * @see Official GeoJSON FeatureCollection Specifications */ public class FeatureCollection implements GeoJSON { private final String type = "FeatureCollection"; private final List features; - /* - * Private constructor + /** + * Private constructor. + * + * @param features List of {@link Feature}. */ - private FeatureCollection(List features) { this.features = features; } - /* - * Getters - */ + // ******************************* Getters ******************************* + /** + * Should always be "FeatureCollection". + * + * @return String "FeatureCollection". + */ @Override public String getType() { return type; } + /** + * Get the List containing all the features within collection. + * + * @return List of features within collection. + */ public List getFeatures() { return features; } - /* - * Factories - */ + // ****************************** Factories ****************************** + /** + * Create a {@link FeatureCollection} from a List of features. + * + * @param features List of {@link Feature} + * @return new {@link FeatureCollection} + */ public static FeatureCollection fromFeatures(List features) { return new FeatureCollection(features); } - /* - * Gson interface - */ + // **************************** Gson Interface *************************** + /** + * Create a GeoJSON feature collection object from JSON. + * + * @param json String of JSON making up a feature collection. + * @return {@link FeatureCollection} GeoJSON object. + */ public static FeatureCollection fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); @@ -56,6 +76,11 @@ public static FeatureCollection fromJson(String json) { return gson.create().fromJson(json, FeatureCollection.class); } + /** + * Convert feature collection into JSON. + * + * @return String containing feature collection JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeoJSON.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeoJSON.java index 5796de152..0723aa6d3 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeoJSON.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeoJSON.java @@ -1,7 +1,7 @@ package com.mapbox.services.commons.geojson; /** - * Created by antonio on 1/30/16. + * TODO */ public interface GeoJSON { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Geometry.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Geometry.java index 6cef452c3..21b28eae5 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Geometry.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Geometry.java @@ -1,7 +1,8 @@ package com.mapbox.services.commons.geojson; /** - * Created by antonio on 1/30/16. + * TODO + * @param */ public interface Geometry extends com.mapbox.services.commons.geojson.GeoJSON { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java index 57ec58eb7..bfe8e73d1 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java @@ -9,46 +9,66 @@ import java.util.List; /** - * Created by antonio on 1/30/16. + * A GeoJSON object with the type "GeometryCollection" is a geometry object which represents a + * collection of geometry objects. + * + * @see Official GeoJSON GeometryCollection Specifications */ public class GeometryCollection implements com.mapbox.services.commons.geojson.GeoJSON { private final String type = "GeometryCollection"; private final List geometries; - /* - * Private constructor + /** + * Private constructor. + * + * @param geometries List of {@link Geometry}. */ - public GeometryCollection(List geometries) { this.geometries = geometries; } - /* - * Getters - */ + // ******************************* Getters ******************************* + /** + * Should always be "GeometryCollection". + * + * @return String "GeometryCollection". + */ @Override public String getType() { return type; } + /** + * Get the List containing all the geometries within collection. + * + * @return List of geometries within collection. + */ public List getGeometries() { return geometries; } - /* - * Factories - */ + // ****************************** Factories ****************************** + /** + * Create a {@link GeometryCollection} from a List of geometries. + * + * @param geometries List of {@link Geometry} + * @return new {@link GeometryCollection} + */ public static GeometryCollection fromGeometries(List geometries) { return new GeometryCollection(geometries); } - /* - * Gson interface - */ + // **************************** Gson Interface *************************** + /** + * Create a GeoJSON geometry collection object from JSON. + * + * @param json String of JSON making up a geometry collection. + * @return {@link GeometryCollection} GeoJSON object. + */ public static GeometryCollection fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); @@ -56,6 +76,11 @@ public static GeometryCollection fromJson(String json) { return gson.create().fromJson(json, GeometryCollection.class); } + /** + * Convert geometry collection into JSON. + * + * @return String containing geometry collection JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java index d594ee53b..e6de70aef 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java @@ -9,46 +9,54 @@ import java.util.List; /** - * Created by antonio on 1/30/16. + * A LineString is a type of {@link Geometry}. + * + * @see Official GeoJSON LineString Specifications */ public class LineString implements com.mapbox.services.commons.geojson.Geometry> { private final String type = "LineString"; private final List coordinates; - /* - * Private constructor + /** + * Private constructor. + * + * @param coordinates List of {@link Position} making up the LineString. */ - private LineString(List coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ + // ******************************* Getters ******************************* + /** + * Should always be "LineString". + * + * @return String "LineString". + */ @Override public String getType() { return type; } + /** + * Get the list of {@link Position} making up the LineString. + * + * @return List of {@link Position}. + */ @Override public List getCoordinates() { return coordinates; } - /* - * Factories - */ + // ****************************** Factories ****************************** + public static LineString fromCoordinates(List coordinates) { return new LineString(coordinates); } - /* - * Gson interface - */ + // **************************** Gson Interface *************************** public static LineString fromJson(String json) { GsonBuilder gson = new GsonBuilder(); @@ -63,9 +71,7 @@ public String toJson() { return gson.create().toJson(this); } - /* - * Polyline utils - */ + // **************************** Polyline Utils *************************** public static LineString fromPolyline(String polyline, int precision) { return new LineString(PolylineUtils.decode(polyline, precision)); From 617862b06a93b6b4eae6b3d9aea4355f5d5587a5 Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Thu, 14 Apr 2016 13:01:58 -0400 Subject: [PATCH 2/7] changed back comments organizing classes --- .../services/commons/geojson/Feature.java | 12 +++++++++--- .../commons/geojson/FeatureCollection.java | 12 +++++++++--- .../commons/geojson/GeometryCollection.java | 12 +++++++++--- .../services/commons/geojson/LineString.java | 17 ++++++++++++----- 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java index 18316331f..79868b997 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java @@ -32,7 +32,9 @@ private Feature(Geometry geometry, JsonObject properties, String id) { this.id = id; } - // ******************************* Getters ******************************* + /* + * Getters + */ /** * Should always be "Feature". @@ -71,7 +73,9 @@ public String getId() { return id; } - // ****************************** Factories ****************************** + /* + * Factories + */ /** * Create a feature from geometry. @@ -103,7 +107,9 @@ public static Feature fromGeometry(Geometry geometry, JsonObject properties, Str return new Feature(geometry, properties, id); } - // **************************** Gson Interface *************************** + /* + * Gson interface + */ /** * Create a GeoJSON feature object from JSON. diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java index 429f7af7a..dc7b72424 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java @@ -28,7 +28,9 @@ private FeatureCollection(List feat this.features = features; } - // ******************************* Getters ******************************* + /* + * Getters + */ /** * Should always be "FeatureCollection". @@ -49,7 +51,9 @@ public List getFeatures() { return features; } - // ****************************** Factories ****************************** + /* + * Factories + */ /** * Create a {@link FeatureCollection} from a List of features. @@ -61,7 +65,9 @@ public static FeatureCollection fromFeatures(List geo this.geometries = geometries; } - // ******************************* Getters ******************************* + /* + * Getters + */ /** * Should always be "GeometryCollection". @@ -49,7 +51,9 @@ public List getGeometries() { return geometries; } - // ****************************** Factories ****************************** + /* + * Factories + */ /** * Create a {@link GeometryCollection} from a List of geometries. @@ -61,7 +65,9 @@ public static GeometryCollection fromGeometries(List coordinates) { this.coordinates = coordinates; } - // ******************************* Getters ******************************* + /* + * Getters + */ /** * Should always be "LineString". @@ -49,14 +51,17 @@ public List getCoordinates() { return coordinates; } - // ****************************** Factories ****************************** - + /* + * Factories + */ public static LineString fromCoordinates(List coordinates) { return new LineString(coordinates); } - // **************************** Gson Interface *************************** + /* + * Gson interface + */ public static LineString fromJson(String json) { GsonBuilder gson = new GsonBuilder(); @@ -71,7 +76,9 @@ public String toJson() { return gson.create().toJson(this); } - // **************************** Polyline Utils *************************** + /* + * Polyline utils + */ public static LineString fromPolyline(String polyline, int precision) { return new LineString(PolylineUtils.decode(polyline, precision)); From dc234a71f867d1dd3dc777421e3a2021ebe395f7 Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Thu, 14 Apr 2016 17:28:34 -0400 Subject: [PATCH 3/7] Finished linestring class --- .../services/commons/geojson/LineString.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java index 32aeb5df9..3154b94ed 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java @@ -55,6 +55,12 @@ public List getCoordinates() { * Factories */ + /** + * creates a {@link LineString} from a list of coordinates. + * + * @param coordinates List of {@link Position} coordinates. + * @return {@link LineString}. + */ public static LineString fromCoordinates(List coordinates) { return new LineString(coordinates); } @@ -63,12 +69,23 @@ public static LineString fromCoordinates(List coordinates) { * Gson interface */ + /** + * Create a GeoJSON LineString object from JSON. + * + * @param json String of JSON making up a LineString. + * @return {@link LineString} GeoJSON object. + */ public static LineString fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); return gson.create().fromJson(json, LineString.class); } + /** + * Convert feature into JSON. + * + * @return String containing LineString JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); @@ -80,6 +97,13 @@ public String toJson() { * Polyline utils */ + /** + * Convert a polyline into a LineString. + * + * @param polyline String describing a polyline. + * @param precision + * @return + */ public static LineString fromPolyline(String polyline, int precision) { return new LineString(PolylineUtils.decode(polyline, precision)); } From 729014c01630cafce449412ecb14c5bedf798b8d Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Wed, 20 Apr 2016 14:58:26 -0400 Subject: [PATCH 4/7] geojson models javadoc complete --- .../services/commons/geojson/Feature.java | 2 +- .../commons/geojson/FeatureCollection.java | 2 +- .../commons/geojson/GeometryCollection.java | 2 +- .../services/commons/geojson/LineString.java | 2 +- .../commons/geojson/MultiLineString.java | 36 +++++++++++++++++- .../services/commons/geojson/MultiPoint.java | 37 ++++++++++++++++++- .../commons/geojson/MultiPolygon.java | 37 ++++++++++++++++++- .../services/commons/geojson/Point.java | 37 ++++++++++++++++++- .../services/commons/geojson/Polygon.java | 37 ++++++++++++++++++- .../geojson/custom/GeometryDeserializer.java | 6 +-- .../geojson/custom/PositionDeserializer.java | 4 +- .../geojson/custom/PositionSerializer.java | 4 +- 12 files changed, 186 insertions(+), 20 deletions(-) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java index 79868b997..a2b6ad5e3 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java @@ -10,7 +10,7 @@ /** * A GeoJSON object with the type "Feature" is a feature object. * - * @see Official GeoJSON Feature Specifications + * @see Official GeoJSON Feature Specifications */ public class Feature implements GeoJSON { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java index dc7b72424..69fff781f 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java @@ -12,7 +12,7 @@ * A GeoJSON object with the type "FeatureCollection" is a feature object which represents a * collection of feature objects. * - * @see Official GeoJSON FeatureCollection Specifications + * @see Official GeoJSON FeatureCollection Specifications */ public class FeatureCollection implements GeoJSON { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java index 1580ce938..254888088 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java @@ -12,7 +12,7 @@ * A GeoJSON object with the type "GeometryCollection" is a geometry object which represents a * collection of geometry objects. * - * @see Official GeoJSON GeometryCollection Specifications + * @see Official GeoJSON GeometryCollection Specifications */ public class GeometryCollection implements com.mapbox.services.commons.geojson.GeoJSON { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java index 3154b94ed..87041e46f 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/LineString.java @@ -11,7 +11,7 @@ /** * A LineString is a type of {@link Geometry}. * - * @see Official GeoJSON LineString Specifications + * @see Official GeoJSON LineString Specifications */ public class LineString implements com.mapbox.services.commons.geojson.Geometry> { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java index 3e3f892d0..509a1cba3 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java @@ -8,7 +8,9 @@ import java.util.List; /** - * Created by antonio on 1/30/16. + * A MultiLineString is a type of {@link Geometry}. + * + * @see Official GeoJSON MultiLineString Specifications */ public class MultiLineString implements com.mapbox.services.commons.geojson.Geometry>> { @@ -19,6 +21,11 @@ public class MultiLineString implements com.mapbox.services.commons.geojson.Geom * Private constructor */ + /** + * Private constructor. + * + * @param coordinates List of {@link Position} making up the MultiLineString. + */ private MultiLineString(List> coordinates) { this.coordinates = coordinates; } @@ -27,11 +34,21 @@ private MultiLineString(List> coordinates) { * Getters */ + /** + * Should always be "MultiLineString". + * + * @return String "MultiLineString". + */ @Override public String getType() { return type; } + /** + * Get the list of {@link Position} making up the MultiLineString. + * + * @return List of {@link Position}. + */ @Override public List> getCoordinates() { return coordinates; @@ -41,6 +58,12 @@ public List> getCoordinates() { * Factories */ + /** + * Creates a {@link MultiLineString} from a list of coordinates. + * + * @param coordinates List of {@link Position} coordinates. + * @return {@link MultiLineString}. + */ public static MultiLineString fromCoordinates(List> coordinates) { return new MultiLineString(coordinates); } @@ -49,12 +72,23 @@ public static MultiLineString fromCoordinates(List> coordinates) * Gson interface */ + /** + * Create a GeoJSON MultiLineString object from JSON. + * + * @param json String of JSON making up a MultiLineString. + * @return {@link MultiLineString} GeoJSON object. + */ public static MultiLineString fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); return gson.create().fromJson(json, MultiLineString.class); } + /** + * Convert feature into JSON. + * + * @return String containing MultiLineString JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java index a57e033b9..a6830f1d0 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java @@ -8,7 +8,9 @@ import java.util.List; /** - * Created by antonio on 1/30/16. + * A MultiPoint is a type of {@link Geometry}. + * + * @see Official GeoJSON MultiPoint Specifications */ public class MultiPoint implements com.mapbox.services.commons.geojson.Geometry> { @@ -19,6 +21,11 @@ public class MultiPoint implements com.mapbox.services.commons.geojson.Geometry< * Private constructor */ + /** + * Private constructor. + * + * @param coordinates List of {@link Position} making up the MultiPoint. + */ private MultiPoint(List coordinates) { this.coordinates = coordinates; } @@ -27,11 +34,21 @@ private MultiPoint(List coordinates) { * Getters */ + /** + * Should always be "MultiPoint". + * + * @return String "MultiPoint". + */ @Override public String getType() { return type; } + /** + * Get the list of {@link Position} making up the MultiPoint. + * + * @return List of {@link Position}. + */ @Override public List getCoordinates() { return coordinates; @@ -41,6 +58,12 @@ public List getCoordinates() { * Factories */ + /** + * Creates a {@link MultiPoint} from a list of coordinates. + * + * @param coordinates List of {@link Position} coordinates. + * @return {@link MultiPoint}. + */ public static MultiPoint fromCoordinates(List coordinates) { return new MultiPoint(coordinates); } @@ -49,17 +72,27 @@ public static MultiPoint fromCoordinates(List coordinates) { * Gson interface */ + /** + * Create a GeoJSON MultiPoint object from JSON. + * + * @param json String of JSON making up a MultiPoint. + * @return {@link MultiPoint} GeoJSON object. + */ public static MultiPoint fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); return gson.create().fromJson(json, MultiPoint.class); } + /** + * Convert feature into JSON. + * + * @return String containing MultiPoint JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionSerializer()); return gson.create().toJson(this); } - } diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java index 6cef29102..fe04b3653 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java @@ -8,7 +8,9 @@ import java.util.List; /** - * Created by antonio on 1/30/16. + * A MultiPolygon is a type of {@link Geometry}. + * + * @see Official GeoJSON MultiPolygon Specifications */ public class MultiPolygon implements com.mapbox.services.commons.geojson.Geometry>>> { @@ -19,6 +21,11 @@ public class MultiPolygon implements com.mapbox.services.commons.geojson.Geometr * Private constructor */ + /** + * Private constructor. + * + * @param coordinates List of {@link Position} making up the MultiPolygon. + */ private MultiPolygon(List>> coordinates) { this.coordinates = coordinates; } @@ -27,11 +34,21 @@ private MultiPolygon(List>> coordinates) { * Getters */ + /** + * Should always be "MultiPolygon". + * + * @return String "MultiPolygon". + */ @Override public String getType() { return type; } + /** + * Get the list of {@link Position} making up the MultiPolygon. + * + * @return List of {@link Position}. + */ @Override public List>> getCoordinates() { return coordinates; @@ -41,6 +58,12 @@ public List>> getCoordinates() { * Factories */ + /** + * Creates a {@link MultiPolygon} from a list of coordinates. + * + * @param coordinates List of {@link Position} coordinates. + * @return {@link MultiPolygon}. + */ public static MultiPolygon fromCoordinates(List>> coordinates) { return new MultiPolygon(coordinates); } @@ -49,17 +72,27 @@ public static MultiPolygon fromCoordinates(List>> coordinate * Gson interface */ + /** + * Create a GeoJSON MultiPolygon object from JSON. + * + * @param json String of JSON making up a MultiPolygon. + * @return {@link MultiPolygon} GeoJSON object. + */ public static MultiPolygon fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); return gson.create().fromJson(json, MultiPolygon.class); } + /** + * Convert feature into JSON. + * + * @return String containing MultiPolygon JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionSerializer()); return gson.create().toJson(this); } - } diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java index c8bd2b2e9..93bf40e99 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java @@ -6,7 +6,9 @@ import com.mapbox.services.commons.models.Position; /** - * Created by antonio on 1/30/16. + * A Point is a type of {@link Geometry}. + * + * @see Official GeoJSON Point Specifications */ public class Point implements com.mapbox.services.commons.geojson.Geometry { @@ -17,6 +19,11 @@ public class Point implements com.mapbox.services.commons.geojson.GeometryOfficial GeoJSON Polygon Specifications */ public class Polygon implements com.mapbox.services.commons.geojson.Geometry>> { @@ -19,6 +21,11 @@ public class Polygon implements com.mapbox.services.commons.geojson.Geometry> coordinates) { this.coordinates = coordinates; } @@ -27,11 +34,21 @@ private Polygon(List> coordinates) { * Getters */ + /** + * Should always be "Polygon". + * + * @return String "Polygon". + */ @Override public String getType() { return type; } + /** + * Get the list of {@link Position} making up the Polygon. + * + * @return List of {@link Position}. + */ @Override public List> getCoordinates() { return coordinates; @@ -41,6 +58,12 @@ public List> getCoordinates() { * Factories */ + /** + * Creates a {@link Polygon} from a list of coordinates. + * + * @param coordinates List of {@link Position} coordinates. + * @return {@link Polygon}. + */ public static Polygon fromCoordinates(List> coordinates) { return new Polygon(coordinates); } @@ -49,17 +72,27 @@ public static Polygon fromCoordinates(List> coordinates) { * Gson interface */ + /** + * Create a GeoJSON Polygon object from JSON. + * + * @param json String of JSON making up a Polygon. + * @return {@link Polygon} GeoJSON object. + */ public static Polygon fromJson(String json) { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionDeserializer()); return gson.create().fromJson(json, Polygon.class); } + /** + * Convert feature into JSON. + * + * @return String containing Polygon JSON. + */ @Override public String toJson() { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(Position.class, new PositionSerializer()); return gson.create().toJson(this); } - } diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java index 7f3b3b409..2cf77a170 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java @@ -9,9 +9,9 @@ import java.lang.reflect.Type; /** - * Required to handle the "Unable to invoke no-args constructor for interface - * com.mapbox.services.commons.geojson.Geometry" error that Gson shows when trying to deserialize - * a List. There must be a better way to handle this case. + * Required to handle the "Unable to invoke no-args constructor for interface {@link Geometry} error + * that Gson shows when trying to deserialize a List. There must be a better way to handle + * this case. */ public class GeometryDeserializer implements JsonDeserializer { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionDeserializer.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionDeserializer.java index 28af4d1fd..9f58c30d6 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionDeserializer.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionDeserializer.java @@ -10,8 +10,8 @@ import java.lang.reflect.Type; /** - * Required to handle the "Expected BEGIN_OBJECT but was BEGIN_ARRAY" error - * that Gson would show otherwise. + * Required to handle the "Expected BEGIN_OBJECT but was BEGIN_ARRAY" error that Gson would show + * otherwise. */ public class PositionDeserializer implements JsonDeserializer { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionSerializer.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionSerializer.java index a01b1ea61..4c6965a04 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionSerializer.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/PositionSerializer.java @@ -10,8 +10,8 @@ import java.lang.reflect.Type; /** - * Required to handle the special case where the altitude might be a Double.NaN, - * which isn't a valid double value as per JSON specification. + * Required to handle the special case where the altitude might be a Double.NaN, which isn't a valid + * double value as per JSON specification. */ public class PositionSerializer implements JsonSerializer { From 79ad7fec839ffd563523d798b749f52503893369 Mon Sep 17 00:00:00 2001 From: Antonio Zugaldia Date: Mon, 2 May 2016 15:33:48 -0400 Subject: [PATCH 5/7] clean up and complete comments --- .../services/commons/geojson/Feature.java | 13 ------------ .../commons/geojson/FeatureCollection.java | 13 ------------ .../services/commons/geojson/GeoJSON.java | 2 +- .../services/commons/geojson/Geometry.java | 4 ++-- .../commons/geojson/GeometryCollection.java | 15 +------------ .../services/commons/geojson/LineString.java | 21 ++----------------- .../commons/geojson/MultiLineString.java | 19 +---------------- .../services/commons/geojson/MultiPoint.java | 18 +--------------- .../commons/geojson/MultiPolygon.java | 18 +--------------- .../services/commons/geojson/Point.java | 18 +--------------- .../services/commons/geojson/Polygon.java | 18 +--------------- 11 files changed, 11 insertions(+), 148 deletions(-) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java index a2b6ad5e3..486cb4d07 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Feature.java @@ -32,10 +32,6 @@ private Feature(Geometry geometry, JsonObject properties, String id) { this.id = id; } - /* - * Getters - */ - /** * Should always be "Feature". * @@ -73,10 +69,6 @@ public String getId() { return id; } - /* - * Factories - */ - /** * Create a feature from geometry. * @@ -107,10 +99,6 @@ public static Feature fromGeometry(Geometry geometry, JsonObject properties, Str return new Feature(geometry, properties, id); } - /* - * Gson interface - */ - /** * Create a GeoJSON feature object from JSON. * @@ -135,5 +123,4 @@ public String toJson() { gson.registerTypeAdapter(Position.class, new PositionSerializer()); return gson.create().toJson(this); } - } diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java index 69fff781f..b1ce76a2d 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/FeatureCollection.java @@ -28,10 +28,6 @@ private FeatureCollection(List feat this.features = features; } - /* - * Getters - */ - /** * Should always be "FeatureCollection". * @@ -51,10 +47,6 @@ public List getFeatures() { return features; } - /* - * Factories - */ - /** * Create a {@link FeatureCollection} from a List of features. * @@ -65,10 +57,6 @@ public static FeatureCollection fromFeatures(List + * Interface implemented by all Geometry objects, contains common fields. + * @param the type of the coordinates, normally a list interface of positions. */ public interface Geometry extends com.mapbox.services.commons.geojson.GeoJSON { diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java index 254888088..62bf9ac23 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/GeometryCollection.java @@ -14,7 +14,7 @@ * * @see Official GeoJSON GeometryCollection Specifications */ -public class GeometryCollection implements com.mapbox.services.commons.geojson.GeoJSON { +public class GeometryCollection implements GeoJSON { private final String type = "GeometryCollection"; private final List geometries; @@ -28,10 +28,6 @@ public GeometryCollection(List geo this.geometries = geometries; } - /* - * Getters - */ - /** * Should always be "GeometryCollection". * @@ -51,10 +47,6 @@ public List getGeometries() { return geometries; } - /* - * Factories - */ - /** * Create a {@link GeometryCollection} from a List of geometries. * @@ -65,10 +57,6 @@ public static GeometryCollection fromGeometries(ListOfficial GeoJSON LineString Specifications */ -public class LineString implements com.mapbox.services.commons.geojson.Geometry> { +public class LineString implements Geometry> { private final String type = "LineString"; private final List coordinates; @@ -27,10 +27,6 @@ private LineString(List coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ - /** * Should always be "LineString". * @@ -51,10 +47,6 @@ public List getCoordinates() { return coordinates; } - /* - * Factories - */ - /** * creates a {@link LineString} from a list of coordinates. * @@ -65,10 +57,6 @@ public static LineString fromCoordinates(List coordinates) { return new LineString(coordinates); } - /* - * Gson interface - */ - /** * Create a GeoJSON LineString object from JSON. * @@ -93,15 +81,11 @@ public String toJson() { return gson.create().toJson(this); } - /* - * Polyline utils - */ - /** * Convert a polyline into a LineString. * * @param polyline String describing a polyline. - * @param precision + * @param precision The encoded precision, for example Constants.OSRM_PRECISION_V4. * @return */ public static LineString fromPolyline(String polyline, int precision) { @@ -111,5 +95,4 @@ public static LineString fromPolyline(String polyline, int precision) { public String toPolyline(int precision) { return PolylineUtils.encode(getCoordinates(), precision); } - } diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java index 509a1cba3..5c8c7f53e 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java @@ -12,15 +12,11 @@ * * @see Official GeoJSON MultiLineString Specifications */ -public class MultiLineString implements com.mapbox.services.commons.geojson.Geometry>> { +public class MultiLineString implements Geometry>> { private final String type = "MultiLineString"; private final List> coordinates; - /* - * Private constructor - */ - /** * Private constructor. * @@ -30,10 +26,6 @@ private MultiLineString(List> coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ - /** * Should always be "MultiLineString". * @@ -54,10 +46,6 @@ public List> getCoordinates() { return coordinates; } - /* - * Factories - */ - /** * Creates a {@link MultiLineString} from a list of coordinates. * @@ -68,10 +56,6 @@ public static MultiLineString fromCoordinates(List> coordinates) return new MultiLineString(coordinates); } - /* - * Gson interface - */ - /** * Create a GeoJSON MultiLineString object from JSON. * @@ -95,5 +79,4 @@ public String toJson() { gson.registerTypeAdapter(Position.class, new PositionSerializer()); return gson.create().toJson(this); } - } diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java index a6830f1d0..ccdd68225 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPoint.java @@ -12,15 +12,11 @@ * * @see Official GeoJSON MultiPoint Specifications */ -public class MultiPoint implements com.mapbox.services.commons.geojson.Geometry> { +public class MultiPoint implements Geometry> { private final String type = "MultiPoint"; private final List coordinates; - /* - * Private constructor - */ - /** * Private constructor. * @@ -30,10 +26,6 @@ private MultiPoint(List coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ - /** * Should always be "MultiPoint". * @@ -54,10 +46,6 @@ public List getCoordinates() { return coordinates; } - /* - * Factories - */ - /** * Creates a {@link MultiPoint} from a list of coordinates. * @@ -68,10 +56,6 @@ public static MultiPoint fromCoordinates(List coordinates) { return new MultiPoint(coordinates); } - /* - * Gson interface - */ - /** * Create a GeoJSON MultiPoint object from JSON. * diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java index fe04b3653..7adfc9e57 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiPolygon.java @@ -12,15 +12,11 @@ * * @see Official GeoJSON MultiPolygon Specifications */ -public class MultiPolygon implements com.mapbox.services.commons.geojson.Geometry>>> { +public class MultiPolygon implements Geometry>>> { private final String type = "MultiPolygon"; private final List>> coordinates; - /* - * Private constructor - */ - /** * Private constructor. * @@ -30,10 +26,6 @@ private MultiPolygon(List>> coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ - /** * Should always be "MultiPolygon". * @@ -54,10 +46,6 @@ public List>> getCoordinates() { return coordinates; } - /* - * Factories - */ - /** * Creates a {@link MultiPolygon} from a list of coordinates. * @@ -68,10 +56,6 @@ public static MultiPolygon fromCoordinates(List>> coordinate return new MultiPolygon(coordinates); } - /* - * Gson interface - */ - /** * Create a GeoJSON MultiPolygon object from JSON. * diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java index 93bf40e99..8fb33cb34 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Point.java @@ -10,15 +10,11 @@ * * @see Official GeoJSON Point Specifications */ -public class Point implements com.mapbox.services.commons.geojson.Geometry { +public class Point implements Geometry { private final String type = "Point"; private final Position coordinates; - /* - * Private constructor - */ - /** * Private constructor. * @@ -28,10 +24,6 @@ private Point(Position coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ - /** * Should always be "Point". * @@ -52,10 +44,6 @@ public Position getCoordinates() { return coordinates; } - /* - * Factories - */ - /** * Creates a {@link Point} from a given coordinate. * @@ -66,10 +54,6 @@ public static Point fromCoordinates(Position coordinates) { return new Point(coordinates); } - /* - * Gson interface - */ - /** * Create a GeoJSON Point object from JSON. * diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Polygon.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Polygon.java index 794c681fb..16001393e 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Polygon.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/Polygon.java @@ -12,15 +12,11 @@ * * @see Official GeoJSON Polygon Specifications */ -public class Polygon implements com.mapbox.services.commons.geojson.Geometry>> { +public class Polygon implements Geometry>> { private final String type = "Polygon"; private final List> coordinates; - /* - * Private constructor - */ - /** * Private constructor. * @@ -30,10 +26,6 @@ private Polygon(List> coordinates) { this.coordinates = coordinates; } - /* - * Getters - */ - /** * Should always be "Polygon". * @@ -54,10 +46,6 @@ public List> getCoordinates() { return coordinates; } - /* - * Factories - */ - /** * Creates a {@link Polygon} from a list of coordinates. * @@ -68,10 +56,6 @@ public static Polygon fromCoordinates(List> coordinates) { return new Polygon(coordinates); } - /* - * Gson interface - */ - /** * Create a GeoJSON Polygon object from JSON. * From b0237b802c74487777290772805966bf8d650b1c Mon Sep 17 00:00:00 2001 From: Antonio Zugaldia Date: Mon, 2 May 2016 15:36:01 -0400 Subject: [PATCH 6/7] fix namespace to com.mapbox.services.commons.geojson --- .../services/commons/geojson/custom/GeometryDeserializer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java index 2cf77a170..dce96dab3 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java @@ -21,7 +21,7 @@ public Geometry deserialize(JsonElement json, Type typeOfT, JsonDeserializationC String geometryType = json.getAsJsonObject().get("type").getAsString(); try { // Use the current context to deserialize it - Type classType = Class.forName("com.mapbox.services.geojson." + geometryType); + Type classType = Class.forName("com.mapbox.services.commons.geojson." + geometryType); return context.deserialize(json, classType); } catch (ClassNotFoundException e) { // Unknown geometry From 1aace1cacdfea51d7a0ded8bb6fcd44eee88de32 Mon Sep 17 00:00:00 2001 From: Antonio Zugaldia Date: Mon, 2 May 2016 15:36:41 -0400 Subject: [PATCH 7/7] revert change to merge --- .../services/commons/geojson/custom/GeometryDeserializer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java index dce96dab3..2cf77a170 100644 --- a/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java +++ b/libjava/lib/src/main/java/com/mapbox/services/commons/geojson/custom/GeometryDeserializer.java @@ -21,7 +21,7 @@ public Geometry deserialize(JsonElement json, Type typeOfT, JsonDeserializationC String geometryType = json.getAsJsonObject().get("type").getAsString(); try { // Use the current context to deserialize it - Type classType = Class.forName("com.mapbox.services.commons.geojson." + geometryType); + Type classType = Class.forName("com.mapbox.services.geojson." + geometryType); return context.deserialize(json, classType); } catch (ClassNotFoundException e) { // Unknown geometry