org.postgis.binary
Class BinaryParser

java.lang.Object
  extended by org.postgis.binary.BinaryParser

public class BinaryParser
extends java.lang.Object

Parse binary representation of geometries. 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

Constructor Summary
BinaryParser()
           
 
Method Summary
 Geometry parse(byte[] value)
          Parse a binary encoded geometry.
 Geometry parse(java.lang.String value)
          Parse a hex encoded geometry Is synchronized to protect offset counter.
protected  Geometry parseGeometry(ValueGetter data)
          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

BinaryParser

public BinaryParser()
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 Geometry parse(java.lang.String value)
Parse a hex encoded geometry Is synchronized to protect offset counter. (Unfortunately, Java does not have neither call by reference nor multiple return values.)


parse

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


parseGeometry

protected Geometry parseGeometry(ValueGetter data)
Parse a geometry starting at offset.