diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java index 9621842b0..11de68c9b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/HasPermission.java @@ -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 { public static Collection 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); + } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/IsUser.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/IsUser.java index 635069a80..220e814af 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/IsUser.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/auth/identifier/common/IsUser.java @@ -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 + "]";