org.apache.lucene.util

## Class SetOnce<T>

- java.lang.Object
- - org.apache.lucene.util.SetOnce<T>

- All Implemented Interfaces:
    Cloneable

      public final class SetOnce<T>
      extends Object
      implements Cloneable

  A convenient class which offers a semi-immutable object wrapper implementation which allows one to set the value of an object exactly once, and retrieve it many times. If `set(Object)` is called more than once, `SetOnce.AlreadySetException` is thrown and the operation will fail.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SetOnce.AlreadySetException` Thrown when `set(Object)` is called more than once.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SetOnce()` A default constructor which does not set the internal object, and allows setting it by calling `set(Object)`.
    `SetOnce(T obj)` Creates a new instance with the internal object set to the given object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `get()` Returns the object set by `set(Object)`.
    `void` | `set(T obj)` Sets the given object.

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

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

- - ### Constructor Detail

    - #### SetOnce

          public SetOnce()

      A default constructor which does not set the internal object, and allows setting it by calling `set(Object)`.

    - #### SetOnce

          public SetOnce(T obj)

      Creates a new instance with the internal object set to the given object. Note that any calls to `set(Object)` afterwards will result in `SetOnce.AlreadySetException`
      Throws:
        `SetOnce.AlreadySetException` - if called more than once
      See Also:
        `set(Object)`

  - ### Method Detail

    - #### set

          public final void set(T obj)

      Sets the given object. If the object has already been set, an exception is thrown.

    - #### get

          public final T get()

      Returns the object set by `set(Object)`.

Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.