/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.api.mapper;
import static com.emc.storageos.api.mapper.DbObjectMapper.mapDataObjectFields;
import static com.emc.storageos.api.mapper.DbObjectMapper.toNamedRelatedResource;
import static com.emc.storageos.api.mapper.DbObjectMapper.toRelatedResource;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import com.emc.storageos.db.client.model.ActionableEvent;
import com.emc.storageos.model.RelatedResourceRep;
import com.emc.storageos.model.ResourceTypeEnum;
import com.emc.storageos.model.event.EventRestRep;
public class EventMapper {
private EventMapper() {
};
public static EventRestRep map(ActionableEvent from) {
if (from == null) {
return null;
}
EventRestRep to = new EventRestRep();
mapDataObjectFields(from, to);
to.setTenant(toRelatedResource(ResourceTypeEnum.TENANT, from.getTenant()));
to.setResource(toNamedRelatedResource(from.getResource()));
to.setEventStatus(from.getEventStatus());
to.setDescription(from.getDescription());
to.setWarning(from.getWarning());
to.setEventCode(from.getEventCode());
to.setEventExecutionTime(from.getEventExecutionTime());
if ((from.getTaskIds() != null) && (!from.getTaskIds().isEmpty())) {
List<RelatedResourceRep> taskIds = new ArrayList<RelatedResourceRep>();
for (String task : from.getTaskIds()) {
taskIds.add(toRelatedResource(ResourceTypeEnum.TASK, URI.create(task)));
}
to.setTaskIds(taskIds);
}
if ((from.getApproveDetails() != null) && (!from.getApproveDetails().isEmpty())) {
List<String> approveDetails = new ArrayList<String>();
for (String details : from.getApproveDetails()) {
approveDetails.add(details);
}
to.setApproveDetails(approveDetails);
}
if ((from.getDeclineDetails() != null) && (!from.getDeclineDetails().isEmpty())) {
List<String> declineDetails = new ArrayList<String>();
for (String details : from.getDeclineDetails()) {
declineDetails.add(details);
}
to.setDeclineDetails(declineDetails);
}
return to;
}
}