Map of hints (maybe
)
used by this factory to customize its use. This map is not guaranteed
to contains all the hints supplied by the user; it may be only a subset. Consequently,
hints provided here are usually not suitable for creating new factories, unless the
implementation make some additional garantees
(e.g.
FactoryUsingVolatileDependencies ).
The primary purpose of this method is to determine if an existing
factory instance can be reused for a set of user-supplied hints. This method is invoked by
FactoryRegistry in order to compare this factory's hints against user's hints.
This is dependency introspection only;
FactoryRegistry never
invokes this method for creating new factories.
Keys are usually static constants from the
Hints class, while values are
instances of some key-dependent class. The
must contains
at least all hints impacting functionality. While the key set may contains all hints
supplied by the user, it is recommended to limit the set to only the hints used by this
particular factory instance. A minimal set will helps
FactoryRegistry to compare
only hints that matter and avoid the creation of unnecessary instances of this factory.
The hint values may be different than the one supplied by the user. If a user supplied a
hint as a
Class object, this method shall replace it by the actual instance used,
if possible.
Implementations of this method are usually quite simple. For example if a
uses an ordinary
,
its method could be implemented as below (note that we should not check if the datum
factory is null, since key with null value is the expected behaviour in this case).
Example:
Map hints = new HashMap();
hints.put(
, datumFactory);
return hints;
The map of hints, or an if none. |