org.firebirdsql.jaybird.props.def

## Class ConnectionProperty

- java.lang.Object
- - org.firebirdsql.jaybird.props.def.ConnectionProperty

    public final class ConnectionProperty
    extends java.lang.Object

A Jaybird connection property.

Holds information like name, aliases, default value etc for a Jaybird connection property.

Since:
  5
Author:
  Mark Rotteveel

### Nested Class Summary

Nested Classes
`static class` `ConnectionProperty.Builder`

### Field Summary

Fields
`static int` `NO_DPB_ITEM`
`static int` `NO_SPB_ITEM`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`java.util.List<java.lang.String>` `aliases()` Optional aliases (secondary names) for this property.
`static ConnectionProperty.Builder` `builder()` Creates a connection property builder.
`static ConnectionProperty.Builder` `builder(java.lang.String name)`
`java.util.List<java.lang.String>` `choices()` Possible values for this property.
`int` `dpbItem()` Database parameter buffer (DPB) item associated with this property.
`boolean` `equals(java.lang.Object o)`
`boolean` `hasDpbItem()`
`int` `hashCode()`
`boolean` `hasSpbItem()`
`boolean` `isIdenticalTo(ConnectionProperty other)` Checks if the provided object is identical to this object.
`java.lang.String` `name()`
`DpbType` `pbType()` Type of the value when sent in the database (or service attach) parameter buffer.
`int` `spbItem()` Service parameter buffer (SPB) item associated with this property.
`java.lang.String` `toString()`
`ConnectionPropertyType` `type()` Type of the property.
`static ConnectionProperty` `unknown(java.lang.String name)` Creates an unknown connection property.
`<T> T` `validate(T value)` Validates `value` for this property.

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

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

### Field Detail

#### NO_DPB_ITEM

    public static final int NO_DPB_ITEM

See Also:
  Constant Field Values

#### NO_SPB_ITEM

    public static final int NO_SPB_ITEM

See Also:
  Constant Field Values

### Method Detail

#### builder

    public static ConnectionProperty.Builder builder()

Creates a connection property builder.

Returns:
  builder

#### builder

    public static ConnectionProperty.Builder builder(java.lang.String name)

#### unknown

    public static ConnectionProperty unknown(java.lang.String name)

Creates an unknown connection property.

An unknown connection property was either not defined but used, or can be used for lookups (given the definition of equals and hashcode). An unknown connection property returned by this method always applies type `ConnectionPropertyType.STRING`

Parameters:
  `name` - Property name
Returns:
  An unknown property with the specified name

#### name

    public java.lang.String name()

Returns:
  name of the property

#### aliases

    public java.util.List<java.lang.String> aliases()

Optional aliases (secondary names) for this property.

Aliases are alternative names for the property, either for backwards compatibility or for ease of use.

Returns:
  aliases for this property, empty means no aliases
See Also:
  `name()`

#### type

    public ConnectionPropertyType type()

Type of the property.

Returns:
  type of the property

#### choices

    public java.util.List<java.lang.String> choices()

Possible values for this property.

Returns:
  possible values for this property, or empty when unrestricted

#### validate

    public <T> T validate(T value)

Validates `value` for this property.

Parameters:
  `value` - value to validate
Returns:
  `value` when validation passed
Throws:
  `java.lang.IllegalArgumentException` - When `value` is not a valid value for this property

#### pbType

    public DpbType pbType()

Type of the value when sent in the database (or service attach) parameter buffer.

Returns:
  type for the parameter buffer

#### dpbItem

    public int dpbItem()

Database parameter buffer (DPB) item associated with this property.

Returns:
  database parameter buffer item, or `NO_DPB_ITEM` if no item is associated
See Also:
  `hasDpbItem()`

#### hasDpbItem

    public boolean hasDpbItem()

Returns:
  `true` if this property has a DPB item
See Also:
  `dpbItem()`

#### spbItem

    public int spbItem()

Service parameter buffer (SPB) item associated with this property.

Returns:
  service parameter buffer item, or `NO_SPB_ITEM` if no item is associated
See Also:
  `hasSpbItem()`

#### hasSpbItem

    public boolean hasSpbItem()

Returns:
  `true` if this property has an SPB item
See Also:
  `spbItem()`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### equals

    public boolean equals(java.lang.Object o)

Equality (and hash code) only considers the `name`.

Use `isIdenticalTo(ConnectionProperty)` for checking full equality.

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

The hashcode (and equals) only considers the `name`.

Overrides:
  `hashCode` in class `java.lang.Object`

#### isIdenticalTo

    public boolean isIdenticalTo(ConnectionProperty other)

Checks if the provided object is identical to this object.

This supplements `equals(Object)` which only checks the `name`.

Parameters:
  `other` - Other connection property object
Returns:
  `true` if this is the same object or all fields have the same value, `false` otherwise