org.apache.lucene.util
Class SetOnce<T>

java.lang.Object
  extended by 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
static class SetOnce.AlreadySetException
          Thrown when set(Object) is called more than once.
 
Constructor Summary
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
 SetOnce<T> clone()
           
 T get()
          Returns the object set by set(Object).
 void set(T obj)
          Sets the given object.
 
Methods inherited from class java.lang.Object
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).


clone

public SetOnce<T> clone()
Overrides:
clone in class Object


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