2 * Copyright (C) 2015 Roland Haeder
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jusercore.model.user;
19 import java.io.Serializable;
20 import java.util.Calendar;
21 import org.mxchange.jcontacts.contact.Contact;
22 import org.mxchange.jusercore.model.user.status.UserAccountStatus;
25 * A customer interface
27 * @author Roland Haeder<roland@mxchange.org>
29 public interface User extends Serializable {
32 * Copies all attributes from other customer object to this
34 * @param customer Source instance
36 void copyAll (final User customer);
39 * Getter for account status
41 * @return Account status
43 UserAccountStatus getUserAccountStatus ();
46 * Setter for account status
48 * @param customerStatus Account status
50 void setUserAccountStatus (final UserAccountStatus customerStatus);
53 * Getter for confirmation key
55 * @return Confirmation key
57 String getUserConfirmKey ();
60 * Setter for confirmation key
62 * @param customerConfirmKey Confirmation key
64 void setUserConfirmKey (final String customerConfirmKey);
67 * Getter for contact instance
69 * @return Contact id number
71 Contact getUserContact ();
74 * Setter for contact instance
76 * @param contact Contact instance
78 void setUserContact (final Contact contact);
81 * Getter for "created" timestamp
83 * @return "created" timestamp
85 Calendar getUserCreated ();
88 * Setter for "created" timestamp
90 * @param customerCreated "created" timestamp
92 void setUserCreated (final Calendar customerCreated);
95 * Getter for encrypted password
97 * @return Encrypted password
99 String getUserEncryptedPassword ();
102 * Setter for password hash
104 * @param userEncryptedPassword Encrypted password
106 void setUserEncryptedPassword (final String userEncryptedPassword);
109 * Getter for customer id number
111 * @return User id number
116 * Settte for customer id number
118 * @param customerId User id number
120 void setUserId (final Long customerId);
123 * Getter for "locked" timestamp
125 * @return "locked" timestamp
127 Calendar getUserLocked ();
130 * Getter for "locked" timestamp
132 * @param customerLocked "locked" timestamp
134 void setUserLocked (final Calendar customerLocked);
137 * Getter for customer number
139 * @return User number
141 String getUserName ();
144 * Setter for customer number
146 * @param customerNumber User number
148 void setUserName (final String customerNumber);
151 * Getter for public user profile flag
153 * @return Whether the user has a public profile
155 Boolean getUserPublicProfile ();
158 * Setter for public user profile flag
160 * @param userPublicProfile Whether the user has a public profile
162 void setUserPublicProfile (final Boolean userPublicProfile);
165 * Checks if object is a User instance and whether it matches with this
168 * @param object Object to be checked
169 * @return Whether it matches this object
172 boolean equals (final Object object);
175 * Hash code caluclation for this object
177 * @return Hash code for this object