/* * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wso2.carbon.event.template.manager.admin.internal.util; import org.wso2.carbon.event.template.manager.admin.dto.configuration.AttributeMappingDTO; import org.wso2.carbon.event.template.manager.admin.dto.configuration.ConfigurationParameterDTO; import org.wso2.carbon.event.template.manager.admin.dto.configuration.ScenarioConfigurationDTO; import org.wso2.carbon.event.template.manager.admin.dto.configuration.StreamMappingDTO; import org.wso2.carbon.event.template.manager.admin.dto.configuration.ScenarioConfigurationInfoDTO; import org.wso2.carbon.event.template.manager.core.structure.configuration.AttributeMapping; import org.wso2.carbon.event.template.manager.core.structure.configuration.AttributeMappings; import org.wso2.carbon.event.template.manager.core.structure.configuration.ScenarioConfiguration; import org.wso2.carbon.event.template.manager.core.structure.configuration.StreamMapping; import org.wso2.carbon.event.template.manager.core.structure.configuration.StreamMappings; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Consist of the necessary mapping methods of Configurations */ public class ConfigurationMapper { /** * To avoid instantiating */ private ConfigurationMapper() { } /** * Maps given list of ScenarioConfiguration objects to array of ScenarioConfigurationInfoDTO objects * * @param scenarioConfigurations List of ScenarioConfiguration objects which needs to be mapped * @return Mapped array of ScenarioConfigurationInfoDTO */ public static ScenarioConfigurationInfoDTO[] mapConfigurationsInfo( List<ScenarioConfiguration> scenarioConfigurations) { ScenarioConfigurationInfoDTO[] scenarioConfigurationInfoDTO = null; if (scenarioConfigurations != null) { scenarioConfigurationInfoDTO = new ScenarioConfigurationInfoDTO[scenarioConfigurations.size()]; for (int i = 0; i < scenarioConfigurationInfoDTO.length; i++) { scenarioConfigurationInfoDTO[i] = mapConfigurationInfo(scenarioConfigurations.get(i)); } } return scenarioConfigurationInfoDTO; } /** * Maps given ScenarioConfiguration object to ScenarioConfigurationInfoDTO object * * @param scenarioConfig ScenarioConfiguration object needs to be mapped * @return Mapped ScenarioConfigurationInfoDTO object */ public static ScenarioConfigurationInfoDTO mapConfigurationInfo(ScenarioConfiguration scenarioConfig) { ScenarioConfigurationInfoDTO scenarioConfigurationInfoDTO = null; if (scenarioConfig != null) { scenarioConfigurationInfoDTO = new ScenarioConfigurationInfoDTO(); scenarioConfigurationInfoDTO.setName(scenarioConfig.getName()); scenarioConfigurationInfoDTO.setType(scenarioConfig.getScenario()); scenarioConfigurationInfoDTO.setDescription(scenarioConfig.getDescription()); scenarioConfigurationInfoDTO.setDomain(scenarioConfig.getDomain()); } return scenarioConfigurationInfoDTO; } /** * Maps given list of ScenarioConfiguration objects to array of ScenarioConfigurationDTO objects * * @param scenarioConfigurations List of ScenarioConfiguration objects which needs to be mapped * @return Mapped ScenarioConfigurationDTO object */ public static ScenarioConfigurationDTO[] mapConfigurations( List<ScenarioConfiguration> scenarioConfigurations) { ScenarioConfigurationDTO[] scenarioConfigurationDTOs = null; if (scenarioConfigurations != null) { scenarioConfigurationDTOs = new ScenarioConfigurationDTO[scenarioConfigurations.size()]; for (int i = 0; i < scenarioConfigurationDTOs.length; i++) { scenarioConfigurationDTOs[i] = mapConfiguration(scenarioConfigurations.get(i)); } } return scenarioConfigurationDTOs; } /** * Maps given ScenarioConfiguration object to ScenarioConfigurationDTO object * * @param scenarioConfig ScenarioConfiguration object needs to be mapped * @return Mapped ScenarioConfigurationDTO object */ public static ScenarioConfigurationDTO mapConfiguration(ScenarioConfiguration scenarioConfig) { ScenarioConfigurationDTO scenarioConfigurationDTO = null; if (scenarioConfig != null) { scenarioConfigurationDTO = new ScenarioConfigurationDTO(); scenarioConfigurationDTO.setName(scenarioConfig.getName()); scenarioConfigurationDTO.setType(scenarioConfig.getScenario()); scenarioConfigurationDTO.setDescription(scenarioConfig.getDescription()); scenarioConfigurationDTO.setDomain(scenarioConfig.getDomain()); scenarioConfigurationDTO.setConfigurationParameterDTOs(mapParameters(scenarioConfig.getParameterMap())); scenarioConfigurationDTO.setStreamMappingDTOs(mapStreamMappings(scenarioConfig.getStreamMappings())); } return scenarioConfigurationDTO; } private static StreamMappingDTO[] mapStreamMappings(StreamMappings streamMappings) { if (streamMappings == null) { return null; } List<StreamMapping> streamMappingList = streamMappings.getStreamMapping(); StreamMappingDTO[] mappingDTOArray = new StreamMappingDTO[streamMappingList.size()]; int i = 0; for (StreamMapping streamMapping: streamMappingList) { StreamMappingDTO mappingDTO = new StreamMappingDTO(); mappingDTO.setFromStream(streamMapping.getFrom()); mappingDTO.setToStream(streamMapping.getTo()); AttributeMappingDTO[] attributeDTOArray = new AttributeMappingDTO[streamMapping.getAttributeMappings().getAttributeMapping().size()]; int j = 0; for (AttributeMapping attributeMapping: streamMapping.getAttributeMappings().getAttributeMapping()) { AttributeMappingDTO attributeDTO = new AttributeMappingDTO(); attributeDTO.setFromAttribute(attributeMapping.getFrom()); attributeDTO.setToAttribute(attributeMapping.getTo()); attributeDTO.setAttributeType(attributeMapping.getType()); attributeDTOArray[j] = attributeDTO; j++; } mappingDTO.setAttributeMappingDTOs(attributeDTOArray); mappingDTOArray[i] = mappingDTO; i++; } return mappingDTOArray; } /** * Maps given ScenarioConfigurationDTO object to ScenarioConfiguration object * * @param configDTO ScenarioConfigurationDTO object which needs to be mapped * @return Mapped ScenarioConfiguration object */ public static ScenarioConfiguration mapConfiguration(ScenarioConfigurationDTO configDTO) { ScenarioConfiguration scenarioConfig = null; if (configDTO != null) { scenarioConfig = new ScenarioConfiguration(); scenarioConfig.setName(configDTO.getName()); scenarioConfig.setScenario(configDTO.getType()); scenarioConfig.setDescription(configDTO.getDescription()); scenarioConfig.setDomain(configDTO.getDomain()); scenarioConfig.setParameterMap(mapParameters(configDTO.getConfigurationParameterDTOs())); } return scenarioConfig; } /** * Maps given List of ConfigurationParameterDTO objects to a Map in which parameter name is mapped to value. * * @param configurationParameterDTOs ConfigurationParameterDTO object which needs to mapped * @return Parameter map */ private static Map<String,String> mapParameters(ConfigurationParameterDTO[] configurationParameterDTOs) { Map<String,String> parameterMap = new HashMap<>(); if (configurationParameterDTOs != null) { for (int i = 0; i < configurationParameterDTOs.length; i++) { parameterMap.put(configurationParameterDTOs[i].getName(), configurationParameterDTOs[i].getValue()); } } return parameterMap; } /** * Maps given List of Parameter objects to array of ConfigurationParameterDTO * * @param parameterMap Map, containing the parameter names-value pairs, which needs to be mapped * @return Mapped array of ConfigurationParameterDTO objects */ private static ConfigurationParameterDTO[] mapParameters(Map<String,String> parameterMap) { ConfigurationParameterDTO[] configurationParameterDTOs = null; if (parameterMap != null) { configurationParameterDTOs = new ConfigurationParameterDTO[parameterMap.size()]; int i=0; for (Map.Entry<String,String> entry : parameterMap.entrySet()) { ConfigurationParameterDTO dto = new ConfigurationParameterDTO(); dto.setName(entry.getKey()); dto.setValue(entry.getValue()); configurationParameterDTOs[i] = dto; i++; } } return configurationParameterDTOs; } public static List<StreamMapping> mapStreamMapping(StreamMappingDTO[] streamMappingDTO) { List<StreamMapping> streamMappings = new ArrayList<>(); for (int i = 0; i < streamMappingDTO.length; i++) { StreamMapping streamMapping = new StreamMapping(); streamMapping.setFrom(streamMappingDTO[i].getFromStream()); streamMapping.setTo(streamMappingDTO[i].getToStream()); List<AttributeMapping> attributeMappingList = new ArrayList<>(); for (int j = 0; j < streamMappingDTO[i].getAttributeMappingDTOs().length; j++) { AttributeMapping attributeMapping = new AttributeMapping(); attributeMapping.setFrom(streamMappingDTO[i].getAttributeMappingDTOs()[j].getFromAttribute()); attributeMapping.setTo(streamMappingDTO[i].getAttributeMappingDTOs()[j].getToAttribute()); attributeMapping.setType(streamMappingDTO[i].getAttributeMappingDTOs()[j].getAttributeType()); attributeMappingList.add(attributeMapping); } AttributeMappings attributeMappings = new AttributeMappings(); attributeMappings.setAttributeMapping(attributeMappingList); streamMapping.setAttributeMappings(attributeMappings); streamMappings.add(streamMapping); } return streamMappings; } }