import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.onap.config.api.Config;
import org.onap.config.api.ConfigurationManager;
import org.onap.config.impl.ConfigurationRepository;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Queue;
import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Stream;
import static com.google.common.collect.ImmutableMap.builder;
+
+import static java.util.Optional.ofNullable;
import static org.onap.config.api.Hint.EXTERNAL_LOOKUP;
import static org.onap.config.api.Hint.LATEST_LOOKUP;
import static org.onap.config.api.Hint.NODE_SPECIFIC;
* The type Configuration utils.
*/
public class ConfigurationUtils {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationUtils.class);
private ConfigurationUtils() {
}
- private static ImmutableMap<Class,Class> arrayClassMap;
+ private static ImmutableMap<Class, Class> arrayClassMap;
static {
- ImmutableMap.Builder<Class,Class> builder = builder();
- builder.put(Byte.class,Byte[].class).put(Short.class, Short[].class)
- .put(Integer.class,Integer[].class).put(Long.class,Long[].class)
- .put(Float.class,Float[].class).put(Double.class,Double[].class)
- .put(Boolean.class,Boolean[].class).put(Character.class,Character[].class)
- .put(String.class,String[].class);
+ ImmutableMap.Builder<Class, Class> builder = builder();
+ builder.put(Byte.class, Byte[].class).put(Short.class, Short[].class)
+ .put(Integer.class, Integer[].class).put(Long.class, Long[].class)
+ .put(Float.class, Float[].class).put(Double.class, Double[].class)
+ .put(Boolean.class, Boolean[].class).put(Character.class, Character[].class)
+ .put(String.class, String[].class);
arrayClassMap = builder.build();
}
* @return the namespace
*/
public static String getNamespace(URL url) {
- String namespace = getNamespace(getConfiguration(url));
- if (namespace != null) {
- return namespace.toUpperCase();
- }
- return getNamespace(url.getFile().toUpperCase());
+
+ Optional<String> namespace = getConfiguration(url).flatMap(ConfigurationUtils::getNamespace).map(String::toUpperCase);
+
+ return namespace.orElseGet(() -> getNamespace(url.getFile().toUpperCase()));
}
/**
* @return the namespace
*/
public static String getNamespace(File file) {
- String namespace = getNamespace(getConfiguration(file));
- if (namespace != null) {
- return namespace.toUpperCase();
- }
- return getNamespace(file.getName().toUpperCase());
+ Optional<String> namespace = getConfiguration(file)
+ .flatMap(ConfigurationUtils::getNamespace)
+ .map(String::toUpperCase);
+ return namespace.orElseGet(() -> getNamespace(file.getName().toUpperCase()));
}
- private static String getNamespace(Configuration config) {
- return config.getString(Constants.NAMESPACE_KEY) == null ? null
- : config.getString(Constants.NAMESPACE_KEY).toUpperCase();
+ private static Optional<String> getNamespace(Configuration config) {
+ return ofNullable(config)
+ .flatMap(configuration -> ofNullable(configuration.getString(Constants.NAMESPACE_KEY)))
+ .map(String::toUpperCase);
}
/**
* @return the merge strategy
*/
public static ConfigurationMode getMergeStrategy(URL url) {
- String configMode = getMergeStrategy(getConfiguration(url));
- if (configMode != null) {
- try {
- return Enum.valueOf(ConfigurationMode.class, configMode);
- } catch (Exception exception) {
- //do nothing
- }
+ Optional<ConfigurationMode> configurationMode = getConfiguration(url).flatMap(ConfigurationUtils::getMergeStrategy).flatMap(ConfigurationUtils::convertConfigurationMode);
+ return configurationMode.orElseGet(() -> getMergeStrategy(url.getFile().toUpperCase()));
+ }
+
+ private static Optional<ConfigurationMode> convertConfigurationMode(String configMode) {
+ ConfigurationMode configurationMode = null;
+ try {
+ configurationMode = ConfigurationMode.valueOf(configMode);
+ } catch (Exception exception) {
+ LOGGER.error("Could not find convert {} into configuration mode", configMode);
}
- return getMergeStrategy(url.getFile().toUpperCase());
+ return Optional.ofNullable(configurationMode);
}
- private static String getMergeStrategy(Configuration config) {
- return config.getString(Constants.MODE_KEY) == null ? null
- : config.getString(Constants.MODE_KEY).toUpperCase();
+ private static Optional<String> getMergeStrategy(Configuration config) {
+ return ofNullable(config)
+ .flatMap(configuration -> ofNullable(configuration.getString(Constants.MODE_KEY)))
+ .map(String::toUpperCase);
}
+
/**
* Gets merge strategy.
*
* @return the merge strategy
*/
public static ConfigurationMode getMergeStrategy(File file) {
- String configMode = getMergeStrategy(getConfiguration(file));
- if (configMode != null) {
- try {
- return Enum.valueOf(ConfigurationMode.class, configMode);
- } catch (Exception exception) {
- //do nothing
- }
- }
- return getMergeStrategy(file.getName().toUpperCase());
+ Optional<ConfigurationMode> configurationMode = getConfiguration(file).flatMap(ConfigurationUtils::getMergeStrategy).flatMap(ConfigurationUtils::convertConfigurationMode);
+ return configurationMode.orElseGet(() -> getMergeStrategy(file.getName().toUpperCase()));
}
/**
* @param url the url
* @return the configuration
*/
- public static FileBasedConfiguration getConfiguration(URL url) {
+ public static Optional<FileBasedConfiguration> getConfiguration(URL url) {
FileBasedConfiguration builder = null;
try {
ConfigurationType configType = ConfigurationUtils.getConfigType(url);
builder = new Configurations().fileBased(YamlConfiguration.class, url);
break;
default:
- throw new ConfigurationException("Configuration type not supported:"+ configType);
+ throw new ConfigurationException("Configuration type not supported:" + configType);
}
} catch (ConfigurationException exception) {
exception.printStackTrace();
}
- return builder;
+ return ofNullable(builder);
}
/**
* @param file the file
* @return the configuration
*/
- public static FileBasedConfiguration getConfiguration(File file) {
+ public static Optional<FileBasedConfiguration> getConfiguration(File file) {
FileBasedConfiguration builder = null;
try {
ConfigurationType configType = ConfigurationUtils.getConfigType(file);
builder = new Configurations().fileBased(YamlConfiguration.class, file);
break;
default:
- throw new ConfigurationException("Configuration type not supported:"+ configType);
+ throw new ConfigurationException("Configuration type not supported:" + configType);
}
} catch (ConfigurationException exception) {
exception.printStackTrace();
}
- return builder;
+ return ofNullable(builder);
}
/**
}
-
/**
* Gets array class.
*
builder = new ReloadingFileBasedConfigurationBuilder<>(YamlConfiguration.class);
break;
default:
- throw new IllegalArgumentException("Configuration type not supported:"+ configType);
+ throw new IllegalArgumentException("Configuration type not supported:" + configType);
}
return builder;
}
import org.onap.sdc.generator.error.IllegalAccessException;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
protected Set<Widget> widgets = new HashSet<>();
private String modelId;
private String modelName;
- private ModelType modelType;
private String modelVersion;
private String modelNameVersionId;
private String modelDescription;
public static Model getModelFor(String toscaType) {
Model modelToBeReturned = null;
- while (toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null) {
+ while (isModelNotSet(toscaType, modelToBeReturned)) {
switch (toscaType) {
return modelToBeReturned;
}
+
public abstract boolean addResource(Resource resource);
public abstract boolean addWidget(Widget resource);
* @return the model type
*/
public ModelType getModelType() {
- //checkSupported();
if (this instanceof Service) {
return ModelType.SERVICE;
} else if (this instanceof Resource) {
}
public String getModelName() {
- //checkSupported();
return modelName;
}
public String getModelVersion() {
- //checkSupported();
return modelVersion;
}
}
public String getModelDescription() {
- //checkSupported();
return modelDescription;
}
* @param modelIdentInfo the model ident info
*/
public void populateModelIdentificationInformation(Map<String, String> modelIdentInfo) {
- Iterator<String> iter = modelIdentInfo.keySet().iterator();
- String property;
- while (iter.hasNext()) {
- switch (property = iter.next()) {
+ for (Map.Entry<String,String> entry : modelIdentInfo.entrySet()) {
+ String property=entry.getKey();
+ switch (property) {
case "vfModuleModelInvariantUUID":
case "serviceInvariantUUID":
case "resourceInvariantUUID":
case "invariantUUID":
case "providing_service_invariant_uuid":
- modelId = modelIdentInfo.get(property);
+ modelId = entry.getValue();
break;
case "vfModuleModelUUID":
case "resourceUUID":
case "serviceUUID":
case "UUID":
case "providing_service_uuid":
- modelNameVersionId = modelIdentInfo.get(property);
+ modelNameVersionId = entry.getValue();
break;
case "vfModuleModelVersion":
case "serviceVersion":
case "resourceversion":
case "version":
- modelVersion = modelIdentInfo.get(property);
+ modelVersion = entry.getValue();
break;
case "vfModuleModelName":
case "serviceName":
case "resourceName":
case "name":
- modelName = modelIdentInfo.get(property);
+ modelName = entry.getValue();
break;
case "serviceDescription":
case "resourceDescription":
case "vf_module_description":
case "description":
- modelDescription = modelIdentInfo.get(property);
+ modelDescription = entry.getValue();
break;
case "providing_service_name":
- modelName = modelIdentInfo.get(property);
- modelDescription = modelIdentInfo.get(property);
+ modelName = entry.getValue();
+ modelDescription = entry.getValue();
break;
default:
break;
}
- property = null;
}
return widgets;
}
- private void checkSupported() throws IllegalAccessException {
+ private void checkSupported() {
if (this instanceof Widget) {
throw new IllegalAccessException(GeneratorConstants
.GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION);
}
}
+ private static boolean isModelNotSet(String toscaType, Model modelToBeReturned) {
+ return toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null;
+ }
}