THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
/**
* Interface for classes that take parameters. It provides APIs to set and get parameters.
*
* @param <T> The class type of WithParams implementation itself.
*/
@PublicEvolving
public interface WithParams<T> {
/** Gets a param by name. */
default <V> Param<V> getParam(String name) {...}
/**
* Sets the value of the given parameter in the user-defined map.
*
* @param param the parameter
* @param value the value
* @return the WithParams instance itself
*/
default <V> T set(Param<V> param, V value) {...}
/**
* Gets the value of the given parameter. Returns the value from the user-defined map if set(...) has been
* explicitly called to set value for this parameter. Otherwise, returns the default value from the definition of
* this parameter.
*
* @param param the parameter
* @param <V> the type of the parameter
* @return the value of the parameter
*/
default <V> V get(Param<V> param) {...}
/**
* Returns an immutable map that contains value for every parameter that meets one of the following conditions:
* 1) set(...) has been called to set value for this parameter.
* 2) The parameter is a field of this WithParams instance. This includes public, protected and private fields. And
* this also includes fields inherited from its interfaces and super-classes.
*
* @return an immutable map of parameters and values.
*/
default Map<Param<?>, Object> getParamMap() {...}
/**
* A subclass of this interface should override this method to provide a mutable map that can be used to store
* non-default parameter values.
*
* @return a mutable map from param to param value.
*/
Map<Param<?>, Object> getUserDefinedParamMap();
}
|
...