Package org.postgresql.geometric

# Class PGpoint

java.lang.Object
org.postgresql.util.PGobject
org.postgresql.geometric.PGpoint

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `PGBinaryObject`

public class PGpoint extends PGobject implements PGBinaryObject, Serializable, Cloneable
It maps to the point datatype in org.postgresql.

This implements a version of java.awt.Point, except it uses double to represent the coordinates.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `boolean`
  `isNull`
  True if the point represents `null::point`.
  `double`
  `x`
  The X coordinate of the point.
  `double`
  `y`
  The Y coordinate of the point.

  ### Fields inherited from class org.postgresql.util.PGobject

  `type, value`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PGpoint()`
  Required by the driver.
  `PGpoint(double x, double y)`
  `PGpoint(String value)`
  This is called mainly from the other geometric types, when a point is embedded within their definition.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  This must be overridden to allow the object to be cloned.
  `boolean`
  `equals(@Nullable Object obj)`
  This must be overridden to allow comparisons of objects.
  `@Nullable String`
  `getValue()`
  This must be overridden, to return the value of the object, in the form required by org.postgresql.
  `int`
  `hashCode()`
  Compute hash.
  `int`
  `lengthInBytes()`
  This method is called to return the number of bytes needed to store this object in the binary form required by org.postgresql.
  `void`
  `move(double x, double y)`
  Moves the point to the supplied coordinates.
  `void`
  `move(int x, int y)`
  Moves the point to the supplied coordinates.
  `void`
  `setByteValue(byte[] b, int offset)`
  This method is called to set the value of this object.
  `void`
  `setLocation(int x, int y)`
  Moves the point to the supplied coordinates.
  `void`
  `setLocation(Point p)`
  Deprecated.
  Will be removed for avoiding a dependency to the `java.desktop` module.
  `void`
  `setValue(@Nullable String s)`
  This method sets the value of this object.
  `void`
  `toBytes(byte[] b, int offset)`
  Populate the byte array with PGpoint in the binary syntax expected by org.postgresql.
  `void`
  `translate(double x, double y)`
  Translate the point by the supplied amount.
  `void`
  `translate(int x, int y)`
  Translate the point by the supplied amount.

  ### Methods inherited from class org.postgresql.util.PGobject

  `equals, getType, isNull, setType, toString`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### x

    public double x
    The X coordinate of the point.

  - ### y

    public double y
    The Y coordinate of the point.

  - ### isNull

    public boolean isNull
    True if the point represents `null::point`.

- ## Constructor Details

  - ### PGpoint

    public PGpoint(double x, double y)
    Parameters:
      `x` - coordinate
      `y` - coordinate

  - ### PGpoint

    public PGpoint(String value) throws SQLException
    This is called mainly from the other geometric types, when a point is embedded within their definition.
    Parameters:
      `value` - Definition of this point in PostgreSQL's syntax
    Throws:
      `SQLException` - if something goes wrong

  - ### PGpoint

    public PGpoint()
    Required by the driver.

- ## Method Details

  - ### setValue

    public void setValue(@Nullable String s) throws SQLException
    Description copied from class: `PGobject`
    This method sets the value of this object. It must be overridden.
    Overrides:
      `setValue` in class `PGobject`
    Parameters:
      `s` - Definition of this point in PostgreSQL's syntax
    Throws:
      `SQLException` - on conversion failure

  - ### setByteValue

    public void setByteValue(byte[] b, int offset)
    Description copied from interface: `PGBinaryObject`
    This method is called to set the value of this object.
    Specified by:
      `setByteValue` in interface `PGBinaryObject`
    Parameters:
      `b` - Definition of this point in PostgreSQL's binary syntax
      `offset` - the offset in the byte array where object data starts

  - ### equals

    public boolean equals(@Nullable Object obj)
    Description copied from class: `PGobject`
    This must be overridden to allow comparisons of objects.
    Overrides:
      `equals` in class `PGobject`
    Parameters:
      `obj` - Object to compare with
    Returns:
      true if the two points are identical

  - ### hashCode

    public int hashCode()
    Description copied from class: `PGobject`
    Compute hash. As equals() use only value. Return the same hash for the same value.
    Overrides:
      `hashCode` in class `PGobject`
    Returns:
      Value hashcode, 0 if value is null `Objects.hashCode(Object)`

  - ### getValue

    public @Nullable String getValue()
    Description copied from class: `PGobject`
    This must be overridden, to return the value of the object, in the form required by org.postgresql.
    Overrides:
      `getValue` in class `PGobject`
    Returns:
      the PGpoint in the syntax expected by org.postgresql

  - ### lengthInBytes

    public int lengthInBytes()
    Description copied from interface: `PGBinaryObject`
    This method is called to return the number of bytes needed to store this object in the binary form required by org.postgresql.
    Specified by:
      `lengthInBytes` in interface `PGBinaryObject`
    Returns:
      the number of bytes needed to store this object

  - ### toBytes

    public void toBytes(byte[] b, int offset)
    Populate the byte array with PGpoint in the binary syntax expected by org.postgresql.
    Specified by:
      `toBytes` in interface `PGBinaryObject`
    Parameters:
      `b` - the array to store the value, it is guaranteed to be at lest `PGBinaryObject.lengthInBytes()` in size.
      `offset` - the offset in the byte array where object must be stored

  - ### translate

    public void translate(int x, int y)
    Translate the point by the supplied amount.
    Parameters:
      `x` - integer amount to add on the x axis
      `y` - integer amount to add on the y axis

  - ### translate

    public void translate(double x, double y)
    Translate the point by the supplied amount.
    Parameters:
      `x` - double amount to add on the x axis
      `y` - double amount to add on the y axis

  - ### move

    public void move(int x, int y)
    Moves the point to the supplied coordinates.
    Parameters:
      `x` - integer coordinate
      `y` - integer coordinate

  - ### move

    public void move(double x, double y)
    Moves the point to the supplied coordinates.
    Parameters:
      `x` - double coordinate
      `y` - double coordinate

  - ### setLocation

    public void setLocation(int x, int y)
    Moves the point to the supplied coordinates. refer to java.awt.Point for description of this.
    Parameters:
      `x` - integer coordinate
      `y` - integer coordinate
    See Also:
      - `Point`

  - ### setLocation

    @Deprecated public void setLocation(Point p)
    Deprecated.
    Will be removed for avoiding a dependency to the `java.desktop` module.
    Moves the point to the supplied java.awt.Point refer to java.awt.Point for description of this.
    Parameters:
      `p` - Point to move to
    See Also:
      - `Point`

  - ### clone

    public Object clone() throws CloneNotSupportedException
    Description copied from class: `PGobject`
    This must be overridden to allow the object to be cloned.
    Overrides:
      `clone` in class `PGobject`
    Throws:
      `CloneNotSupportedException`