diff options
author | Isabel Drost-Fromm <isabel.drostfromm@elasticsearch.com> | 2016-03-29 11:04:02 +0200 |
---|---|---|
committer | Isabel Drost-Fromm <isabel.drostfromm@elasticsearch.com> | 2016-03-29 11:04:02 +0200 |
commit | 407e2cdcf93475e2b326228eaf169fa2572d7d8b (patch) | |
tree | 3810be0a7ec51b990fef5b2f7a9cb1ecf3557b10 /core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java | |
parent | 5dd481bfe3ef81a59217f7809ca51dc4f31b893e (diff) | |
parent | c7bdfb1126d47442f7e12f996eecbb7fab315c2d (diff) |
Merge branch 'master' into deprecation/sort-option-reverse-removal
Conflicts:
core/src/main/java/org/elasticsearch/search/sort/ScoreSortBuilder.java
core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java
Diffstat (limited to 'core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java')
-rw-r--r-- | core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java b/core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java index 6ee679b730..f5e5bca505 100644 --- a/core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java +++ b/core/src/main/java/org/elasticsearch/common/geo/builders/MultiPolygonBuilder.java @@ -36,20 +36,45 @@ import java.util.Objects; public class MultiPolygonBuilder extends ShapeBuilder { public static final GeoShapeType TYPE = GeoShapeType.MULTIPOLYGON; - public static final MultiPolygonBuilder PROTOTYPE = new MultiPolygonBuilder(); - private final ArrayList<PolygonBuilder> polygons = new ArrayList<>(); + private final List<PolygonBuilder> polygons = new ArrayList<>(); - private Orientation orientation = Orientation.RIGHT; + private final Orientation orientation; + /** + * Build a MultiPolygonBuilder with RIGHT orientation. + */ public MultiPolygonBuilder() { this(Orientation.RIGHT); } + /** + * Build a MultiPolygonBuilder with an arbitrary orientation. + */ public MultiPolygonBuilder(Orientation orientation) { this.orientation = orientation; } + /** + * Read from a stream. + */ + public MultiPolygonBuilder(StreamInput in) throws IOException { + orientation = Orientation.readFrom(in); + int holes = in.readVInt(); + for (int i = 0; i < holes; i++) { + polygon(new PolygonBuilder(in)); + } + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + orientation.writeTo(out); + out.writeVInt(polygons.size()); + for (PolygonBuilder polygon : polygons) { + polygon.writeTo(out); + } + } + public Orientation orientation() { return this.orientation; } @@ -70,7 +95,7 @@ public class MultiPolygonBuilder extends ShapeBuilder { /** * get the list of polygons */ - public ArrayList<PolygonBuilder> polygons() { + public List<PolygonBuilder> polygons() { return polygons; } @@ -134,23 +159,4 @@ public class MultiPolygonBuilder extends ShapeBuilder { return Objects.equals(polygons, other.polygons) && Objects.equals(orientation, other.orientation); } - - @Override - public void writeTo(StreamOutput out) throws IOException { - orientation.writeTo(out); - out.writeVInt(polygons.size()); - for (PolygonBuilder polygon : polygons) { - polygon.writeTo(out); - } - } - - @Override - public MultiPolygonBuilder readFrom(StreamInput in) throws IOException { - MultiPolygonBuilder polyBuilder = new MultiPolygonBuilder(Orientation.readFrom(in)); - int holes = in.readVInt(); - for (int i = 0; i < holes; i++) { - polyBuilder.polygon(PolygonBuilder.PROTOTYPE.readFrom(in)); - } - return polyBuilder; - } } |