# Class ImmutableSqlParameter

java.lang.Object
com.databricks.jdbc.api.impl.ImmutableSqlParameter

All Implemented Interfaces:
  `SqlParameter`

@ParametersAreNonnullByDefault @Generated("org.immutables.processor.ProxyProcessor") @Immutable @CheckReturnValue public final class ImmutableSqlParameter extends Object implements SqlParameter
Immutable implementation of `SqlParameter`.

Use the builder to create immutable instances: `ImmutableSqlParameter.builder()`.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final class`
`ImmutableSqlParameter.Builder`
Builds instances of type `ImmutableSqlParameter`.

## Method Summary

Modifier and Type
Method
Description
`static ImmutableSqlParameter.Builder`
`builder()`
Creates a builder for `ImmutableSqlParameter`.
`int`
`cardinal()`
`static ImmutableSqlParameter`
`copyOf(SqlParameter instance)`
Creates an immutable copy of a `SqlParameter` value.
`boolean`
`equals(Object another)`
This instance is equal to all instances of `ImmutableSqlParameter` that have equal attribute values.
`int`
`hashCode()`
Computes a hash code from attributes: `value`, `type`, `cardinal`.
`String`
`toString()`
Prints the immutable value `SqlParameter` with attribute values.
`ColumnInfoTypeName`
`type()`
`Object`
`value()`
`final ImmutableSqlParameter`
`withCardinal(int value)`
Copy the current immutable object by setting a value for the `cardinal` attribute.
`final ImmutableSqlParameter`
`withType(ColumnInfoTypeName value)`
Copy the current immutable object by setting a value for the `type` attribute.
`final ImmutableSqlParameter`
`withValue(Object value)`
Copy the current immutable object by setting a value for the `value` attribute.

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

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

## Method Details

### value

@Nullable public Object value()

Specified by:
  `value` in interface `SqlParameter`
Returns:
  The value of the `value` attribute

### type

public ColumnInfoTypeName type()

Specified by:
  `type` in interface `SqlParameter`
Returns:
  The value of the `type` attribute

### cardinal

public int cardinal()

Specified by:
  `cardinal` in interface `SqlParameter`
Returns:
  The value of the `cardinal` attribute

### withValue

public final ImmutableSqlParameter withValue(@Nullable Object value)
Copy the current immutable object by setting a value for the `value` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.

Parameters:
  `value` - A new value for value (can be `null`)
Returns:
  A modified copy of the `this` object

### withType

public final ImmutableSqlParameter withType(ColumnInfoTypeName value)
Copy the current immutable object by setting a value for the `type` attribute. A value equality check is used to prevent copying of the same value by returning `this`.

Parameters:
  `value` - A new value for type
Returns:
  A modified copy of the `this` object

### withCardinal

public final ImmutableSqlParameter withCardinal(int value)
Copy the current immutable object by setting a value for the `cardinal` attribute. A value equality check is used to prevent copying of the same value by returning `this`.

Parameters:
  `value` - A new value for cardinal
Returns:
  A modified copy of the `this` object

### equals

public boolean equals(@Nullable Object another)
This instance is equal to all instances of `ImmutableSqlParameter` that have equal attribute values.

Overrides:
  `equals` in class `Object`
Returns:
  `true` if `this` is equal to `another` instance

### hashCode

public int hashCode()
Computes a hash code from attributes: `value`, `type`, `cardinal`.

Overrides:
  `hashCode` in class `Object`
Returns:
  hashCode value

### toString

public String toString()
Prints the immutable value `SqlParameter` with attribute values.

Overrides:
  `toString` in class `Object`
Returns:
  A string representation of the value

### copyOf

public static ImmutableSqlParameter copyOf(SqlParameter instance)
Creates an immutable copy of a `SqlParameter` value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.

Parameters:
  `instance` - The instance to copy
Returns:
  A copied immutable SqlParameter instance

### builder

public static ImmutableSqlParameter.Builder builder()
Creates a builder for `ImmutableSqlParameter`.

     ImmutableSqlParameter.builder()
        .value(Object | null) // nullable value
        .type(com.databricks.jdbc.model.core.ColumnInfoTypeName) // required type
        .cardinal(int) // required cardinal
        .build();

Returns:
  A new ImmutableSqlParameter builder