blob: 8a941ee8315ad70fa5a1812860604bdedbb244d7 [file] [log] [blame]
/*-
* ============LICENSE_START=======================================================
* OSAM Core
* ================================================================================
* Copyright (C) 2018 Netsia
* ================================================================================
* 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.
* ============LICENSE_END=========================================================
*/
package org.onap.osam.helper;
import com.google.common.collect.Lists;
import org.onap.osam.common.dto.AccessPodDTO;
import org.onap.osam.common.dto.ChassisDTO;
import org.onap.osam.common.dto.OLTChassisDTO;
import org.onap.osam.common.dto.OLTPortDTO;
import org.onap.osam.common.dto.ONTDTO;
import org.onap.osam.model.dao.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public final class DTOMapper {
private DTOMapper () {
}
public static Chassis convertToChassis (ChassisDTO chassisDTO) {
Chassis chassis = new Chassis();
chassis.setClli(chassisDTO.getClli());
chassis.setShelf(chassisDTO.getShelf());
chassis.setRack(chassisDTO.getRack());
chassis.setState(ActivityState.ACTIVE);
AccessPod accessPod = new AccessPod();
accessPod.setPnfId(chassisDTO.getPnfId());
chassis.setAccessPod(accessPod);
return chassis;
}
public static OLTSlot convertToOLT (OLTChassisDTO oltChassisDTO) {
OLTSlot oltSlot = new OLTSlot();
oltSlot.setIpAddress(oltChassisDTO.getIpAddress());
oltSlot.setPort(oltChassisDTO.getPortNumber());
oltSlot.setName(oltChassisDTO.getName());
oltSlot.setOltDriver(OltDriver.valueOf(oltChassisDTO.getOltDriver()));
oltSlot.setOltType(OltType.valueOf(oltChassisDTO.getOltType()));
return oltSlot;
}
public static ChassisDTO convertChassisToDTO(Chassis chassis) {
ChassisDTO chassisDTO = new ChassisDTO();
chassisDTO.setId(chassis.getId());
chassisDTO.setClli(chassis.getClli());
chassisDTO.setRack(chassis.getRack());
chassisDTO.setShelf(chassis.getShelf());
chassisDTO.setPnfId(chassis.getAccessPod().getPnfId());
return chassisDTO;
}
public static List<ChassisDTO> convertChassisToDTO(List<Chassis> chassises) {
return chassises.stream().map(x -> convertChassisToDTO(x)).collect(Collectors.toList());
}
public static Map<String, List<OLTChassisDTO>> convertFromOLT(List<OLTSlot> oltSlots){
return oltSlots.stream().map(x -> convertFromOLT(x)).collect(Collectors.toList()).stream().collect(Collectors.groupingBy(OLTChassisDTO::getClli));
}
public static OLTChassisDTO convertFromOLT (OLTSlot oltSlot) {
OLTChassisDTO oltChassisDTO = new OLTChassisDTO();
oltChassisDTO.setClli(oltSlot.getChassis().getClli());
oltChassisDTO.setIpAddress(oltSlot.getIpAddress());
oltChassisDTO.setName(oltSlot.getName());
oltChassisDTO.setOltDriver(oltSlot.getOltDriver().name());
oltChassisDTO.setOltType(oltSlot.getOltType().name());
oltChassisDTO.setPortNumber(oltSlot.getPort());
oltChassisDTO.setId(oltSlot.getId());
return oltChassisDTO;
}
public static ONTDTO convertFromONTDevice (ONTDevice ontDevice) {
ONTDTO ontdto = new ONTDTO();
ontdto.setSerialNumber(ontDevice.getSerialNumber());
ontdto.setPortNumber(ontDevice.getOLTPort().getPortNumber());
ontdto.setId(ontDevice.getId());
ontdto.setSlotNumber(ontDevice.getOLTPort().getOltSlot().getNumber());
ontdto.setClli(ontDevice.getOLTPort().getOltSlot().getChassis().getClli());
ontdto.setCtag(ontDevice.getCTag());
ontdto.setStag(ontDevice.getSTag());
ontdto.setCircuitId(ontDevice.getCircuitId());
ontdto.setNasPortId(ontDevice.getNasPortId());
if (ontDevice.getTechProfile() != null) {
ontdto.setTechnologyProfile(ontDevice.getTechProfile().getName());
}
if (ontDevice.getSpeedProfile() != null) {
ontdto.setSpeedProfile(ontDevice.getSpeedProfile().getName());
}
return ontdto;
}
public static ONTDevice convertToONTDevice (ONTDTO ontdto) {
ONTDevice ontDevice = new ONTDevice();
ontDevice.setNumber(ontdto.getOntNumber());
ontDevice.setSerialNumber(ontdto.getSerialNumber());
ontDevice.setCTag(ontdto.getCtag());
ontDevice.setSTag(ontdto.getStag());
ontDevice.setCircuitId(ontdto.getCircuitId());
ontDevice.setNasPortId(ontdto.getNasPortId());
TechnologyProfile technologyProfile = new TechnologyProfile();
technologyProfile.setName(ontdto.getTechnologyProfile());
ontDevice.setTechProfile(technologyProfile);
SpeedProfile speedProfile = new SpeedProfile();
speedProfile.setName(ontdto.getSpeedProfile());
ontDevice.setSpeedProfile(speedProfile);
Chassis chassis = new Chassis();
chassis.setClli(ontdto.getClli());
OLTSlot oltSlot = new OLTSlot();
oltSlot.setChassis(chassis);
OLTPort oltPort = new OLTPort();
oltPort.setPortNumber(ontdto.getPortNumber());
oltPort.setOltSlot(oltSlot);
ontDevice.setOLTPort(oltPort);
return ontDevice;
}
public static Map<String, List<ONTDTO>> convertFromONTDevice(List<ONTDevice> ontDevices){
return ontDevices.stream().map(x -> convertFromONTDevice(x)).collect(Collectors.toList()).stream().collect(Collectors.groupingBy(ONTDTO::getClli));
}
public static AccessPod convertDtoToAccessPod(AccessPodDTO dto) {
//TODO validate..
AccessPod accessPod = new AccessPod();
accessPod.setPnfId(dto.getPnfId());
accessPod.setId(dto.getId());
accessPod.setCoreIp(dto.getCoreIp());
accessPod.setCorePort(dto.getCorePort());
accessPod.setUsername(dto.getUsername());
accessPod.setPassword(dto.getPassword());
accessPod.setIp(dto.getIp());
accessPod.setPort(dto.getPort());
return accessPod;
}
public static AccessPodDTO convertAccessPodToDto(AccessPod accessPod) {
//TODO validate..
AccessPodDTO dto = new AccessPodDTO();
dto.setPnfId(accessPod.getPnfId());
dto.setCoreIp(accessPod.getCoreIp());
dto.setCorePort(accessPod.getCorePort());
dto.setUsername(accessPod.getUsername());
dto.setPassword(accessPod.getPassword());
dto.setIp(accessPod.getIp());
dto.setId(accessPod.getId());
dto.setPort(accessPod.getPort());
return dto;
}
private static OLTPortDTO convertOLTPortToDTO(OLTPort oltPort) {
OLTPortDTO oltPortDTO = new OLTPortDTO();
oltPortDTO.setId(oltPort.getId());
oltPortDTO.setAdminState(oltPort.getAdminState().name());
oltPortDTO.setPortAuthState(oltPort.getPortAuthState().name());
oltPortDTO.setPortNumber(oltPort.getPortNumber());
return oltPortDTO;
}
public static List<AccessPodDTO> covertAccessPodsToDtos(List<AccessPod> accessPodList) {
//TODO validate..
List<AccessPodDTO> dtos = new ArrayList<>();
for (AccessPod accessPod : accessPodList) {
dtos.add(convertAccessPodToDto(accessPod));
}
return dtos;
}
public static AccessPodDTO representTheAccessPod(List<Chassis> chassisList, AccessPod accessPod) {
if (accessPod == null) {
return null;
}
AccessPodDTO accessPodDTO = convertAccessPodToDto(accessPod);
if (chassisList == null || chassisList.isEmpty()) {
return accessPodDTO;
}
List<ChassisDTO> chassisDTOS = new ArrayList<>();
accessPodDTO.setChassises(chassisDTOS);
for (Chassis chassis : chassisList) {
chassisDTOS.add(representTheChassis(chassis));
}
return accessPodDTO;
}
public static ChassisDTO representTheChassis(Chassis chassis) {
ChassisDTO chassisDTO = convertChassisToDTO(chassis);
if (chassis.getOltSlots() == null || chassis.getOltSlots().isEmpty()) {
return chassisDTO;
}
List<OLTChassisDTO> oltChassisDTOS = Lists.newArrayList();
chassisDTO.setOlts(oltChassisDTOS);
for (OLTSlot oltSlot : chassis.getOltSlots()) {
oltChassisDTOS.add(representTheOLTSlot(oltSlot));
}
return chassisDTO;
}
public static OLTChassisDTO representTheOLTSlot(OLTSlot oltSlot) {
OLTChassisDTO oltChassisDTO = convertFromOLT(oltSlot);
if (oltSlot.getOltPorts() == null || oltSlot.getOltPorts().isEmpty()) {
return oltChassisDTO;
}
List<OLTPortDTO> oltPortDTOS = Lists.newArrayList();
oltChassisDTO.setOltPorts(oltPortDTOS);
for (OLTPort oltPort : oltSlot.getOltPorts()) {
oltPortDTOS.add(representTheOLTPort(oltPort));
}
return oltChassisDTO;
}
public static OLTPortDTO representTheOLTPort(OLTPort oltPort) {
OLTPortDTO portDTO = convertOLTPortToDTO(oltPort);
if (oltPort.getOntDevices() == null || oltPort.getOntDevices().isEmpty()) {
return portDTO;
}
List<ONTDTO> ontdtos = Lists.newArrayList();
portDTO.setOntDevices(ontdtos);
for (ONTDevice ontDevice : oltPort.getOntDevices()) {
ontdtos.add(convertFromONTDevice(ontDevice));
}
return portDTO;
}
}