/*
* 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 java.net.URI;
import com.emc.storageos.db.client.model.uimodels.CatalogImage;
import com.emc.storageos.db.client.URIUtil;
import com.emc.storageos.model.ResourceTypeEnum;
import com.emc.vipr.model.catalog.CatalogImageCommonParam;
import com.emc.vipr.model.catalog.CatalogImageCreateParam;
import com.emc.vipr.model.catalog.CatalogImageRestRep;
import com.google.common.base.Function;
public class CatalogImageMapper implements Function<CatalogImage, CatalogImageRestRep> {
public static final CatalogImageMapper instance = new CatalogImageMapper();
public static CatalogImageMapper getInstance() {
return instance;
}
private CatalogImageMapper() {
}
public CatalogImageRestRep apply(CatalogImage resource) {
return map(resource);
}
public static CatalogImageRestRep map(CatalogImage from) {
if (from == null) {
return null;
}
CatalogImageRestRep to = new CatalogImageRestRep();
mapDataObjectFields(from, to);
if (from.getTenant() != null) {
to.setTenant(toRelatedResource(ResourceTypeEnum.TENANT, uri(from.getTenant())));
}
to.setContentType(from.getContentType());
to.setData(from.getData());
return to;
}
public static CatalogImage createNewObject(URI tenantId, CatalogImageCreateParam param) {
CatalogImage newObject = new CatalogImage();
newObject.setId(URIUtil.createId(CatalogImage.class));
newObject.setTenant(tenantId.toString());
updateObject(newObject, param);
return newObject;
}
public static void updateObject(CatalogImage object, CatalogImageCommonParam param) {
if (param.getName() != null) {
object.setLabel(param.getName());
}
if (param.getContentType() != null) {
object.setContentType(param.getContentType());
}
if (param.getData() != null) {
object.setData(param.getData());
}
}
}