Interface CollectionFactory<C extends java.util.Collection<?>>

  • Type Parameters:
    C - the generic type
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface CollectionFactory<C extends java.util.Collection<?>>
    The CollectionFactory defines the functionality which must be provided in order to represent a factory for object creation of *ALL* objects being of a requested type (in contrast to the TypeFactory and the LookupFactory which create instances of a predefined type specified with a generic argument). Many alternative implementations of a CollectionFactory may may exist which construct the instances their way.

    Having factories that generic as we define it here, we are able to decouple our business logic from any specific framework: Your business logic must not know anything about how the instances are generated. It mainly just needs to know how to use the CollectionFactory. It is up to the application "end point", i.e. a command line tool with a main-method or a web-application to finally decide which factory to use.

    Depending on the implementation used or configuration provided, the CollectionFactory may return singletons or dedicated separate instances when queried for instances.

    • Method Detail

      • createInstances

        C createInstances()
        This method creates / retrieves all instances of the given type.
        Returns:
        A set with all instance of the required type for the given type.
      • createInstances

        default C createInstances​(java.util.Map<java.lang.String,java.lang.String> aProperties)
        This method creates / retrieves all instances of the given type.
        Parameters:
        aProperties - The dynamic properties which are used to configure the desired bean.
        Returns:
        A set with all instance of the required type for the given type.