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 Parameter s. |
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 Expression
public 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 Parameter
s.realize
in interface ParameterizedBuilder<T>
resolver
- the ParameterResolver
for resolving named Parameter
sloader
- 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.ReflectionSupport
clzClass
- the expected typeresolver
- the ParameterResolver
to use for resolving necessary Parameter
sloader
- 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 ExternalizableLite
in
- 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 ExternalizableLite
out
- 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 PortableObject
reader
- 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 PortableObject
writer
- the PofWriter to which to write the object's stateIOException
- if an I/O error occurs