/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.model.configuration.api;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import de.rcenvironment.core.component.api.ComponentUtils;
import de.rcenvironment.core.component.model.configuration.impl.ConfigurationDefinitionImpl;
import de.rcenvironment.core.component.model.configuration.impl.ConfigurationExtensionDefinitionImpl;
/**
* Creates stub implementations of {@link ConfigurationDescription}.
*
* @author Doreen Seider
*/
public final class ConfigurationDescriptionStubFactory {
/** Constant. */
public static final String WORK_DIR = "workDir";
/** Constant. */
public static final String FORMAT = "format";
/** Constant. */
public static final String HOST = "host";
/** Constant. */
public static final String NAME = "name";
/** Constant. */
public static final String AUTH_USER = "authUser";
/** Constant. */
public static final String AUTH_PHRASE = "authPhrase";
/** Constant. */
public static final String UNKNOWN = "unknown";
/** Constant. */
public static final String PHRASE = "phrase";
/** Constant. */
public static final String USER = "user";
/** Constant. */
public static final String DIR = "dir";
/** Constant. */
public static final String PORT = "port";
/** Constant. */
public static final String CONFIGURATION_JSON = "/configuration.json";
/** Constant. */
public static final String CONFIGURATION_EXT1_JSON = "/configuration_ext1.json";
/** Constant. */
public static final String CONFIGURATION_EXT2_JSON = "/configuration_ext2.json";
private ConfigurationDescriptionStubFactory() {}
/**
* Creates {@link ConfigurationDescription} object from test files.
* @return new {@link ConfigurationDescription} object
* @throws IOException on error
*/
public static ConfigurationDescription createConfigurationDescriptionFromTestFiles() throws IOException {
return new ConfigurationDescription((ConfigurationDefinition) createConfigurationDefinitionFromTestFile(),
new HashSet<ConfigurationExtensionDefinition>(createConfigurationExtensionDefinitionsFromTestFiles()));
}
/**
* Creates {@link ConfigurationDefinitionImpl} object from test files including extended configuration.
* @return new {@link ConfigurationDefinitionImpl} object
* @throws IOException on error
*/
public static ConfigurationDefinitionImpl createCombinedConfigurationDefinitionFromTestFiles() throws IOException {
Set<ConfigurationDefinition> configDefs = new HashSet<ConfigurationDefinition>();
configDefs.add(createConfigurationDefinitionFromTestFile());
configDefs.addAll(createConfigurationExtensionDefinitionsFromTestFiles());
ConfigurationDefinitionImpl combindedConfigDef = new ConfigurationDefinitionImpl();
combindedConfigDef.setConfigurationDefinitions(configDefs);
return combindedConfigDef;
}
/**
* Creates {@link ConfigurationDefinitionImpl} object from test files excluding extended configuration.
* @return new {@link ConfigurationDefinitionImpl} object
* @throws IOException on error
*/
public static ConfigurationDefinitionImpl createConfigurationDefinitionFromTestFile() throws IOException {
return ComponentUtils.extractConfigurationDescription(
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_JSON),
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_JSON),
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_JSON));
}
/**
* Creates {@link ConfigurationExtensionDefinitionImpl} set from test files.
* @return new {@link ConfigurationExtensionDefinitionImpl} set
* @throws IOException on error
*/
public static Set<ConfigurationExtensionDefinitionImpl> createConfigurationExtensionDefinitionsFromTestFiles() throws IOException {
ConfigurationExtensionDefinitionImpl configExtDef1 = ComponentUtils.extractConfigurationExtensionDescription(
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_EXT1_JSON),
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_EXT1_JSON),
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_EXT1_JSON));
ConfigurationExtensionDefinitionImpl configExtDef2 = ComponentUtils.extractConfigurationExtensionDescription(
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_EXT2_JSON),
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_EXT2_JSON),
ConfigurationDescriptionStubFactory.class.getResourceAsStream(CONFIGURATION_EXT2_JSON));
Set<ConfigurationExtensionDefinitionImpl> configExtDefs = new HashSet<ConfigurationExtensionDefinitionImpl>();
configExtDefs.add(configExtDef1);
configExtDefs.add(configExtDef2);
return configExtDefs;
}
}