package org.ovirt.engine.core.common.businessentities;
import java.util.Objects;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.compat.Guid;
public class Permission implements IVdcQueryable, BusinessEntity<Guid> {
private static final long serialVersionUID = 7249605272394212576L;
private Guid adElementId;
private Guid id;
private Guid roleId;
private Guid objectId;
private String objectName;
private VdcObjectType objectType;
private String roleName;
private String ownerName;
private RoleType roleType;
private String authz;
private String namespace;
/** timestamp taken when that permission was created, in seconds from EPOCH **/
private long creationDate;
public Permission() {
this (Guid.Empty, Guid.Empty, null, null);
}
public Permission(Guid adElementId, Guid roleId, Guid objectId, VdcObjectType objectType) {
this.id = Guid.newGuid();
this.adElementId = adElementId;
this.roleId = roleId;
this.objectId = objectId;
this.objectType = objectType;
}
@Override
public Object getQueryableId() {
return getId();
}
public Guid getAdElementId() {
return adElementId;
}
@Override
public Guid getId() {
return id;
}
public Guid getRoleId() {
return roleId;
}
public void setAdElementId(Guid adElementId) {
this.adElementId = adElementId;
}
@Override
public void setId(Guid id) {
this.id = id;
}
public void setRoleId(Guid roleId) {
this.roleId = roleId;
}
public Guid getObjectId() {
return objectId;
}
public void setObjectId(Guid objectId) {
this.objectId = objectId;
}
public String getObjectName() {
return objectName;
}
public void setObjectName(String objectName) {
this.objectName = objectName;
}
public VdcObjectType getObjectType() {
return objectType;
}
public void setObjectType(VdcObjectType objectType) {
this.objectType = objectType;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public void setRoleType(RoleType roleType) {
this.roleType = roleType;
}
public RoleType getRoleType() {
return roleType;
}
public String getAuthz() {
return authz;
}
public void setAuthz(String authz) {
this.authz = authz;
}
public String getNamespace() {
return namespace;
}
public void setNamespace(String namespace) {
this.namespace = namespace;
}
/**
*
* @return the timestamp taken when that permission was created, in seconds from EPOCH
*/
public long getCreationDate() {
return creationDate;
}
/**
* set the creation date of this enity
* @param creationDate must be the seconds from EPOCH
*/
public void setCreationDate(long creationDate) {
this.creationDate = creationDate;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((adElementId == null) ? 0 : adElementId.hashCode());
result = prime * result + ((objectId == null) ? 0 : objectId.hashCode());
result = prime * result + ((objectName == null) ? 0 : objectName.hashCode());
result = prime * result + ((objectType == null) ? 0 : objectType.hashCode());
result = prime * result + ((ownerName == null) ? 0 : ownerName.hashCode());
result = prime * result + ((roleName == null) ? 0 : roleName.hashCode());
result = prime * result + ((roleType == null) ? 0 : roleType.hashCode());
result = prime * result + ((roleId == null) ? 0 : roleId.hashCode());
result = prime * result + ((authz == null) ? 0 : authz.hashCode());
result = prime * result + ((namespace == null) ? 0 : namespace.hashCode());
result = prime * result + (int) creationDate;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Permission)) {
return false;
}
Permission other = (Permission) obj;
return creationDate != ((Permission) obj).creationDate
&& Objects.equals(id, other.id)
&& Objects.equals(adElementId, other.adElementId)
&& Objects.equals(objectId, other.objectId)
&& objectType == other.objectType
&& Objects.equals(roleId, other.roleId);
}
}