Package org.postgresql.util

# Class PGobject

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

All Implemented Interfaces:
  `Serializable`, `Cloneable`

Direct Known Subclasses:
  `PGbox`, `PGcircle`, `PGInterval`, `PGline`, `PGlseg`, `PGmoney`, `PGpath`, `PGpoint`, `PGpolygon`

public class PGobject extends Object implements Serializable, Cloneable
PGobject is a class used to describe unknown types An unknown type is any type that is unknown by JDBC Standards.

See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`protected @Nullable String`
`type`
`protected @Nullable String`
`value`

## Constructor Summary

Constructors
Constructor
Description
`PGobject()`
This is called by org.postgresql.Connection.getObject() to create the object.

## 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.
`protected static boolean`
`equals(@Nullable Object a, @Nullable Object b)`
`final String`
`getType()`
As this cannot change during the life of the object, it's final.
`@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.
`boolean`
`isNull()`
Returns true if the current object wraps `null` value.
`final void`
`setType(String type)`
This method sets the type of this object.
`void`
`setValue(@Nullable String value)`
This method sets the value of this object.
`String`
`toString()`
This is defined here, so user code need not override it.

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

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

## Field Details

### type

protected @Nullable String type

### value

protected @Nullable String value

## Constructor Details

### PGobject

public PGobject()
This is called by org.postgresql.Connection.getObject() to create the object.

## Method Details

### setType

public final void setType(String type)

This method sets the type of this object.

It should not be extended by subclasses, hence it is final

Parameters:
  `type` - a string describing the type of the object

### setValue

public void setValue(@Nullable String value) throws SQLException
This method sets the value of this object. It must be overridden.

Parameters:
  `value` - a string representation of the value of the object
Throws:
  `SQLException` - thrown if value is invalid for this type

### getType

public final String getType()
As this cannot change during the life of the object, it's final.

Returns:
  the type name of this object

### getValue

public @Nullable String getValue()
This must be overridden, to return the value of the object, in the form required by org.postgresql.

Returns:
  the value of this object

### isNull

public boolean isNull()
Returns true if the current object wraps `null` value. This might be helpful

Returns:
  true if the current object wraps `null` value.

### equals

public boolean equals(@Nullable Object obj)
This must be overridden to allow comparisons of objects.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - Object to compare with
Returns:
  true if the two boxes are identical

### clone

public Object clone() throws CloneNotSupportedException
This must be overridden to allow the object to be cloned.

Overrides:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`

### toString

public String toString()
This is defined here, so user code need not override it.

Overrides:
  `toString` in class `Object`
Returns:
  the value of this object, in the syntax expected by org.postgresql

### hashCode

public int hashCode()
Compute hash. As equals() use only value. Return the same hash for the same value.

Overrides:
  `hashCode` in class `Object`
Returns:
  Value hashcode, 0 if value is null `Objects.hashCode(Object)`

### equals

protected static boolean equals(@Nullable Object a, @Nullable Object b)