NIHVIVO-3523 Override equals() and hashCode() to make these Identifiers more flexible and more testable.

This commit is contained in:
j2blake 2011-12-23 16:48:46 +00:00
parent 59f3cb6311
commit 5ca2848946
2 changed files with 55 additions and 3 deletions

View file

@ -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);
}
}

View file

@ -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 + "]";