Package org.postgis.binary

## Class BinaryParser

- java.lang.Object
- - org.postgis.binary.BinaryParser

    public class BinaryParser
    extends 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 <markus.schaber@logix-tt.com>

### Constructor Summary

Constructors
`BinaryParser()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Geometry` `parse​(byte[] value)` Parse a binary encoded geometry.
`Geometry` `parse​(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​(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.)

Parameters:
  `value` - String containing the data to be parsed
Returns:
  resulting geometry for the parsed data

#### 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.)

Parameters:
  `value` - byte array containing the data to be parsed
Returns:
  resulting geometry for the parsed data

#### parseGeometry

    protected Geometry parseGeometry​(ValueGetter data)

Parse a geometry starting at offset.

Parameters:
  `data` - ValueGetter with the data to be parsed
Returns:
  the parsed geometry