Package net.postgis.jdbc.geometry.binary

# Class BinaryParser

java.lang.Object
net.postgis.jdbc.geometry.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
Constructor
Description
`BinaryParser()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### BinaryParser

public BinaryParser()

## Method Details

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