package org.ovirt.engine.core.common.businessentities;
import java.io.Serializable;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.hibernate.annotations.TypeDef;
import org.ovirt.engine.core.common.businessentities.mapping.GuidType;
import org.ovirt.engine.core.compat.Guid;
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "RoleGroupMap")
@Entity
@Table(name = "roles_groups")
@TypeDef(name = "guid", typeClass = GuidType.class)
public class RoleGroupMap implements Serializable {
private static final long serialVersionUID = -230507879656573010L;
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "actionGroup", column = @Column(name = "action_group_id")),
@AttributeOverride(name = "roleId", column = @Column(name = "role_id")) })
private RoleGroupMapId id = new RoleGroupMapId();
public RoleGroupMap() {
};
public RoleGroupMap(ActionGroup actionGroup, Guid roleId) {
this.id.actionGroup = actionGroup.getId();
this.id.roleId = roleId;
}
public void setActionGroup(ActionGroup actionGroup) {
this.id.actionGroup = actionGroup.getId();
}
@XmlElement(name = "ActionGroup")
public ActionGroup getActionGroup() {
return ActionGroup.forValue(id.actionGroup);
}
public void setRoleId(Guid roleId) {
this.id.roleId = roleId;
}
@XmlElement(name = "RoleId")
public Guid getRoleId() {
return id.roleId;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
RoleGroupMap other = (RoleGroupMap) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
}