/* * Copyright (c) 2008-2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.api.service.impl.resource.utils.vpoolvalidators; import com.emc.storageos.api.service.impl.resource.utils.VirtualPoolValidator; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.model.VirtualPool; import com.emc.storageos.db.client.model.VirtualPool.ProvisioningType; import com.emc.storageos.model.vpool.VirtualPoolCommonParam; import com.emc.storageos.model.vpool.VirtualPoolUpdateParam; import com.emc.storageos.svcs.errorhandling.resources.APIException; public class ProvisioningTypeValidator extends VirtualPoolValidator<VirtualPoolCommonParam, VirtualPoolUpdateParam> { @Override public void setNextValidator(VirtualPoolValidator validator) { _nextValidator = validator; } @Override protected void validateVirtualPoolUpdateAttributeValue( VirtualPool cos, VirtualPoolUpdateParam updateParam, DbClient dbClient) { if (null == ProvisioningType.lookup(updateParam.getProvisionType())) { throw APIException.badRequests.invalidParameter("provisionType", updateParam.getProvisionType()); } } @Override protected boolean isUpdateAttributeOn(VirtualPoolUpdateParam updateParam) { if (null != updateParam.getProvisionType() && !updateParam.getProvisionType().equalsIgnoreCase(NONE)) { return true; } return false; } @Override protected void validateVirtualPoolCreateAttributeValue(VirtualPoolCommonParam createParam, DbClient dbClient) { if (null == ProvisioningType.lookup(createParam.getProvisionType())) { throw APIException.badRequests.invalidParameter("provisionType", createParam.getProvisionType()); } } @Override protected boolean isCreateAttributeOn(VirtualPoolCommonParam createParam) { if (null != createParam.getProvisionType() && !createParam.getProvisionType().equalsIgnoreCase(NONE)) { return true; } return false; } }