Class InstanceBuilder<T>

java.lang.Object
com.tangosol.coherence.config.builder.InstanceBuilder<T>
All Implemented Interfaces:
ParameterizedBuilder<T>, ParameterizedBuilder.ReflectionSupport, ExternalizableLite, PortableObject, Serializable

An 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);

Since:
Coherence 12.1.2
Author:
bo 2011.06.24
See Also:
  • Constructor Details

    • InstanceBuilder

      public InstanceBuilder()
      Construct an InstanceBuilder.
    • InstanceBuilder

      public InstanceBuilder(Class<?> clzToRealize, Object... aConstructorParameters)
      Constructs a InstanceBuilder that will realize an instance of the specified Class.
      Parameters:
      clzToRealize - the Class to realize
      aConstructorParameters - the optional constructor parameters
    • InstanceBuilder

      public InstanceBuilder(Expression<String> exprClassName, Object... aConstructorParameters)
      Constructs a InstanceBuilder that will realize an instance of the specifically named class.
      Parameters:
      exprClassName - an Expression that when evaluated will return the class name to realize
      aConstructorParameters - the optional constructor parameters
    • InstanceBuilder

      public InstanceBuilder(String sClassName, Object... aConstructorParameters)
      Constructs a InstanceBuilder that will realize an instance of the specifically named class.
      Parameters:
      sClassName - the name of the class to realize
      aConstructorParameters - the optional constructor parameters
  • Method Details

    • 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 the Expression that when evaluated will produce the name of the class to realize.
      Parameters:
      exprClassName - the Expression
    • getConstructorParameterList

      public ParameterList getConstructorParameterList()
      Return the ParameterList 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 the ParameterList to be used for constructor parameters when realizing the class.
      Parameters:
      listParameters - the ParameterList 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 provided ParameterResolver to resolve values any referenced Parameters.
      Specified by:
      realize in interface ParameterizedBuilder<T>
      Parameters:
      resolver - the ParameterResolver for resolving named Parameters
      loader - the ClassLoader for loading any necessary classes and if null the ClassLoader used to load the builder will be used instead
      listConstructorParameters - an optional ParameterList (may be null) 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 the 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.

      Specified by:
      realizes in interface ParameterizedBuilder.ReflectionSupport
      Parameters:
      clzClass - the expected type
      resolver - the ParameterResolver to use for resolving necessary Parameters
      loader - the ClassLoader for loading any necessary classes and if null the ClassLoader used to load the builder will be used instead
      Returns:
      true if the ParameterizedBuilder will realize an instance of the class, false otherwise
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • 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 interface ExternalizableLite
      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 occurs
    • 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 interface ExternalizableLite
      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 interface PortableObject
      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 interface PortableObject
      Parameters:
      writer - the PofWriter to which to write the object's state
      Throws:
      IOException - if an I/O error occurs