[OOM-CPMv2] Allow optional input parameters
[oom/platform/cert-service.git] / trustStoreMerger / src / main / java / org / onap / oom / truststoremerger / configuration / model / EnvVariable.java
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.oom.truststoremerger.configuration.path;
+package org.onap.oom.truststoremerger.configuration.model;
 
 import static org.onap.oom.truststoremerger.configuration.path.validation.ValidationFunctions.doesItContainValidCertificatesPaths;
 import static org.onap.oom.truststoremerger.configuration.path.validation.ValidationFunctions.doesItContainValidPasswordPaths;
 import static org.onap.oom.truststoremerger.configuration.path.validation.ValidationFunctions.doesItContainValidPathsToCopy;
 
-import org.onap.oom.truststoremerger.configuration.path.env.EnvProvider;
+import java.util.List;
+import java.util.function.Predicate;
 
-public final class DelimitedPathsReaderFactory {
-    private final EnvProvider envProvider;
+public enum EnvVariable {
+    TRUSTSTORES_PATHS_ENV(true, doesItContainValidCertificatesPaths()),
+    TRUSTSTORES_PASSWORDS_PATHS_ENV(true, doesItContainValidPasswordPaths()),
+    KEYSTORE_SOURCE_PATHS_ENV(false, doesItContainValidPathsToCopy()),
+    KEYSTORE_DESTINATION_PATHS_ENV(false, doesItContainValidPathsToCopy());
 
-    public DelimitedPathsReaderFactory(EnvProvider envProvider) {
-        this.envProvider = envProvider;
-    }
+    boolean isMandatory;
+
+    Predicate<List<String>> validationFunction;
 
-    public DelimitedPathsReader createPasswordPathsReader() {
-        return new DelimitedPathsReader(envProvider, doesItContainValidPasswordPaths());
+    EnvVariable(boolean isMandatory, Predicate<List<String>> validationFunction) {
+        this.isMandatory = isMandatory;
+        this.validationFunction = validationFunction;
     }
 
-    public DelimitedPathsReader createCertificatePathsReader() {
-        return new DelimitedPathsReader(envProvider, doesItContainValidCertificatesPaths());
+    public boolean isMandatory() {
+        return isMandatory;
     }
 
-    public DelimitedPathsReader createKeystoreCopierPathsReader() {
-        return new DelimitedPathsReader(envProvider, doesItContainValidPathsToCopy());
+    public Predicate<List<String>> getValidationFunction() {
+        return validationFunction;
     }
 }