Mercurial > hg > LGDataverses
view src/main/java/edu/harvard/iq/dataverse/RoleAssignment.java @ 14:be7787c36e58 default tip
new: nofity LGSercies for deleted files
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Mon, 02 Nov 2015 16:41:23 +0100 |
| parents | a50cf11e5178 |
| children |
line wrap: on
line source
package edu.harvard.iq.dataverse; import edu.harvard.iq.dataverse.authorization.DataverseRole; import edu.harvard.iq.dataverse.authorization.RoleAssignee; import java.util.Objects; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.UniqueConstraint; /** * A role of a user in a Dataverse. A User may have many roles in a given Dataverse. * This is a realization of a Many-to-Many relationship * between users and dataverses, with roles as an extra column. * @author michael */ @Entity @Table( uniqueConstraints = @UniqueConstraint(columnNames={"assigneeIdentifier","role_id","definitionPoint_id"}) ) @NamedQueries({ @NamedQuery( name = "RoleAssignment.listByAssigneeIdentifier_DefinitionPointId", query = "SELECT r FROM RoleAssignment r WHERE r.assigneeIdentifier=:assigneeIdentifier AND r.definitionPoint.id=:definitionPointId" ), @NamedQuery( name = "RoleAssignment.listByAssigneeIdentifier", query = "SELECT r FROM RoleAssignment r WHERE r.assigneeIdentifier=:assigneeIdentifier" ), @NamedQuery( name = "RoleAssignment.listByDefinitionPointId", query = "SELECT r FROM RoleAssignment r WHERE r.definitionPoint.id=:definitionPointId" ), @NamedQuery( name = "RoleAssignment.listByRoleId", query = "SELECT r FROM RoleAssignment r WHERE r.role=:roleId" ), @NamedQuery( name = "RoleAssignment.deleteByAssigneeIdentifier_RoleIdDefinition_PointId", query = "DELETE FROM RoleAssignment r WHERE r.assigneeIdentifier=:userId AND r.role.id=:roleId AND r.definitionPoint.id=:definitionPointId"), }) public class RoleAssignment implements java.io.Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column( nullable=false ) private String assigneeIdentifier; @ManyToOne( cascade = CascadeType.MERGE ) @JoinColumn( nullable=false ) private DataverseRole role; @ManyToOne( cascade = CascadeType.MERGE ) @JoinColumn( nullable=false ) private DvObject definitionPoint; public RoleAssignment() {} public RoleAssignment(DataverseRole aRole, RoleAssignee anAssignee, DvObject aDefinitionPoint) { role = aRole; assigneeIdentifier = anAssignee.getIdentifier(); definitionPoint = aDefinitionPoint; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getAssigneeIdentifier() { return assigneeIdentifier; } public void setAssigneeIdentifier(String assigneeIdentifier) { this.assigneeIdentifier = assigneeIdentifier; } public DataverseRole getRole() { return role; } public void setRole(DataverseRole role) { this.role = role; } public DvObject getDefinitionPoint() { return definitionPoint; } public void setDefinitionPoint(DvObject definitionPoint) { this.definitionPoint = definitionPoint; } @Override public int hashCode() { int hash = 7; hash = 97 * hash + Objects.hashCode(role); hash = 97 * hash + Objects.hashCode(assigneeIdentifier); return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if ( ! (obj instanceof RoleAssignment) ) { return false; } final RoleAssignment other = (RoleAssignment) obj; return ( Objects.equals(getRole(), other.getRole() ) && Objects.equals(getAssigneeIdentifier(), other.getAssigneeIdentifier()) && Objects.equals(getDefinitionPoint(), other.getDefinitionPoint())); } @Override public String toString() { return "RoleAssignment{" + "id=" + id + ", assignee=" + assigneeIdentifier + ", role=" + role + ", definitionPoint=" + definitionPoint + '}'; } }
