/* * Copyright (c) 2008-2011 EMC Corporation * All Rights Reserved */ package com.emc.storageos.db.client.model; import java.net.URI; import com.emc.storageos.db.client.model.DbKeyspace.Keyspaces; /** * Project data object */ @Cf("Project") @DbKeyspace(Keyspaces.GLOBAL) public class Project extends DataObjectWithACLs { private static final String EXPECTED_GEO_VERSION_FOR_ASSIGN_VNAS_SUPPORT = "2.4"; private NamedURI _tenantOrg; private String _owner; private Long _quotaGB; private Boolean _quotaEnabled; private StringSet assignedVNasServers; private StringSet filePolicies; @NamedRelationIndex(cf = "NamedRelation", type = TenantOrg.class) @Name("tenantOrg") public NamedURI getTenantOrg() { return _tenantOrg; } public void setTenantOrg(NamedURI tenantOrg) { _tenantOrg = tenantOrg; setChanged("tenantOrg"); } @Name("owner") public String getOwner() { return _owner; } public void setOwner(String owner) { _owner = owner; setChanged("owner"); } @Name("quota") public Long getQuota() { return (null == _quotaGB) ? 0L : _quotaGB; } public void setQuota(Long quota) { _quotaGB = quota; setChanged("quota"); } @Name("quotaEnabled") public Boolean getQuotaEnabled() { return (_quotaEnabled == null) ? false : _quotaEnabled; } public void setQuotaEnabled(Boolean enable) { _quotaEnabled = enable; setChanged("quotaEnabled"); } /** * @return the assignedVNasServers */ @AllowedGeoVersion(version = EXPECTED_GEO_VERSION_FOR_ASSIGN_VNAS_SUPPORT) @Name("assigned_vnas_servers") public StringSet getAssignedVNasServers() { if (assignedVNasServers == null) { assignedVNasServers = new StringSet(); } return assignedVNasServers; } /** * @param assignedVNasServers the assignedVNasServers to set */ public void setAssignedVNasServers(StringSet assignedVNasServers) { this.assignedVNasServers = assignedVNasServers; setChanged("assigned_vnas_servers"); } @Name("filePolicies") public StringSet getFilePolicies() { return filePolicies; } public void setFilePolicies(StringSet filePolicies) { this.filePolicies = filePolicies; setChanged("filePolicies"); } public void addFilePolicy(URI policy) { StringSet policies = filePolicies; if (policies == null) { policies = new StringSet(); } policies.add(policy.toString()); this.filePolicies = policies; } public void removeFilePolicy(Project project, URI policy) { StringSet policies = filePolicies; if (policies != null) { policies.remove(policy.toString()); this.filePolicies = policies; } } }