View Javadoc

1   /*
2    * Copyright (C) 2010 Atlassian
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 com.atlassian.jira.rest.client.api.domain;
18  
19  import com.google.common.base.Objects;
20  import org.joda.time.DateTime;
21  
22  import javax.annotation.Nullable;
23  
24  /**
25   * Statistics about logins (successful and failed logins number and last date) for the current user
26   *
27   * @since v0.1
28   */
29  public class LoginInfo {
30      private final int failedLoginCount;
31      private final int loginCount;
32      @Nullable
33      private final DateTime lastFailedLoginDate;
34      @Nullable
35      private final DateTime previousLoginDate;
36  
37      public LoginInfo(int failedLoginCount, int loginCount, @Nullable DateTime lastFailedLoginDate, @Nullable DateTime previousLoginDate) {
38          this.failedLoginCount = failedLoginCount;
39          this.loginCount = loginCount;
40          this.lastFailedLoginDate = lastFailedLoginDate;
41          this.previousLoginDate = previousLoginDate;
42      }
43  
44  
45      public int getFailedLoginCount() {
46          return failedLoginCount;
47      }
48  
49      public int getLoginCount() {
50          return loginCount;
51      }
52  
53      @Nullable
54      public DateTime getLastFailedLoginDate() {
55          return lastFailedLoginDate;
56      }
57  
58      @Nullable
59      public DateTime getPreviousLoginDate() {
60          return previousLoginDate;
61      }
62  
63  
64      @Override
65      public String toString() {
66          return Objects.toStringHelper(this).
67                  add("failedLoginCount", failedLoginCount).
68                  add("loginCount", loginCount).
69                  add("lastFailedLoginDate", lastFailedLoginDate).
70                  add("previousLoginDate", previousLoginDate).
71                  toString();
72      }
73  
74      @Override
75      public boolean equals(Object obj) {
76          if (obj instanceof LoginInfo) {
77              LoginInfo that = (LoginInfo) obj;
78              return Objects.equal(this.failedLoginCount, that.failedLoginCount)
79                      && Objects.equal(this.loginCount, that.loginCount)
80                      && Objects.equal(this.lastFailedLoginDate, that.lastFailedLoginDate)
81                      && Objects.equal(this.previousLoginDate, that.previousLoginDate);
82          }
83          return false;
84      }
85  
86      @Override
87      public int hashCode() {
88          return Objects.hashCode(failedLoginCount, loginCount, lastFailedLoginDate, previousLoginDate);
89      }
90  
91  }