package edu.harvard.iq.dataverse.authorization.groups.impl; import edu.harvard.iq.dataverse.authorization.groups.Group; import edu.harvard.iq.dataverse.authorization.RoleAssigneeDisplayInfo; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; /** * Convenience base class for implementing groups that apply to the entire Dataverse * installation, and are persisted to the DB. * * @author michael */ @NamedQueries({ @NamedQuery( name="PersistedGlobalGroup.persistedGroupAlias", query="SELECT g FROM PersistedGlobalGroup g WHERE g.persistedGroupAlias=:persistedGroupAlias" ) }) @Entity @Table(indexes = {@Index(columnList="dtype")}) public abstract class PersistedGlobalGroup implements Group, Serializable { @Id @GeneratedValue private Long id; /** * A unique alias within the Dataverse system installation. */ @Column(unique = true) private String persistedGroupAlias; private String displayName; private String description; public void setPersistedGroupAlias(String alias) { this.persistedGroupAlias = alias; } public String getPersistedGroupAlias() { return persistedGroupAlias; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Override public String getAlias() { return getGroupProvider().getGroupProviderAlias() + Group.PATH_SEPARATOR + persistedGroupAlias; } public void setDisplayName(String name) { this.displayName = name; } @Override public String getDisplayName() { return displayName; } @Override public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public RoleAssigneeDisplayInfo getDisplayInfo() { return new RoleAssigneeDisplayInfo(displayName, null); } @Override public String getIdentifier() { return Group.IDENTIFIER_PREFIX + getAlias(); } @Override public String toString() { return "[PersistedGlobalGroup " + getIdentifier() + "]"; } }