/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.model.endpoint.api;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import de.rcenvironment.core.component.api.ComponentUtils;
import de.rcenvironment.core.component.model.endpoint.impl.EndpointDefinitionImpl;
import de.rcenvironment.core.component.model.endpoint.impl.EndpointDefinitionsProviderImpl;
import de.rcenvironment.core.component.model.endpoint.impl.EndpointGroupDefinitionImpl;
import de.rcenvironment.core.datamodel.api.EndpointType;
/**
* Creates stub implementations of {@link EndpointDefinitionsProvider}.
*
* @author Doreen Seider
*/
public final class EndpointDefinitionProviderStubFactory {
/** Constant. */
public static final String STATICOUTPUTNAME = "my Output";
/** Constant. */
public static final String DYNAMICOUTPUTID = "outputId";
/** Constant. */
public static final String STATICINPUTNAME = "my Input";
/** Constant. */
public static final String DYNAMICINPUTID1 = "inputId";
/** Constant. */
public static final String DYNAMICINPUTID2 = "inputId2";
private EndpointDefinitionProviderStubFactory() {}
/**
* Creates {@link EndpointDefinitionsProviderImpl} object from test files.
* @return new {@link EndpointDefinitionsProviderImpl} object
* @throws IOException on error
*/
public static EndpointDefinitionsProviderImpl createInputDefinitionsProviderFromTestFile() throws IOException {
final String inputFile = "/inputs.json";
List<InputStream> staticInputStreams = new ArrayList<>();
staticInputStreams.add(EndpointDefinitionProviderStubFactory.class.getResourceAsStream("/inputs_meta_data_ext.json"));
Set<EndpointDefinitionImpl> inputDefinitions = ComponentUtils
.extractStaticEndpointDefinition(EndpointDefinitionProviderStubFactory.class.getResourceAsStream(inputFile),
staticInputStreams, EndpointType.INPUT);
List<InputStream> dynamicInputStreams = new ArrayList<>();
dynamicInputStreams.add(EndpointDefinitionProviderStubFactory.class.getResourceAsStream("/inputs_meta_data_ext.json"));
inputDefinitions.addAll(ComponentUtils
.extractDynamicEndpointDefinition(EndpointDefinitionProviderStubFactory.class.getResourceAsStream(inputFile),
dynamicInputStreams, EndpointType.INPUT));
EndpointDefinitionsProviderImpl inputProvider = new EndpointDefinitionsProviderImpl();
inputProvider.setEndpointDefinitions(inputDefinitions);
Set<EndpointGroupDefinitionImpl> inputGroupDefinitions;
inputGroupDefinitions = ComponentUtils.extractStaticInputGroupDefinitions(
EndpointDefinitionProviderStubFactory.class.getResourceAsStream(inputFile));
inputGroupDefinitions.addAll(ComponentUtils.extractDynamicInputGroupDefinitions(
EndpointDefinitionProviderStubFactory.class.getResourceAsStream(inputFile)));
inputProvider.setEndpointGroupDefinitions(inputGroupDefinitions);
return inputProvider;
}
}