Class InstanceBuilder<T>
- java.lang.Object
-
- com.tangosol.coherence.config.builder.InstanceBuilder<T>
-
- All Implemented Interfaces:
ParameterizedBuilder<T>
,ParameterizedBuilder.ReflectionSupport
,ExternalizableLite
,PortableObject
,Serializable
public class InstanceBuilder<T> extends Object implements ParameterizedBuilder<T>, ParameterizedBuilder.ReflectionSupport, ExternalizableLite, PortableObject
AnInstanceBuilder
is aParameterizedBuilder
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 anonymousParameterizedBuilder
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);
- Since:
- Coherence 12.1.2
- Author:
- bo 2011.06.24
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.tangosol.coherence.config.builder.ParameterizedBuilder
ParameterizedBuilder.ReflectionSupport
-
-
Constructor Summary
Constructors Constructor Description InstanceBuilder()
Construct anInstanceBuilder
.InstanceBuilder(Expression<String> exprClassName, Object... aConstructorParameters)
Constructs aInstanceBuilder
that will realize an instance of the specifically named class.InstanceBuilder(Class<?> clzToRealize, Object... aConstructorParameters)
Constructs aInstanceBuilder
that will realize an instance of the specifiedClass
.InstanceBuilder(String sClassName, Object... aConstructorParameters)
Constructs aInstanceBuilder
that will realize an instance of the specifically named class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Expression<String>
getClassName()
Return the expression representing the name of the class this builder will attempt to instantiate.ParameterList
getConstructorParameterList()
Return theParameterList
to be used for constructor parameters when realizing the class.void
readExternal(PofReader reader)
Restore the contents of a user type instance by reading its state using the specified PofReader object.void
readExternal(DataInput in)
Restore the contents of this object by loading the object's state from the passed DataInput object.T
realize(ParameterResolver resolver, ClassLoader loader, ParameterList listConstructorParameters)
Realizes (creates if necessary) an instance of a object of type T, using the providedParameterResolver
to resolve values any referencedParameter
s.boolean
realizes(Class<?> clzClass, ParameterResolver resolver, ClassLoader loader)
Determines if theParameterizedBuilder
will realize an instance of the specified class (without requiring the builder to actually realize an object).void
setClassName(Expression<String> exprClassName)
Sets theExpression
that when evaluated will produce the name of the class to realize.void
setConstructorParameterList(ParameterList listParameters)
Sets theParameterList
to be used for constructor parameters when realizing the class.String
toString()
void
writeExternal(PofWriter writer)
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.void
writeExternal(DataOutput out)
Save the contents of this object by storing the object's state into the passed DataOutput object.
-
-
-
Constructor Detail
-
InstanceBuilder
public InstanceBuilder()
Construct anInstanceBuilder
.
-
InstanceBuilder
public InstanceBuilder(Class<?> clzToRealize, Object... aConstructorParameters)
Constructs aInstanceBuilder
that will realize an instance of the specifiedClass
.- Parameters:
clzToRealize
- theClass
to realizeaConstructorParameters
- the optional constructor parameters
-
InstanceBuilder
public InstanceBuilder(Expression<String> exprClassName, Object... aConstructorParameters)
Constructs aInstanceBuilder
that will realize an instance of the specifically named class.- Parameters:
exprClassName
- anExpression
that when evaluated will return the class name to realizeaConstructorParameters
- the optional constructor parameters
-
InstanceBuilder
public InstanceBuilder(String sClassName, Object... aConstructorParameters)
Constructs aInstanceBuilder
that will realize an instance of the specifically named class.- Parameters:
sClassName
- the name of the class to realizeaConstructorParameters
- the optional constructor parameters
-
-
Method Detail
-
getClassName
public Expression<String> getClassName()
Return the expression representing the name of the class this builder will attempt to instantiate.- Returns:
- an expression representing the class name
-
setClassName
@Injectable("class-name") public void setClassName(Expression<String> exprClassName)
Sets theExpression
that when evaluated will produce the name of the class to realize.- Parameters:
exprClassName
- theExpression
-
getConstructorParameterList
public ParameterList getConstructorParameterList()
Return theParameterList
to be used for constructor parameters when realizing the class.- Returns:
- the
ParameterList
for the constructor
-
setConstructorParameterList
@Injectable("init-params") public void setConstructorParameterList(ParameterList listParameters)
Sets theParameterList
to be used for constructor parameters when realizing the class.- Parameters:
listParameters
- theParameterList
for the constructor
-
realize
public T realize(ParameterResolver resolver, ClassLoader loader, ParameterList listConstructorParameters)
Realizes (creates if necessary) an instance of a object of type T, using the providedParameterResolver
to resolve values any referencedParameter
s.- Specified by:
realize
in interfaceParameterizedBuilder<T>
- Parameters:
resolver
- theParameterResolver
for resolving namedParameter
sloader
- theClassLoader
for loading any necessary classes and ifnull
theClassLoader
used to load the builder will be used insteadlistConstructorParameters
- an optionalParameterList
(may benull
) to be used for realizing the instance, eg: used as constructor parameters- Returns:
- an instance of T
-
realizes
public boolean realizes(Class<?> clzClass, ParameterResolver resolver, ClassLoader loader)
Determines if theParameterizedBuilder
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.- Specified by:
realizes
in interfaceParameterizedBuilder.ReflectionSupport
- Parameters:
clzClass
- the expected typeresolver
- theParameterResolver
to use for resolving necessaryParameter
sloader
- theClassLoader
for loading any necessary classes and ifnull
theClassLoader
used to load the builder will be used instead- Returns:
true
if theParameterizedBuilder
will realize an instance of the class,false
otherwise
-
readExternal
public void readExternal(DataInput in) throws IOException
Restore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
readExternal
in interfaceExternalizableLite
- Parameters:
in
- the DataInput stream to read data from in order to restore the state of this object- Throws:
IOException
- if an I/O exception occursNotActiveException
- if the object is not in its initial state, and therefore cannot be deserialized into
-
writeExternal
public void writeExternal(DataOutput out) throws IOException
Save the contents of this object by storing the object's state into the passed DataOutput object.- Specified by:
writeExternal
in interfaceExternalizableLite
- Parameters:
out
- the DataOutput stream to write the state of this object to- Throws:
IOException
- if an I/O exception occurs
-
readExternal
public void readExternal(PofReader reader) throws IOException
Restore the contents of a user type instance by reading its state using the specified PofReader object.- Specified by:
readExternal
in interfacePortableObject
- Parameters:
reader
- the PofReader from which to read the object's state- Throws:
IOException
- if an I/O error occurs
-
writeExternal
public void writeExternal(PofWriter writer) throws IOException
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.- Specified by:
writeExternal
in interfacePortableObject
- Parameters:
writer
- the PofWriter to which to write the object's state- Throws:
IOException
- if an I/O error occurs
-
-