package org.onap.aaf.certservice.client.configuration.factory;
import org.onap.aaf.certservice.client.configuration.ClientConfigurationEnvs;
-import org.onap.aaf.certservice.client.configuration.EnvValidationUtils;
import org.onap.aaf.certservice.client.configuration.EnvsForClient;
import org.onap.aaf.certservice.client.configuration.exception.ClientConfigurationException;
import org.onap.aaf.certservice.client.configuration.model.ClientConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.Optional;
-public class ClientConfigurationFactory implements AbstractConfigurationFactory<ClientConfiguration> {
+public class ClientConfigurationFactory extends AbstractConfigurationFactory<ClientConfiguration> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ClientConfigurationFactory.class);
private final EnvsForClient envsForClient;
-
public ClientConfigurationFactory(EnvsForClient envsForClient) {
this.envsForClient = envsForClient;
}
ClientConfiguration configuration = new ClientConfiguration();
- Optional.ofNullable(envsForClient.getUrlToCertService()).filter(EnvValidationUtils::isEnvExists)
+
+ envsForClient.getUrlToCertService()
.map(configuration::setUrlToCertService);
- Optional.ofNullable(envsForClient.getRequestTimeOut()).filter(EnvValidationUtils::isEnvExists)
+ envsForClient.getRequestTimeOut()
.map(timeout -> configuration.setRequestTimeout(Integer.valueOf(timeout)));
- Optional.ofNullable(envsForClient.getOutputPath()).filter(EnvValidationUtils::isEnvExists)
- .filter(EnvValidationUtils::isPathValid)
+ envsForClient.getOutputPath()
+ .filter(this::isPathValid)
.map(configuration::setCertsOutputPath)
.orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.OUTPUT_PATH + " is invalid."));
- Optional.ofNullable(envsForClient.getCaName()).filter(EnvValidationUtils::isEnvExists)
- .filter(EnvValidationUtils::isAlphaNumeric)
+ envsForClient.getCaName()
+ .filter(this::isAlphaNumeric)
.map(configuration::setCaName)
.orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.CA_NAME + " is invalid."));
+ Optional<String> outputType = envsForClient.getOutputType();
+
+ if (outputType.isPresent()) {
+ outputType.filter(this::isOutputTypeValid)
+ .map(configuration::setOutputType)
+ .orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.OUTPUT_TYPE + " is invalid."));
+ }
+
+ LOGGER.info("Successful validation of Client configuration. Configuration data: {}", configuration.toString());
+
return configuration;
}
}