public class DefaultParametersManager extends Object
 A class for managing a set of DefaultParametersHandler objects.
 
 This class provides functionality for registering and removing
 DefaultParametersHandler objects for arbitrary parameters classes.
 The handlers registered at an instance can then be applied on a passed in
 parameters object, so that it gets initialized with the provided default
 values.
 
 Usage of this class is as follows: First the DefaultParametersHandler
 objects to be supported must be registered using one of the
 registerDefaultHandler() methods. After that arbitrary parameters
 objects can be passed to the initializeParameters() method. This
 causes all DefaultParametersHandler objects supporting this
 parameters class to be invoked on this object.
 
Implementation note: This class is thread-safe.
| Constructor and Description | 
|---|
DefaultParametersManager()
Creates a new instance of  
DefaultParametersManager. | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
initializeParameters(BuilderParameters params)
Initializes the passed in  
BuilderParameters object by applying
 all matching DefaultParametersHandler objects registered at this
 instance. | 
<T> void | 
registerDefaultsHandler(Class<T> paramsClass,
                       DefaultParametersHandler<? super T> handler)
Registers the specified  
DefaultParametersHandler object for the
 given parameters class. | 
<T> void | 
registerDefaultsHandler(Class<T> paramsClass,
                       DefaultParametersHandler<? super T> handler,
                       Class<?> startClass)
Registers the specified  
DefaultParametersHandler object for the
 given parameters class and start class in the inheritance hierarchy. | 
void | 
unregisterDefaultsHandler(DefaultParametersHandler<?> handler)
Removes the specified  
DefaultParametersHandler from this
 instance. | 
void | 
unregisterDefaultsHandler(DefaultParametersHandler<?> handler,
                         Class<?> startClass)
Removes the specified  
DefaultParametersHandler from this instance
 if it is in combination with the given start class. | 
public DefaultParametersManager()
DefaultParametersManager.public <T> void registerDefaultsHandler(Class<T> paramsClass, DefaultParametersHandler<? super T> handler)
DefaultParametersHandler object for the
 given parameters class. This means that this handler object is invoked
 every time a parameters object of the specified class or one of its
 subclasses is initialized. The handler can set arbitrary default values
 for the properties supported by this parameters object. If there are
 multiple handlers registered supporting a specific parameters class, they
 are invoked in the order in which they were registered. So handlers
 registered later may override the values set by handlers registered
 earlier.T - the type of the parameters supported by this handlerparamsClass - the parameters class supported by this handler (must
        not be null)handler - the DefaultParametersHandler to be registered
        (must not be null)IllegalArgumentException - if a required parameter is missingpublic <T> void registerDefaultsHandler(Class<T> paramsClass, DefaultParametersHandler<? super T> handler, Class<?> startClass)
DefaultParametersHandler object for the
 given parameters class and start class in the inheritance hierarchy. This
 method works like
 registerDefaultsHandler(Class, DefaultParametersHandler), but
 the defaults handler is only executed on parameter objects that are
 instances of the specified start class. Parameter classes do not stand in
 a real inheritance hierarchy; however, there is a logic hierarchy defined
 by the methods supported by the different parameter objects. A properties
 parameter object for instance supports all methods defined for a
 file-based parameter object. So one can argue that
 FileBasedBuilderParameters is a base interface of
 PropertiesBuilderParameters (although, for technical reasons,
 this relation is not reflected in the Java classes). A
 DefaultParametersHandler object defined for a base interface can
 also deal with parameter objects "derived" from this base interface (i.e.
 supporting a super set of the methods defined by the base interface). Now
 there may be the use case that there is an implementation of
 DefaultParametersHandler for a base interface (e.g.
 FileBasedBuilderParameters), but it should only process specific
 derived interfaces (say PropertiesBuilderParameters, but not
 XMLBuilderParameters). This can be achieved by passing in
 PropertiesBuilderParameters as start class. In this case,
 DefaultParametersManager ensures that the handler is only called
 on parameter objects having both the start class and the actual type
 supported by the handler as base interfaces. The passed in start class
 can be null; then the parameter class supported by the handler is
 used (which is the default behavior of the
 registerDefaultsHandler(Class, DefaultParametersHandler)
 method).T - the type of the parameters supported by this handlerparamsClass - the parameters class supported by this handler (must
        not be null)handler - the DefaultParametersHandler to be registered
        (must not be null)startClass - an optional start class in the hierarchy of parameter
        objects for which this handler should be appliedIllegalArgumentException - if a required parameter is missingpublic void unregisterDefaultsHandler(DefaultParametersHandler<?> handler)
DefaultParametersHandler from this
 instance. If this handler has been registered multiple times for
 different start classes, all occurrences are removed.handler - the DefaultParametersHandler to be removedpublic void unregisterDefaultsHandler(DefaultParametersHandler<?> handler, Class<?> startClass)
DefaultParametersHandler from this instance
 if it is in combination with the given start class. If this handler has
 been registered multiple times for different start classes, only
 occurrences for the given start class are removed. The startClass
 parameter can be null, then all occurrences of the handler are
 removed.handler - the DefaultParametersHandler to be removedstartClass - the start class for which this handler is to be removedpublic void initializeParameters(BuilderParameters params)
BuilderParameters object by applying
 all matching DefaultParametersHandler objects registered at this
 instance. Using this method the passed in parameters object can be
 populated with default values.params - the parameters object to be initialized (may be
        null, then this method has no effect)Copyright © 2001–2020 The Apache Software Foundation. All rights reserved.