From f4b0aa37da63dfc5b0e64b76d313307a65fb164a Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 2 May 2013 08:16:02 +0200 Subject: [PATCH] move event to correct package, serializable, toString, equals and hashCode --- .../scm/security/AssignedPermission.java | 73 +++++++++++++++++- .../security/StoredAssignedPermission.java | 5 ++ .../StoredAssignedPermissionEvent.java | 76 ++++++++++++++++++- .../scm/security/DefaultSecuritySystem.java | 1 - .../java/sonia/scm/security/ScmRealm.java | 1 - 5 files changed, 150 insertions(+), 6 deletions(-) rename scm-core/src/main/java/sonia/scm/{store => security}/StoredAssignedPermissionEvent.java (64%) diff --git a/scm-core/src/main/java/sonia/scm/security/AssignedPermission.java b/scm-core/src/main/java/sonia/scm/security/AssignedPermission.java index 15ff1b7622..28e6780be0 100644 --- a/scm-core/src/main/java/sonia/scm/security/AssignedPermission.java +++ b/scm-core/src/main/java/sonia/scm/security/AssignedPermission.java @@ -31,8 +31,14 @@ package sonia.scm.security; +//~--- non-JDK imports -------------------------------------------------------- + +import com.google.common.base.Objects; + //~--- JDK imports ------------------------------------------------------------ +import java.io.Serializable; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; @@ -45,9 +51,14 @@ import javax.xml.bind.annotation.XmlRootElement; */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "assigned-permission") -public class AssignedPermission implements PermissionObject +public class AssignedPermission implements PermissionObject, Serializable { + /** Field description */ + private static final long serialVersionUID = -7411338422110323879L; + + //~--- constructors --------------------------------------------------------- + /** * Constructor is only visible for JAXB. * @@ -96,6 +107,66 @@ public class AssignedPermission implements PermissionObject this.permission = permission; } + //~--- methods -------------------------------------------------------------- + + /** + * Method description + * + * + * @param obj + * + * @return + */ + @Override + public boolean equals(Object obj) + { + if (obj == null) + { + return false; + } + + if (getClass() != obj.getClass()) + { + return false; + } + + final AssignedPermission other = (AssignedPermission) obj; + + return Objects.equal(name, other.name) + && Objects.equal(groupPermission, other.groupPermission) + && Objects.equal(permission, other.permission); + } + + /** + * Method description + * + * + * @return + */ + @Override + public int hashCode() + { + return Objects.hashCode(name, groupPermission, permission); + } + + /** + * Method description + * + * + * @return + */ + @Override + public String toString() + { + //J- + return Objects.toStringHelper(this) + .add("name", name) + .add("groupPermisison", groupPermission) + .add("permission", permission) + .toString(); + //J+ + } + //~--- get methods ---------------------------------------------------------- /** diff --git a/scm-core/src/main/java/sonia/scm/security/StoredAssignedPermission.java b/scm-core/src/main/java/sonia/scm/security/StoredAssignedPermission.java index e740c39187..74bf69f651 100644 --- a/scm-core/src/main/java/sonia/scm/security/StoredAssignedPermission.java +++ b/scm-core/src/main/java/sonia/scm/security/StoredAssignedPermission.java @@ -47,6 +47,11 @@ import javax.xml.bind.annotation.XmlRootElement; public class StoredAssignedPermission extends AssignedPermission { + /** Field description */ + private static final long serialVersionUID = -4593919877023168090L; + + //~--- constructors --------------------------------------------------------- + /** * Constructor is only visible for JAXB. * diff --git a/scm-core/src/main/java/sonia/scm/store/StoredAssignedPermissionEvent.java b/scm-core/src/main/java/sonia/scm/security/StoredAssignedPermissionEvent.java similarity index 64% rename from scm-core/src/main/java/sonia/scm/store/StoredAssignedPermissionEvent.java rename to scm-core/src/main/java/sonia/scm/security/StoredAssignedPermissionEvent.java index 821262caef..8535484de4 100644 --- a/scm-core/src/main/java/sonia/scm/store/StoredAssignedPermissionEvent.java +++ b/scm-core/src/main/java/sonia/scm/security/StoredAssignedPermissionEvent.java @@ -29,20 +29,31 @@ -package sonia.scm.store; +package sonia.scm.security; //~--- non-JDK imports -------------------------------------------------------- +import com.google.common.base.Objects; + import sonia.scm.HandlerEvent; -import sonia.scm.security.StoredAssignedPermission; + +//~--- JDK imports ------------------------------------------------------------ + +import java.io.Serializable; /** * * @author Sebastian Sdorra + * @since 1.31 */ -public class StoredAssignedPermissionEvent +public final class StoredAssignedPermissionEvent implements Serializable { + /** Field description */ + private static final long serialVersionUID = 706824497813169009L; + + //~--- constructors --------------------------------------------------------- + /** * Constructs ... * @@ -57,6 +68,65 @@ public class StoredAssignedPermissionEvent this.permission = permission; } + //~--- methods -------------------------------------------------------------- + + /** + * Method description + * + * + * @param obj + * + * @return + */ + @Override + public boolean equals(Object obj) + { + if (obj == null) + { + return false; + } + + if (getClass() != obj.getClass()) + { + return false; + } + + final StoredAssignedPermissionEvent other = + (StoredAssignedPermissionEvent) obj; + + return Objects.equal(type, other.type) + && Objects.equal(permission, other.permission); + } + + /** + * Method description + * + * + * @return + */ + @Override + public int hashCode() + { + return Objects.hashCode(type, permission); + } + + /** + * Method description + * + * + * @return + */ + @Override + public String toString() + { + //J- + return Objects.toStringHelper(this) + .add("type", type) + .add("permission", permission) + .toString(); + //J+ + } + //~--- get methods ---------------------------------------------------------- /** diff --git a/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java b/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java index 1cb2fda6b2..2383e8c574 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java +++ b/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java @@ -52,7 +52,6 @@ import sonia.scm.event.Subscriber; import sonia.scm.group.GroupEvent; import sonia.scm.store.ConfigurationEntryStore; import sonia.scm.store.ConfigurationEntryStoreFactory; -import sonia.scm.store.StoredAssignedPermissionEvent; import sonia.scm.user.UserEvent; //~--- JDK imports ------------------------------------------------------------ diff --git a/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java b/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java index b08160049f..7f4c0d91fc 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java +++ b/scm-webapp/src/main/java/sonia/scm/security/ScmRealm.java @@ -76,7 +76,6 @@ import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryDAO; import sonia.scm.repository.RepositoryEvent; import sonia.scm.repository.RepositoryManager; -import sonia.scm.store.StoredAssignedPermissionEvent; import sonia.scm.user.User; import sonia.scm.user.UserDAO; import sonia.scm.user.UserEvent;