/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.sa.api.mapper; import static com.emc.storageos.db.client.URIUtil.uri; import static com.emc.storageos.api.mapper.DbObjectMapper.mapDataObjectFields; import static com.emc.storageos.api.mapper.DbObjectMapper.toRelatedResource; import com.emc.storageos.db.client.model.uimodels.ApprovalRequest; import com.emc.storageos.model.ResourceTypeEnum; import com.emc.vipr.model.catalog.ApprovalCommonParam; import com.emc.vipr.model.catalog.ApprovalRestRep; import com.google.common.base.Function; public class ApprovalMapper implements Function<ApprovalRequest, ApprovalRestRep> { public static final ApprovalMapper instance = new ApprovalMapper(); public static ApprovalMapper getInstance() { return instance; } public ApprovalRestRep apply(ApprovalRequest resource) { return map(resource); } public static ApprovalRestRep map(ApprovalRequest from) { if (from == null) { return null; } ApprovalRestRep to = new ApprovalRestRep(); mapDataObjectFields(from, to); if (from.getTenant() != null) { to.setTenant(toRelatedResource(ResourceTypeEnum.TENANT, uri(from.getTenant()))); } if (from.getOrderId() != null) { to.setOrder(toRelatedResource(ResourceTypeEnum.ORDER, from.getOrderId())); } to.setApprovedBy(from.getApprovedBy()); to.setDateActioned(from.getDateActioned()); to.setMessage(from.getMessage()); to.setApprovalStatus(from.getApprovalStatus()); return to; } public static void updateObject(ApprovalRequest object, ApprovalCommonParam param) { if (param.getMessage() != null) { object.setMessage(param.getMessage()); } if (param.getApprovalStatus() != null) { object.setApprovalStatus(param.getApprovalStatus()); } } }