Class DecoratorHeaplet
- java.lang.Object
-
- org.forgerock.openig.decoration.helper.DecoratorHeaplet
-
- All Implemented Interfaces:
Heaplet
- Direct Known Subclasses:
BaseUriDecorator.Heaplet,CaptureDecorator.Heaplet,TimerDecorator.Heaplet
public abstract class DecoratorHeaplet extends Object implements Heaplet
A base class for decorator heaplets.It supports an additional
start()lifecycle method that is performed within the(Name, JsonValue, Heap)method.This class does not attempt to perform any heap object extraction/resolution when creating objects.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.forgerock.json.JsonValueconfigThe heaplet's object configuration object.protected HeapheapWhere objects should be put and where object dependencies should be retrieved.protected NamenameThe fully qualified name of the object to be created.protected DecoratorobjectThe object created by the heaplet'screate()method.
-
Constructor Summary
Constructors Modifier Constructor Description protectedDecoratorHeaplet()Can only be called by sub-classes.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Decoratorcreate()Called to request the heaplet create an object.Objectcreate(Name name, org.forgerock.json.JsonValue config, Heap heap)Called to request the heaplet to create an object.voiddestroy()Called to indicate that the object created by the heaplet is going to be dereferenced.voidstart()Called to request the heaplet start an object.
-
-
-
Method Detail
-
create
public Object create(Name name, org.forgerock.json.JsonValue config, Heap heap) throws HeapException
Description copied from interface:HeapletCalled to request the heaplet to create an object.- Specified by:
createin interfaceHeaplet- Parameters:
name- the name of the object to be created.config- the heaplet's configuration object.heap- the heap where object dependencies can be retrieved.- Returns:
- the object created by the heaplet.
- Throws:
HeapException- if an exception occurred during creation of the object or any of its dependencies.
-
destroy
public void destroy()
Description copied from interface:HeapletCalled to indicate that the object created by the heaplet is going to be dereferenced. This gives the heaplet an opportunity to free any resources that are being held prior to its dereference.
-
create
public abstract Decorator create() throws HeapException
Called to request the heaplet create an object. Called bycreate(Name, JsonValue, Heap)after initializing the protected field members. Implementations should parse configuration but not acquire resources, start threads, or log any initialization messages. These tasks should be performed by thestart()method.- Returns:
- The created object.
- Throws:
HeapException- if an exception occurred during creation of the heap object or any of its dependencies.org.forgerock.json.JsonValueException- if the heaplet (or one of its dependencies) has a malformed configuration.
-
start
public void start() throws HeapExceptionCalled to request the heaplet start an object. Called bycreate(Name, JsonValue, Heap)after creating and configuring the object. Implementations should override this method if they need to acquire resources, start threads, or log any initialization messages.- Throws:
HeapException- if an exception occurred while starting the heap object or any of its dependencies.
-
-