public class InstanceBuilder<T> extends Object implements ParameterizedBuilder<T>, ParameterizedBuilder.ReflectionSupport, ExternalizableLite, PortableObject
InstanceBuilder is a ParameterizedBuilder implementation that additionally supports injection
based on Coherence <instance%gt; or <class-scheme> configurations.
While supporting injection this class may also be used in situations where a ParameterizedBuilder is
required (must be passed) for a known type of the class.
For example, if you need a ParameterizedBuilder for a java.awt.Point class, but you don't
want to create an anonymous ParameterizedBuilder implementation for a Point, you can use the following:
new InstanceBuilder(Point.class);
Further you may also provide constructor parameters as follows:
new InstanceBuilder(Point.class, 10, 12);
ParameterizedBuilder.ReflectionSupport| Constructor and Description |
|---|
InstanceBuilder()
Construct an
InstanceBuilder. |
InstanceBuilder(Class<?> clzToRealize,
Object... aConstructorParameters)
Constructs a
InstanceBuilder that will realize an instance of the specified Class. |
InstanceBuilder(com.tangosol.config.expression.Expression<String> exprClassName,
Object... aConstructorParameters)
Constructs a
InstanceBuilder that will realize an instance of the specifically named class. |
InstanceBuilder(String sClassName,
Object... aConstructorParameters)
Constructs a
InstanceBuilder that will realize an instance of the specifically named class. |
| Modifier and Type | Method and Description |
|---|---|
com.tangosol.config.expression.Expression<String> |
getClassName()
Return the expression representing the name of the class this builder
will attempt to instantiate.
|
ParameterList |
getConstructorParameterList()
Return the
ParameterList to be used for constructor parameters
when realizing the class. |
void |
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from
the passed DataInput object.
|
void |
readExternal(PofReader reader)
Restore the contents of a user type instance by reading its state using
the specified PofReader object.
|
T |
realize(com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader,
ParameterList listConstructorParameters)
Realizes (creates if necessary) an instance of a object of type T, using the provided
ParameterResolver
to resolve values any referenced Parameters. |
boolean |
realizes(Class<?> clzClass,
com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader)
Determines if the
ParameterizedBuilder will realize an instance of the specified class (without
requiring the builder to actually realize an object). |
void |
setClassName(com.tangosol.config.expression.Expression<String> exprClassName)
Sets the
Expression that when evaluated will produce the name of the class to realize. |
void |
setConstructorParameterList(ParameterList listParameters)
Sets the
ParameterList to be used for constructor parameters when realizing the class. |
String |
toString() |
void |
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into
the passed DataOutput object.
|
void |
writeExternal(PofWriter writer)
Save the contents of a POF user type instance by writing its state using
the specified PofWriter object.
|
public InstanceBuilder()
InstanceBuilder.public InstanceBuilder(Class<?> clzToRealize, Object... aConstructorParameters)
InstanceBuilder that will realize an instance of the specified Class.clzToRealize - the Class to realizeaConstructorParameters - the optional constructor parameterspublic InstanceBuilder(com.tangosol.config.expression.Expression<String> exprClassName, Object... aConstructorParameters)
InstanceBuilder that will realize an instance of the specifically named class.exprClassName - an Expression that when evaluated will return the class name to realizeaConstructorParameters - the optional constructor parameterspublic InstanceBuilder(String sClassName, Object... aConstructorParameters)
InstanceBuilder that will realize an instance of the specifically named class.sClassName - the name of the class to realizeaConstructorParameters - the optional constructor parameterspublic com.tangosol.config.expression.Expression<String> getClassName()
@Injectable(value="class-name") public void setClassName(com.tangosol.config.expression.Expression<String> exprClassName)
Expression that when evaluated will produce the name of the class to realize.exprClassName - the Expressionpublic ParameterList getConstructorParameterList()
ParameterList to be used for constructor parameters
when realizing the class.ParameterList for the constructor@Injectable(value="init-params") public void setConstructorParameterList(ParameterList listParameters)
ParameterList to be used for constructor parameters when realizing the class.listParameters - the ParameterList for the constructorpublic T realize(com.tangosol.config.expression.ParameterResolver resolver, ClassLoader loader, ParameterList listConstructorParameters)
ParameterResolver
to resolve values any referenced Parameters.realize in interface ParameterizedBuilder<T>resolver - the ParameterResolver for resolving named Parametersloader - the ClassLoader for loading any necessary classes and if null the
ClassLoader used to load the builder will be used insteadlistConstructorParameters - an optional ParameterList (may be null) to be used for realizing the
instance, eg: used as constructor parameterspublic boolean realizes(Class<?> clzClass, com.tangosol.config.expression.ParameterResolver resolver, ClassLoader loader)
ParameterizedBuilder will realize an instance of the specified class (without
requiring the builder to actually realize an object).
This method is synonymous with the Java keyword instanceof but allows dynamic runtime type
querying of the types of objects a builder may realize.
realizes in interface ParameterizedBuilder.ReflectionSupportclzClass - the expected typeresolver - the ParameterResolver to use for resolving necessary Parametersloader - the ClassLoader for loading any necessary classes and if null the
ClassLoader used to load the builder will be used insteadtrue if the ParameterizedBuilder will realize an instance of the class,
false otherwisepublic void readExternal(DataInput in) throws IOException
readExternal in interface ExternalizableLitein - the DataInput stream to read data from in order to restore
the state of this objectIOException - if an I/O exception occursNotActiveException - if the object is not in its initial
state, and therefore cannot be deserialized intopublic void writeExternal(DataOutput out) throws IOException
writeExternal in interface ExternalizableLiteout - the DataOutput stream to write the state of this object toIOException - if an I/O exception occurspublic void readExternal(PofReader reader) throws IOException
readExternal in interface PortableObjectreader - the PofReader from which to read the object's stateIOException - if an I/O error occurspublic void writeExternal(PofWriter writer) throws IOException
writeExternal in interface PortableObjectwriter - the PofWriter to which to write the object's stateIOException - if an I/O error occurs