/*
* 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.domain.DomainInfoDTO;
import org.wso2.carbon.event.template.manager.admin.dto.domain.DomainParameterDTO;
import org.wso2.carbon.event.template.manager.admin.dto.domain.ScenarioInfoDTO;
import org.wso2.carbon.event.template.manager.core.structure.domain.Domain;
import org.wso2.carbon.event.template.manager.core.structure.domain.Parameter;
import org.wso2.carbon.event.template.manager.core.structure.domain.Scenario;
import java.util.List;
/**
* Consist of require mapping methods of Domains
*/
public class DomainMapper {
/**
* To avoid instantiating
*/
private DomainMapper() {
}
/**
* Maps given Domain object to DomainInfoDTO object
*
* @param domain Domain object needs to be mapped
* @return Mapped DomainInfoDTO object
*/
public static DomainInfoDTO mapTemplateManagerTemplate(
Domain domain) {
DomainInfoDTO domainInfoDTO = null;
if (domain != null) {
domainInfoDTO = new DomainInfoDTO();
domainInfoDTO.setName(domain.getName());
domainInfoDTO.setDescription(domain.getDescription());
domainInfoDTO.setScenarioInfoDTOs(mapScenarios(domain.getScenarios().getScenario()));
}
return domainInfoDTO;
}
/**
* Maps given list of Domain objects to array of DomainInfoDTO objects
*
* @param domains List of Domain objects needs to be mapped
* @return Mapped array of DomainInfoDTO objects
*/
public static DomainInfoDTO[] mapTemplateManagerTemplates(
List<Domain> domains) {
DomainInfoDTO[] domainInfoDTO = null;
if (domains != null) {
domainInfoDTO = new DomainInfoDTO[domains.size()];
for (int i = 0; i < domainInfoDTO.length; i++) {
domainInfoDTO[i] = mapTemplateManagerTemplate(domains.get(i));
}
}
return domainInfoDTO;
}
private static ScenarioInfoDTO[] mapScenarios(List<Scenario> scenarios) {
ScenarioInfoDTO[] scenarioInfoDTOs = new ScenarioInfoDTO[scenarios.size()];
int i = 0;
for (Scenario scenario : scenarios) {
ScenarioInfoDTO scenarioInfoDTO = new ScenarioInfoDTO();
scenarioInfoDTO.setType(scenario.getType());
scenarioInfoDTO.setDescription(scenario.getDescription());
scenarioInfoDTO.setDomainParameterDTOs(mapParameters(scenario.getParameters().getParameter()));
scenarioInfoDTOs[i] = scenarioInfoDTO;
i++;
}
return scenarioInfoDTOs;
}
private static DomainParameterDTO[] mapParameters(List<Parameter> parameters) {
DomainParameterDTO[] domainParameterDTOs = new DomainParameterDTO[parameters.size()];
int i = 0;
for (Parameter parameter: parameters) {
DomainParameterDTO domainParameterDTO = new DomainParameterDTO();
domainParameterDTO.setName(parameter.getName());
domainParameterDTO.setType(parameter.getType());
domainParameterDTO.setDefaultValue(parameter.getDefaultValue());
domainParameterDTO.setDescription(parameter.getDescription());
domainParameterDTO.setDisplayName(parameter.getDisplayName());
domainParameterDTO.setOptions(parameter.getOptions());
domainParameterDTOs[i] = domainParameterDTO;
i++;
}
return domainParameterDTOs;
}
}