Package org.drasyl.util
Class InternPool<T>
java.lang.Object
org.drasyl.util.InternPool<T>
- Type Parameters:
T
- Type of objects in the pool
Represents a pool of unique objects of type
T
. Should only be used if objects of type
T
are immutable and have a Object.equals(Object)
implementation, which returns
true
only if both objects have the same content.
Inspired by: https://github.com/verhas/intern
-
Constructor Summary
-
Method Summary
-
Constructor Details
-
InternPool
public InternPool()
-
-
Method Details
-
intern
Returns a canonical representation for the object.A pool of objects of type
T
, initially empty, is maintained privately by this class.When the intern method is invoked, if the pool already contains an object equal to
object
as determined by theObject.equals(Object)
method, then the object from the pool is returned. Otherwise,object
is added to the pool and a reference toobject
is returned.It follows that for any two objects
a
andb
,intern(a) == intern(b)
istrue
if and only ifa.equals(b)
istrue
.- Returns:
- an object that has the same contents as
object
, but is guaranteed to be from a pool of unique objects of typeT
.
-