/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package util.builders;
import java.util.Collection;
import models.PoolAssignmentTypes;
import models.StorageSystemTypes;
import org.apache.commons.lang.StringUtils;
import com.emc.storageos.model.vpool.VirtualPoolCommonParam;
import com.google.common.collect.Sets;
public class VirtualPoolBuilder {
private VirtualPoolCommonParam virtualPool;
public VirtualPoolBuilder(VirtualPoolCommonParam virtualPool) {
this.virtualPool = virtualPool;
}
public VirtualPoolCommonParam getVirtualPool() {
return virtualPool;
}
public VirtualPoolBuilder setName(String name) {
virtualPool.setName(StringUtils.trimToNull(name));
return this;
}
public VirtualPoolBuilder setDescription(String description) {
virtualPool.setDescription(StringUtils.trimToNull(description));
return this;
}
public VirtualPoolBuilder setProvisioningType(String provisioningType) {
virtualPool.setProvisionType(provisioningType);
return this;
}
public VirtualPoolBuilder setSystemType(String systemType) {
virtualPool.setSystemType(StringUtils.defaultIfEmpty(systemType, StorageSystemTypes.NONE));
return this;
}
public VirtualPoolBuilder setUseMatchedPools(boolean useMatchedPools) {
virtualPool.setUseMatchedPools(useMatchedPools);
return this;
}
public VirtualPoolBuilder setPoolAssignmentType(String poolAssignmentType) {
return setUseMatchedPools(PoolAssignmentTypes.isAutomatic(poolAssignmentType));
}
public VirtualPoolBuilder setVirtualArrays(Collection<String> virtualArrays) {
if (virtualArrays != null) {
virtualPool.setVarrays(Sets.newHashSet(virtualArrays));
}
else {
virtualPool.setVarrays(Sets.<String> newHashSet());
}
return this;
}
public VirtualPoolBuilder setProtocols(Collection<String> protocols) {
if (protocols != null) {
virtualPool.setProtocols(Sets.newHashSet(protocols));
}
else {
virtualPool.setProtocols(Sets.<String> newHashSet());
}
return this;
}
}