clean up/optimize equals() and hashCode() methods
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / idp / session / impl / ServiceInformationImpl.java
1 /*
2  * Copyright [2006] [University Corporation for Advanced Internet Development, Inc.]
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package edu.internet2.middleware.shibboleth.idp.session.impl;
18
19 import org.joda.time.DateTime;
20
21 import edu.internet2.middleware.shibboleth.idp.session.AuthenticationMethodInformation;
22 import edu.internet2.middleware.shibboleth.idp.session.ServiceInformation;
23
24 /**
25  * Information about a service a user has logged in to.
26  */
27 public class ServiceInformationImpl implements ServiceInformation {
28
29     /** Entity ID of the service. */
30     private String entityID;
31
32     /** Instant the user was authenticated to the service. */
33     private DateTime authenticationInstant;
34
35     /** Authentication method used to authenticate the user to the service. */
36     private AuthenticationMethodInformation methodInfo;
37
38     /**
39      * Default constructor.
40      * 
41      * @param id unique identifier for the service.
42      * @param loginInstant time the user logged in to the service.
43      * @param method authentication method used to log into the service.
44      */
45     public ServiceInformationImpl(String id, DateTime loginInstant, AuthenticationMethodInformation method) {
46         entityID = id;
47         authenticationInstant = loginInstant;
48         methodInfo = method;
49     }
50
51     /** {@inheritDoc} */
52     public String getEntityID() {
53         return entityID;
54     }
55
56     /** {@inheritDoc} */
57     public DateTime getLoginInstant() {
58         return authenticationInstant;
59     }
60
61     /** {@inheritDoc} */
62     public AuthenticationMethodInformation getAuthenticationMethod() {
63         return methodInfo;
64     }
65
66     /** {@inheritDoc} */
67     public int hashCode() {
68         return entityID.hashCode();
69     }
70
71     /** {@inheritDoc} */
72     public boolean equals(Object obj) {
73         if(obj == this){
74             return true;
75         }
76         
77         if (!(obj instanceof ServiceInformation)) {
78             return false;
79         }
80
81         ServiceInformation si = (ServiceInformation) obj;
82         return entityID.equals(si.getEntityID());
83     }
84 }