Package org.opensaml.core.xml.util
Class AbstractSimpleSingletonFactory<Input,Output>
java.lang.Object
org.opensaml.core.xml.util.AbstractSingletonFactory<Input,Output>
org.opensaml.core.xml.util.AbstractSimpleSingletonFactory<Input,Output>
- Type Parameters:
Input
- the factory input class typeOutput
- the factory output class type
- All Implemented Interfaces:
SingletonFactory<Input,
Output>
public abstract class AbstractSimpleSingletonFactory<Input,Output>
extends AbstractSingletonFactory<Input,Output>
A simple implementation of
SingletonFactory
.
A WeakHashMap
is used as the underlying store. This ensures that if the input class
instance become otherwise unused (weakly reachable), the input class instance key used
within the factory will not prevent the input class instance from being garbage-collected,
thereby preventing a memory leak.
NOTE: If the output class instance holds a strong or soft reference to the input class,
do not use this factory. See instead AbstractWrappedSingletonFactory
. Usage of this
class in that scenario will result in a memory leak, as the input class instance will never
become weakly reachable and therefore never garbage collected.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class org.opensaml.core.xml.util.AbstractSingletonFactory
createNewInstance, getInstance
-
Field Details
-
map
Storage for the factory.
-
-
Constructor Details
-
AbstractSimpleSingletonFactory
public AbstractSimpleSingletonFactory()Constructor.
-
-
Method Details
-
get
Get the output instance currently associated with the input instance.- Specified by:
get
in classAbstractSingletonFactory<Input,
Output> - Parameters:
input
- the input instance key- Returns:
- the output instance which corresponds to the input instance, or null if not present
-
put
Store the input and output instance association.- Specified by:
put
in classAbstractSingletonFactory<Input,
Output> - Parameters:
input
- the input instance keyoutput
- the output instance value
-