From 94ae08701bbd7585a0b7e5a92d1975965a503c03 Mon Sep 17 00:00:00 2001
From: Dennis Kao <ulysseskao@gmail.com>
Date: Wed, 15 Jan 2014 11:28:52 +0800
Subject: [PATCH] Merge branch 'origin/2.1.x'

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/postjts/JtsBinaryParser.java |   99 ++++++++++++++++---------------------------------
 1 files changed, 33 insertions(+), 66 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/postjts/JtsBinaryParser.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/postjts/JtsBinaryParser.java
index 1ee359a..dbdbf24 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/postjts/JtsBinaryParser.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/postjts/JtsBinaryParser.java
@@ -55,8 +55,7 @@
  *
  * @author Markus Schaber, markus.schaber@logix-tt.com
  */
-public class JtsBinaryParser
-{
+public class JtsBinaryParser {
 
     /**
      * Get the appropriate ValueGetter for my endianness
@@ -64,16 +63,12 @@
      * @param bytes The appropriate Byte Getter
      * @return the ValueGetter
      */
-    public static ValueGetter valueGetterForEndian(ByteGetter bytes)
-    {
-        if (bytes.get(0) == ValueGetter.XDR.NUMBER)
-        { // XDR
+    public static ValueGetter valueGetterForEndian(ByteGetter bytes) {
+        if (bytes.get(0) == ValueGetter.XDR.NUMBER) { // XDR
             return new ValueGetter.XDR(bytes);
-        } else if (bytes.get(0) == ValueGetter.NDR.NUMBER)
-        {
+        } else if (bytes.get(0) == ValueGetter.NDR.NUMBER) {
             return new ValueGetter.NDR(bytes);
-        } else
-        {
+        } else {
             throw new IllegalArgumentException("Unknown Endian type:" + bytes.get(0));
         }
     }
@@ -81,8 +76,7 @@
     /**
      * Parse a hex encoded geometry
      */
-    public Geometry parse(String value)
-    {
+    public Geometry parse(String value) {
         StringByteGetter bytes = new ByteGetter.StringByteGetter(value);
         return parseGeometry(valueGetterForEndian(bytes));
     }
@@ -90,8 +84,7 @@
     /**
      * Parse a binary encoded geometry.
      */
-    public Geometry parse(byte[] value)
-    {
+    public Geometry parse(byte[] value) {
         BinaryByteGetter bytes = new ByteGetter.BinaryByteGetter(value);
         return parseGeometry(valueGetterForEndian(bytes));
     }
@@ -99,19 +92,16 @@
     /**
      * Parse a geometry starting at offset.
      */
-    protected Geometry parseGeometry(ValueGetter data)
-    {
+    protected Geometry parseGeometry(ValueGetter data) {
         return parseGeometry(data, 0, false);
     }
 
     /**
      * Parse with a known geometry factory
      */
-    protected Geometry parseGeometry(ValueGetter data, int srid, boolean inheritSrid)
-    {
+    protected Geometry parseGeometry(ValueGetter data, int srid, boolean inheritSrid) {
         byte endian = data.getByte(); // skip and test endian flag
-        if (endian != data.endian)
-        {
+        if (endian != data.endian) {
             throw new IllegalArgumentException("Endian inconsistency!");
         }
         int typeword = data.getInt();
@@ -122,24 +112,19 @@
         boolean haveM = (typeword & 0x40000000) != 0;
         boolean haveS = (typeword & 0x20000000) != 0;
 
-        if (haveS)
-        {
+        if (haveS) {
             int newsrid = data.getInt();
-            if (inheritSrid && newsrid != srid)
-            {
+            if (inheritSrid && newsrid != srid) {
                 throw new IllegalArgumentException("Inconsistent srids in complex geometry: " + srid + ", " + newsrid);
-            } else
-            {
+            } else {
                 srid = newsrid;
             }
-        } else if (!inheritSrid)
-        {
+        } else if (!inheritSrid) {
             srid = -1;
         }
 
         Geometry result;
-        switch (realtype)
-        {
+        switch (realtype) {
         case org.postgis.Geometry.POINT:
             result = parsePoint(data, haveZ, haveM);
             break;
@@ -170,22 +155,18 @@
         return result;
     }
 
-    private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM)
-    {
+    private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) {
         double X = data.getDouble();
         double Y = data.getDouble();
         Point result;
-        if (haveZ)
-        {
+        if (haveZ) {
             double Z = data.getDouble();
             result = JtsGeometry.geofac.createPoint(new Coordinate(X, Y, Z));
-        } else
-        {
+        } else {
             result = JtsGeometry.geofac.createPoint(new Coordinate(X, Y));
         }
 
-        if (haveM)
-        { // skip M value
+        if (haveM) { // skip M value
             data.getDouble();
         }
 
@@ -195,10 +176,8 @@
     /**
      * Parse an Array of "full" Geometries
      */
-    private void parseGeometryArray(ValueGetter data, Geometry[] container, int srid)
-    {
-        for (int i = 0; i < container.length; i++)
-        {
+    private void parseGeometryArray(ValueGetter data, Geometry[] container, int srid) {
+        for (int i = 0; i < container.length; i++) {
             container[i] = parseGeometry(data, srid, true);
         }
     }
@@ -210,75 +189,63 @@
      * @param haveZ
      * @param haveM
      */
-    private CoordinateSequence parseCS(ValueGetter data, boolean haveZ, boolean haveM)
-    {
+    private CoordinateSequence parseCS(ValueGetter data, boolean haveZ, boolean haveM) {
         int count = data.getInt();
         int dims = haveZ ? 3 : 2;
         CoordinateSequence cs = new PackedCoordinateSequence.Double(count, dims);
 
-        for (int i = 0; i < count; i++)
-        {
-            for (int d = 0; d < dims; d++)
-            {
+        for (int i = 0; i < count; i++) {
+            for (int d = 0; d < dims; d++) {
                 cs.setOrdinate(i, d, data.getDouble());
             }
-            if (haveM)
-            { // skip M value
+            if (haveM) { // skip M value
                 data.getDouble();
             }
         }
         return cs;
     }
 
-    private MultiPoint parseMultiPoint(ValueGetter data, int srid)
-    {
+    private MultiPoint parseMultiPoint(ValueGetter data, int srid) {
         Point[] points = new Point[data.getInt()];
         parseGeometryArray(data, points, srid);
         return JtsGeometry.geofac.createMultiPoint(points);
     }
 
-    private LineString parseLineString(ValueGetter data, boolean haveZ, boolean haveM)
-    {
+    private LineString parseLineString(ValueGetter data, boolean haveZ, boolean haveM) {
         return JtsGeometry.geofac.createLineString(parseCS(data, haveZ, haveM));
     }
 
-    private LinearRing parseLinearRing(ValueGetter data, boolean haveZ, boolean haveM)
-    {
+    private LinearRing parseLinearRing(ValueGetter data, boolean haveZ, boolean haveM) {
         return JtsGeometry.geofac.createLinearRing(parseCS(data, haveZ, haveM));
     }
 
-    private Polygon parsePolygon(ValueGetter data, boolean haveZ, boolean haveM, int srid)
-    {
+    private Polygon parsePolygon(ValueGetter data, boolean haveZ, boolean haveM, int srid) {
         int holecount = data.getInt() - 1;
         LinearRing[] rings = new LinearRing[holecount];
         LinearRing shell = parseLinearRing(data, haveZ, haveM);
         shell.setSRID(srid);
-        for (int i = 0; i < holecount; i++)
-        {
+        for (int i = 0; i < holecount; i++) {
             rings[i] = parseLinearRing(data, haveZ, haveM);
             rings[i].setSRID(srid);
         }
         return JtsGeometry.geofac.createPolygon(shell, rings);
     }
 
-    private MultiLineString parseMultiLineString(ValueGetter data, int srid)
-    {
+    private MultiLineString parseMultiLineString(ValueGetter data, int srid) {
         int count = data.getInt();
         LineString[] strings = new LineString[count];
         parseGeometryArray(data, strings, srid);
         return JtsGeometry.geofac.createMultiLineString(strings);
     }
 
-    private MultiPolygon parseMultiPolygon(ValueGetter data, int srid)
-    {
+    private MultiPolygon parseMultiPolygon(ValueGetter data, int srid) {
         int count = data.getInt();
         Polygon[] polys = new Polygon[count];
         parseGeometryArray(data, polys, srid);
         return JtsGeometry.geofac.createMultiPolygon(polys);
     }
 
-    private GeometryCollection parseCollection(ValueGetter data, int srid)
-    {
+    private GeometryCollection parseCollection(ValueGetter data, int srid) {
         int count = data.getInt();
         Geometry[] geoms = new Geometry[count];
         parseGeometryArray(data, geoms, srid);

--
Gitblit v0.0.0-SNAPSHOT