Package oracle.kv.table

# Class WriteOptions

java.lang.Object
oracle.kv.table.WriteOptions

All Implemented Interfaces:
  `Cloneable`

Direct Known Subclasses:
  `BulkWriteOptions`

public class WriteOptions extends Object implements Cloneable
WriteOptions is passed to store operations that can update the store to specify non-default behavior relating to durability, timeouts and expiry operations.

The default behavior is configured when a store is opened using `KVStoreConfig`.

Since:
  3.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WriteOptions()`
  Creates a `WriteOptions` with default values.
  `WriteOptions(Durability durability, long timeout, TimeUnit timeoutUnit)`
  Creates a `WriteOptions` with the specified parameters.
  `WriteOptions(WriteOptions options)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  `Durability`
  `getDurability()`
  Returns the durability associated with the operation.
  `int`
  `getIdentityCacheSize()`
  Gets the number of generated identity values that are requested from the server during a put.
  `long`
  `getTimeout()`
  Returns the timeout, which is an upper bound on the time interval for processing the operation.
  `TimeUnit`
  `getTimeoutUnit()`
  Returns the unit of the timeout parameter.
  `boolean`
  `getUpdateTTL()`
  Returns true if the absolute expiration time is to be modified during update operations.
  `WriteOptions`
  `setDurability(Durability durability)`
  Sets durability of write operation.
  `WriteOptions`
  `setIdentityCacheSize(int identityCacheSize)`
  Sets the number of generated identity values that are requested from the server during a put.
  `WriteOptions`
  `setTimeout(long timeout, TimeUnit timeoutUnit)`
  Sets timeout for write operation.
  `WriteOptions`
  `setUpdateTTL(boolean flag)`
  Sets whether absolute expiration time will be modified during update.
  `String`
  `toString()`

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

  `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### WriteOptions

    public WriteOptions()
    Creates a `WriteOptions` with default values. Same as WriteOptions(null, 0, null)
    Since:
      4.0
    See Also:
      - `WriteOptions(Durability, long, TimeUnit)`

  - ### WriteOptions

    public WriteOptions(Durability durability, long timeout, TimeUnit timeoutUnit)
    Creates a `WriteOptions` with the specified parameters.

    If `durability` is `null`, the `default durability` is used.

    The `timeout` parameter is an upper bound on the time interval for processing the operation. A best effort is made not to exceed the specified limit. If zero, the `default request timeout` is used.

    If `timeout` is not 0, the `timeoutUnit` parameter must not be `null`.

    Parameters:
      `durability` - the write durability to use
      `timeout` - the timeout value to use
      `timeoutUnit` - the `TimeUnit` used by the `timeout` parameter
    Throws:
      `IllegalArgumentException` - if timeout is negative
      `IllegalArgumentException` - if timeout is > 0 and timeoutUnit is null

  - ### WriteOptions

    public WriteOptions(WriteOptions options)

- ## Method Details

  - ### setDurability

    public WriteOptions setDurability(Durability durability)
    Sets durability of write operation.
    Parameters:
      `durability` - can be null. If `null`, the `default durability` will be used.
    Returns:
      this
    Since:
      4.0

  - ### setTimeout

    public WriteOptions setTimeout(long timeout, TimeUnit timeoutUnit)
    Sets timeout for write operation.
    Parameters:
      `timeout` - the timeout value to use
      `timeoutUnit` - the `TimeUnit` used by the `timeout` parameter
    Returns:
      this
    Throws:
      `IllegalArgumentException` - if timeout is negative
      `IllegalArgumentException` - if timeout is > 0 and timeoutUnit is null
    Since:
      4.0

  - ### getDurability

    public Durability getDurability()
    Returns the durability associated with the operation.
    Returns:
      the durability or null

  - ### getTimeout

    public long getTimeout()
    Returns the timeout, which is an upper bound on the time interval for processing the operation. A best effort is made not to exceed the specified limit. If zero, the `default request timeout` is used.
    Returns:
      the timeout or zero

  - ### getTimeoutUnit

    public TimeUnit getTimeoutUnit()
    Returns the unit of the timeout parameter.
    Returns:
      the `TimeUnit` or null if the timeout has not been set.
    Since:
      4.0

  - ### setUpdateTTL

    public WriteOptions setUpdateTTL(boolean flag)
    Sets whether absolute expiration time will be modified during update. If false and the operation updates a record, the record's expiration time will not change.
    If the operation inserts a record, this parameter is ignored and the specified TTL is always applied.
    By default, this property is false. To update expiration time of an existing record, this flag must be set to true.
    Parameters:
      `flag` - set to true if the operation should update an existing record's expiration time.
    Returns:
      this
    Since:
      4.0

  - ### getUpdateTTL

    public boolean getUpdateTTL()
    Returns true if the absolute expiration time is to be modified during update operations.
    Since:
      4.0

  - ### setIdentityCacheSize

    public WriteOptions setIdentityCacheSize(int identityCacheSize)
    Sets the number of generated identity values that are requested from the server during a put. This takes precedence to the DDL identity CACHE option. Any value equal of less than 0 means that the DDL identity CACHE value is used.
    Since:
      18.3

  - ### getIdentityCacheSize

    public int getIdentityCacheSize()
    Gets the number of generated identity values that are requested from the server during a put.
    Since:
      18.3

  - ### clone

    protected Object clone() throws CloneNotSupportedException
    Overrides:
      `clone` in class `Object`
    Throws:
      `CloneNotSupportedException`
    Since:
      4.0

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`
    Since:
      4.0