Class PrototypeFactory<T>

java.lang.Object
org.refcodes.factory.PrototypeFactory<T>
All Implemented Interfaces:
Serializable, Factory<T>, TypeFactory<T>, org.refcodes.mixin.TypeAccessor<T>

public class PrototypeFactory<T> extends Object implements TypeFactory<T>, Serializable
The PrototypeFactory creates instances of a specific type from a prototype instance. Your type must implement either the Serializable or the Cloneable interface. Use Cloneable for a shallow copy by default, and Serializable for a deep copy by default.
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor

    org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object>
  • Constructor Summary

    Constructors
    Constructor
    Description
    PrototypeFactory(T aPrototype)
    Constructs the factory with the according type.
  • Method Summary

    Modifier and Type
    Method
    Description
    This method creates / retrieves an instance of the given type.
    This method retrieves the type which the implementing factory produces.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.refcodes.factory.TypeFactory

    create
  • Constructor Details

    • PrototypeFactory

      public PrototypeFactory(T aPrototype)
      Constructs the factory with the according type. Your type must implement either the Serializable or the Cloneable interface. Use Cloneable for a shallow copy by default, and Serializable for a deep copy by default.
      Parameters:
      aPrototype - The prototype to be used as prototype by this factory.
  • Method Details

    • create

      public T create()
      This method creates / retrieves an instance of the given type.
      Specified by:
      create in interface Factory<T>
      Returns:
      The instance being fabricated by this factory.
    • getType

      public Class<T> getType()
      Description copied from interface: TypeFactory
      This method retrieves the type which the implementing factory produces. Attention: As of shortcomings of java'stype system, by default the Object.getClass() of the Factory.create() result is returned (as we cannot get a generic type's class if not explicitly passed to an instance e.g. through it's constructor). To avoid unnecessary calls to potentially expensive Factory.create() methods, please overwrite this method!
      Specified by:
      getType in interface org.refcodes.mixin.TypeAccessor<T>
      Specified by:
      getType in interface TypeFactory<T>
      Returns:
      The type of the instances this factory produces.