clean up/optimize equals() and hashCode() methods
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / idp / session / impl / ServiceInformationImpl.java
index c8e5dc3..0dbd976 100644 (file)
 
 package edu.internet2.middleware.shibboleth.idp.session.impl;
 
+import org.joda.time.DateTime;
+
 import edu.internet2.middleware.shibboleth.idp.session.AuthenticationMethodInformation;
 import edu.internet2.middleware.shibboleth.idp.session.ServiceInformation;
 
-import org.joda.time.DateTime;
-import org.opensaml.saml2.core.NameID;
-
 /**
  * Information about a service a user has logged in to.
  */
@@ -36,42 +35,17 @@ public class ServiceInformationImpl implements ServiceInformation {
     /** Authentication method used to authenticate the user to the service. */
     private AuthenticationMethodInformation methodInfo;
 
-    /** Name ID provided to the service. */
-    private NameID nameId;
-
     /**
      * Default constructor.
      * 
-     * @param entityID The unique identifier for the service.
-     * @param authenticationInstant The time the user authenticated to the service.
-     * @param methodInfo The authentication method used to log into the service.
-     * @param nameId The {@link NameID} used for the subject/user with this service.
-     * 
-     */
-    public ServiceInformationImpl(String entityID, DateTime authenticationInstant, AuthenticationMethodInformation methodInfo,
-            NameID nameId) {
-
-        this.entityID = entityID;
-        this.authenticationInstant = authenticationInstant;
-        this.methodInfo = methodInfo;
-        this.nameId = nameId;
-    }
-
-    /**
-     * Cloning constructor.
-     * 
-     * @param serviceInfo The ServiceInformation instance to duplicate.
+     * @param id unique identifier for the service.
+     * @param loginInstant time the user logged in to the service.
+     * @param method authentication method used to log into the service.
      */
-    public ServiceInformationImpl(final ServiceInformation serviceInfo) {
-
-        if (serviceInfo == null) {
-            return;
-        }
-
-        this.entityID = serviceInfo.getEntityID();
-        this.authenticationInstant = serviceInfo.getAuthenticationInstant();
-        this.methodInfo = serviceInfo.getAuthenticationMethod();
-        this.nameId = serviceInfo.getSubjectNameID();
+    public ServiceInformationImpl(String id, DateTime loginInstant, AuthenticationMethodInformation method) {
+        entityID = id;
+        authenticationInstant = loginInstant;
+        methodInfo = method;
     }
 
     /** {@inheritDoc} */
@@ -80,7 +54,7 @@ public class ServiceInformationImpl implements ServiceInformation {
     }
 
     /** {@inheritDoc} */
-    public DateTime getAuthenticationInstant() {
+    public DateTime getLoginInstant() {
         return authenticationInstant;
     }
 
@@ -90,24 +64,21 @@ public class ServiceInformationImpl implements ServiceInformation {
     }
 
     /** {@inheritDoc} */
-    public NameID getSubjectNameID() {
-        return nameId;
+    public int hashCode() {
+        return entityID.hashCode();
     }
 
     /** {@inheritDoc} */
     public boolean equals(Object obj) {
+        if(obj == this){
+            return true;
+        }
+        
         if (!(obj instanceof ServiceInformation)) {
             return false;
         }
 
         ServiceInformation si = (ServiceInformation) obj;
-        if (this.getEntityID().equals(si.getEntityID())
-                && this.getAuthenticationInstant().equals(si.getAuthenticationInstant())
-                && this.getSubjectNameID().equals(si.getSubjectNameID())) {
-
-            return true;
-        }
-        
-        return false;
+        return entityID.equals(si.getEntityID());
     }
 }
\ No newline at end of file