- Type Parameters:
SRC
- The context which may influence the object being created by this factory.
- All Known Subinterfaces:
UnmarshalFactory.UnmarshalFactoryComposite<T,
C>
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
The
UnmarshalFactory
defines the functionality which must be provided
in order to represent a factory for object creation of an object being of a
requested type (in contrast to the TypeFactory
and the
LookupFactory
) from an instance of a provided type. Many alternative
implementations of a UnmarshalFactory
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 UnmarshalFactory
. 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
UnmarshalFactory
may return singletons or dedicated separate
instances when queried for instances.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
TheUnmarshalFactory.UnmarshalFactoryComplement
provides inverse functionality to theUnmarshalFactory
.static interface
TheUnmarshalFactory.UnmarshalFactoryComposite
providesUnmarshalFactory
as well asUnmarshalFactory.UnmarshalFactoryComplement
functionality. -
Method Summary
Modifier and TypeMethodDescriptiondefault Object
toUnmarshaled
(SRC aContext, Class<?>... aTypes) This method creates / retrieves an instance of one of the given types from the provided instance.<T> T
toUnmarshaled
(SRC aContext, Class<T> aType) This method creates / retrieves an instance of the given type from the provided instance.default <T> T
This method creates / retrieves all instances of the given type.default Object
This method creates / retrieves an instance of one of the given types from the provided instance.
-
Method Details
-
toUnmarshaled
This method creates / retrieves an instance of the given type from the provided instance.- Type Parameters:
T
- The type which is to be fabricated by the factory method.- Parameters:
aContext
- The context which may influence the object being created by this factory.aType
- The type identifying the instance to be created / retrieved.- Returns:
- An instance of the required type for the given type and context.
- Throws:
org.refcodes.exception.UnmarshalException
- Thrown when unmarshaling / deserializing an object fails.
-
toUnmarshaled
default Object toUnmarshaled(SRC aContext, Class<?>... aTypes) throws org.refcodes.exception.UnmarshalException This method creates / retrieves an instance of one of the given types from the provided instance. The returned instance's type is to be tested e.g. via "instanceof".- Parameters:
aContext
- The context which may influence the object being created by this factory.aTypes
- The types identifying the instance to be created / retrieved.- Returns:
- An instance of the type for which unmarshaling the context succeeded. You have to verify yourself which type you actually retrieved e.g. via "instanceof".
- Throws:
org.refcodes.exception.UnmarshalException
- Thrown when unmarshaling / deserializing for all provided types failed.
-
toUnmarshaled
default Object toUnmarshaled(SRC aContext, Map<String, String> aProperties, Class<?>... aTypes) throws org.refcodes.exception.UnmarshalExceptionThis method creates / retrieves an instance of one of the given types from the provided instance. The returned instance's type is to be tested e.g. via "instanceof".- Parameters:
aContext
- The context which may influence the object being created by this factory.aProperties
- The dynamic properties which are used to configure the desired bean.aTypes
- The types identifying the instance to be created / retrieved.- Returns:
- An instance of the type for which unmarshaling the context succeeded. You have to verify yourself which type you actually retrieved e.g. via "instanceof".
- Throws:
org.refcodes.exception.UnmarshalException
- Thrown when unmarshaling / deserializing for all provided types failed.
-
toUnmarshaled
default <T> T toUnmarshaled(SRC aContext, Class<T> aType, Map<String, String> aProperties) throws org.refcodes.exception.UnmarshalExceptionThis method creates / retrieves all instances of the given type.- Type Parameters:
T
- The type which is to be fabricated by the factory method.- Parameters:
aContext
- The context which may influence the object being created by this factory.aType
- The type identifying the instances to be created / retrieved.aProperties
- The dynamic properties which are used to configure the desired bean.- Returns:
- An instance of the required type for the given type and context.
- Throws:
org.refcodes.exception.UnmarshalException
- Thrown when unmarshaling / deserializing an object fails.
-