Closed IainDavis closed 3 years ago
Current implementation of configurable options is ad-hoc and based on Strings.
Centralize and standardize the set of configurable options for the Launcher program in an enumerated type with responibility for:
Resolver
CACHE_DIR
GenericPathLabel
OS
UnaryOperator<String>
Validator
Predicate<String>
Problem Statement
Current implementation of configurable options is ad-hoc and based on Strings.
Proposed fix
Centralize and standardize the set of configurable options for the Launcher program in an enumerated type with responibility for:
Resolver
mechanism for any needed transformation of an option (i.e., as with the ALLUSERS and USERLIB path sections inCACHE_DIR
).Steps taken
GenericPathLabel
andOS
that together have responsibility for resolving the ALLUSERS and USERLIB sentinelsResolver
interface, which extendsUnaryOperator<String>
along with some default implementationsValidator
interface which extendsPredicate<String>
along with some default implementationsAdditional steps taken that are not necessarily relevant to the current work but will affect later-planned work.