/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.model.endpoint.api;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
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.EndpointMetaDataDefinitionImpl;
import de.rcenvironment.core.datamodel.api.EndpointType;
/**
* Creates component endpoint model objects from raw JSON data.
*
* @author Doreen Seider
*/
public final class ComponentEndpointModelFactory {
private ComponentEndpointModelFactory() {}
/**
*
* @param rawDefinition raw definition information
*
* @param endpointType {@link EndpointType#INPUT} or {@link EndpointType#OUTPUT}
*
* @return {@link EndpointDefinition} object
*/
public static EndpointDefinition createEndpointDefinition(Map<String, Object> rawDefinition, EndpointType endpointType) {
EndpointDefinitionImpl endpointDefinition = new EndpointDefinitionImpl();
endpointDefinition.setRawEndpointDefinition(rawDefinition);
endpointDefinition.setEndpointType(endpointType);
return endpointDefinition;
}
/**
* @param rawMetaData raw meta data information
* @return {@link EndpointMetaDataDefinition} object
*/
public static EndpointMetaDataDefinition createEndpointMetaDataDefinition(Map<String, Map<String, Object>> rawMetaData) {
EndpointMetaDataDefinitionImpl endpointMetaDataDefinition = new EndpointMetaDataDefinitionImpl();
endpointMetaDataDefinition.setRawMetaData(rawMetaData);
return endpointMetaDataDefinition;
}
/**
* @param endpointDefinitions endpoint definitions information
* @return {@link EndpointDefinitionsProvider} object
*/
public static EndpointDefinitionsProvider createEndpointDefinitionsProvider(Set<EndpointDefinition> endpointDefinitions) {
EndpointDefinitionsProviderImpl endpointDefinitionsProvider = new EndpointDefinitionsProviderImpl();
Set<EndpointDefinitionImpl> endpointDefinitionImpls = new HashSet<EndpointDefinitionImpl>();
for (EndpointDefinition definition : endpointDefinitions) {
endpointDefinitionImpls.add((EndpointDefinitionImpl) definition);
}
endpointDefinitionsProvider.setEndpointDefinitions(endpointDefinitionImpls);
return endpointDefinitionsProvider;
}
}