org.postgis.java2d
Class ShapeBinaryParser

java.lang.Object
  extended by org.postgis.java2d.ShapeBinaryParser

public class ShapeBinaryParser
extends java.lang.Object

Parse binary representation of geometries. Currently, only text rep (hexed) implementation is tested. It should be easy to add char[] and CharSequence ByteGetter instances, although the latter one is not compatible with older jdks. I did not implement real unsigned 32-bit integers or emulate them with long, as both java Arrays and Strings currently can have only 2^31-1 elements (bytes), so we cannot even get or build Geometries with more than approx. 2^28 coordinates (8 bytes each).

Author:
Markus Schaber, markus.schaber@logix-tt.com

Constructor Summary
ShapeBinaryParser()
           
 
Method Summary
 int parse(byte[] value, java.awt.geom.GeneralPath path)
          Parse a binary encoded geometry.
 int parse(java.lang.String value, java.awt.geom.GeneralPath path)
          Parse a hex encoded geometry Is synchronized to protect offset counter.
protected  int parseGeometry(ValueGetter data, java.awt.geom.GeneralPath path)
          Parse a geometry starting at offset.
static ValueGetter valueGetterForEndian(ByteGetter bytes)
          Get the appropriate ValueGetter for my endianness
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShapeBinaryParser

public ShapeBinaryParser()
Method Detail

valueGetterForEndian

public static ValueGetter valueGetterForEndian(ByteGetter bytes)
Get the appropriate ValueGetter for my endianness

Parameters:
bytes - The appropriate Byte Getter
Returns:
the ValueGetter

parse

public int parse(java.lang.String value,
                 java.awt.geom.GeneralPath path)
Parse a hex encoded geometry Is synchronized to protect offset counter. (Unfortunately, Java does not have neither call by reference nor multiple return values.)

Returns:
a potential SRID or Geometry.UNKNOWN_SRID if not present

parse

public int parse(byte[] value,
                 java.awt.geom.GeneralPath path)
Parse a binary encoded geometry. Is synchronized to protect offset counter. (Unfortunately, Java does not have neither call by reference nor multiple return values.)

Returns:
a potential SRID or Geometry.UNKNOWN_SRID if not present

parseGeometry

protected int parseGeometry(ValueGetter data,
                            java.awt.geom.GeneralPath path)
Parse a geometry starting at offset.

Parameters:
path -