Class PrototypeFactory<T>

    • 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.
    • Constructor Detail

      • 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 Detail

      • createInstance

        public T createInstance()
        This method creates / retrieves an instance of the given type with the given identifier (name) constructed as defined in one to many configuration files. How the instance is configured, created or retrieved is up to the nature (implementation) of the according factory.
        Specified by:
        createInstance in interface TypeFactory<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. In favor to clean instance creation, shortcomings of java's type system are compensated by calling TypeFactory.createInstance()'s Object.getClass() (as we cannot get a generic type's class if not explicitly passed to an instance e.g. through it's constructor). Attention: To avoid unnecessary calls to potentially expensive TypeFactory.createInstance() 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.