NIHVIVO-3523 Override equals() and hashCode() to make these Identifiers more flexible and more testable.
This commit is contained in:
parent
59f3cb6311
commit
5ca2848946
2 changed files with 55 additions and 3 deletions
|
@ -14,7 +14,7 @@ import edu.cornell.mannlib.vitro.webapp.auth.permissions.Permission;
|
|||
* The current user has this Permission, through one or more PermissionSets.
|
||||
*/
|
||||
public class HasPermission extends AbstractCommonIdentifier implements
|
||||
Identifier {
|
||||
Identifier, Comparable<HasPermission> {
|
||||
public static Collection<HasPermission> getIdentifiers(IdentifierBundle ids) {
|
||||
return getIdentifiersForClass(ids, HasPermission.class);
|
||||
}
|
||||
|
@ -27,9 +27,12 @@ public class HasPermission extends AbstractCommonIdentifier implements
|
|||
return set;
|
||||
}
|
||||
|
||||
private final Permission permission;
|
||||
private final Permission permission; // never null
|
||||
|
||||
public HasPermission(Permission permission) {
|
||||
if (permission == null) {
|
||||
throw new NullPointerException("permission may not be null.");
|
||||
}
|
||||
this.permission = permission;
|
||||
}
|
||||
|
||||
|
@ -41,4 +44,29 @@ public class HasPermission extends AbstractCommonIdentifier implements
|
|||
public String toString() {
|
||||
return "HasPermission[" + permission + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return permission.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if (!(obj instanceof HasPermission)) {
|
||||
return false;
|
||||
}
|
||||
HasPermission that = (HasPermission) obj;
|
||||
return this.permission.equals(that.permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(HasPermission that) {
|
||||
return this.permission.compareTo(that.permission);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,9 +25,13 @@ public class IsUser extends AbstractCommonIdentifier implements Identifier {
|
|||
return set;
|
||||
}
|
||||
|
||||
private final String uri;
|
||||
private final String uri; // never null
|
||||
|
||||
public IsUser(String uri) {
|
||||
if (uri == null) {
|
||||
throw new NullPointerException("uri may not be null.");
|
||||
}
|
||||
|
||||
this.uri = uri;
|
||||
}
|
||||
|
||||
|
@ -35,6 +39,26 @@ public class IsUser extends AbstractCommonIdentifier implements Identifier {
|
|||
return uri;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return uri.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) {
|
||||
return true;
|
||||
}
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if (!(obj instanceof IsUser)) {
|
||||
return false;
|
||||
}
|
||||
IsUser that = (IsUser) obj;
|
||||
return this.uri.equals(that.uri);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "IsUser[" + uri + "]";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue