X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjava%2Forg%2Fmxchange%2Fpizzaapplication%2Fbeans%2Fuser%2FPizzaUserWebSessionBean.java;h=06f8d61e7ad389fa0f72459fe43108ea5e8a660f;hb=7f0541570bda07790dcddb59eb93c84d82d793a9;hp=a71bd4c80e82610d9468e299a1ce5074c8dc77d1;hpb=16c517e78c186ed0ff9d891e6da4e115915a0621;p=pizzaservice-war.git diff --git a/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java b/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java index a71bd4c8..06f8d61e 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/user/PizzaUserWebSessionBean.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Roland Haeder + * Copyright (C) 2016, 2017 Roland Häder * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -17,15 +17,15 @@ package org.mxchange.pizzaapplication.beans.user; import java.text.MessageFormat; -import java.util.Collections; -import java.util.Date; -import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; import java.util.Objects; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; +import javax.enterprise.event.Event; import javax.enterprise.event.Observes; +import javax.enterprise.inject.Any; +import javax.faces.context.FacesContext; import javax.faces.view.facelets.FaceletException; import javax.inject.Inject; import javax.inject.Named; @@ -33,614 +33,581 @@ import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.jcontacts.contact.Contact; -import org.mxchange.jcontacts.contact.UserContact; -import org.mxchange.jcontacts.contact.gender.Gender; -import org.mxchange.jcountry.data.Country; -import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber; -import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber; -import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber; -import org.mxchange.jphone.phonenumbers.fax.FaxNumber; -import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber; -import org.mxchange.jphone.phonenumbers.landline.LandLineNumber; -import org.mxchange.jphone.phonenumbers.smsprovider.SmsProvider; -import org.mxchange.jusercore.events.login.UserLoggedInEvent; -import org.mxchange.jusercore.events.registration.UserRegisteredEvent; +import org.mxchange.jusercore.events.confirmation.ObservableUserConfirmedAccountEvent; +import org.mxchange.jusercore.events.login.ObservableUserLoggedInEvent; +import org.mxchange.jusercore.events.registration.ObservableUserRegisteredEvent; +import org.mxchange.jusercore.events.user.add.ObservableAdminAddedUserEvent; +import org.mxchange.jusercore.events.user.delete.ObservableAdminDeletedUserEvent; +import org.mxchange.jusercore.events.user.linked.ObservableAdminLinkedUserEvent; +import org.mxchange.jusercore.events.user.locked.ObservableAdminLockedUserEvent; +import org.mxchange.jusercore.events.user.password_change.ObservableUpdatedUserPasswordEvent; +import org.mxchange.jusercore.events.user.unlocked.ObservableAdminUnlockedUserEvent; +import org.mxchange.jusercore.events.user.update.ObservableAdminUpdatedUserDataEvent; +import org.mxchange.jusercore.events.user.update.ObservableUpdatedUserPersonalDataEvent; +import org.mxchange.jusercore.events.user.update.UpdatedUserPersonalDataEvent; +import org.mxchange.jusercore.exceptions.UserEmailAddressNotFoundException; import org.mxchange.jusercore.exceptions.UserNotFoundException; +import org.mxchange.jusercore.exceptions.UserPasswordMismatchException; import org.mxchange.jusercore.model.user.LoginUser; import org.mxchange.jusercore.model.user.User; import org.mxchange.jusercore.model.user.UserSessionBeanRemote; +import org.mxchange.jusercore.model.user.UserUtils; import org.mxchange.jusercore.model.user.profilemodes.ProfileMode; -import org.mxchange.pizzaapplication.beans.login.PizzaUserLoginWebSessionController; +import org.mxchange.pizzaapplication.beans.BasePizzaController; +import org.mxchange.pizzaapplication.beans.contact.PizzaContactWebSessionController; +import org.mxchange.pizzaapplication.beans.features.PizzaFeaturesWebApplicationController; +import org.mxchange.pizzaapplication.beans.login.user.PizzaUserLoginWebSessionController; /** * A user bean (controller) *
- * @author Roland Haeder
+ * @TODO Hmm, makes that sense? Having visible user list in current
+ * (session-scoped) user's visible user list?
*/
- private Integer faxAreaCode;
+ private List
+ * @param event Event being fired
*/
- private Long faxNumber;
+ public void afterAdminAddedUserEvent (@Observes final ObservableAdminAddedUserEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getAddedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.addedUser is null"); //NOI18N
+ } else if (event.getAddedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.addedUser.userId is null"); //NOI18N
+ } else if (event.getAddedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getAddedUser(), event.getAddedUser().getUserId())); //NOI18N
+ }
- /**
- * First name
- */
- private String firstName;
+ // Update user list
+ this.updateList(event.getAddedUser());
- /**
- * Gender instance
- */
- private Gender gender;
+ // Clear all data
+ this.clear();
- /**
- * House number
- */
- private Short houseNumber;
+ // Set user id again
+ this.setUserId(event.getAddedUser().getUserId());
+ }
/**
- * Login bean (controller)
+ * Event observer for deleted user accounts (by administrator)
+ *
+ * @param event Event being fired
*/
- @Inject
- private PizzaUserLoginWebSessionController loginController;
+ public void afterAdminDeletedUserEvent (final ObservableAdminDeletedUserEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getDeletedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.deletedUser is null"); //NOI18N
+ } else if (event.getDeletedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.deletedUser.userId is null"); //NOI18N
+ } else if (event.getDeletedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getDeletedUser(), event.getDeletedUser().getUserId())); //NOI18N
+ }
- /**
- * Phone number area code
- */
- private Integer phoneAreaCode;
+ // Update user list
+ this.removeFromList(event.getDeletedUser());
- /**
- * Country instance for phone number
- */
- private Country phoneCountry;
+ // Clear all data
+ this.clear();
+ }
/**
- * Phone number
+ * Event observer for linked users with existing contact data
+ *
+ * @param event Event being fired
*/
- private Long phoneNumber;
+ public void afterAdminLinkedUserEvent (@Observes final ObservableAdminLinkedUserEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getLinkedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.linkedUser is null"); //NOI18N
+ } else if (event.getLinkedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.linkedUser.userId is null"); //NOI18N
+ } else if (event.getLinkedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getLinkedUser(), event.getLinkedUser().getUserId())); //NOI18N
+ }
- /**
- * Street
- */
- private String street;
+ // Update user list
+ this.updateList(event.getLinkedUser());
- /**
- * Remote user bean
- */
- private final UserSessionBeanRemote userBean;
+ // Clear all data
+ this.clear();
- /**
- * User id
- */
- private Long userId;
+ // Set user id again
+ this.setUserId(event.getLinkedUser().getUserId());
+ }
/**
- * User name
+ * Event observer for locked users
+ *
+ * @param event Event being fired
*/
- private String userName;
+ public void afterAdminLockedUserEvent (@Observes final ObservableAdminLockedUserEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getLockedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.lockedUser is null"); //NOI18N
+ } else if (event.getLockedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.lockedUser.userId is null"); //NOI18N
+ } else if (event.getLockedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getLockedUser(), event.getLockedUser().getUserId())); //NOI18N
+ }
- /**
- * User name list
- */
- private List
+ * @param event Event being fired
*/
- private String userPassword;
+ public void afterAdminUnlockedUserEvent (@Observes final ObservableAdminUnlockedUserEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getUnlockedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.unlockedUser is null"); //NOI18N
+ } else if (event.getUnlockedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.unlockedUser.userId is null"); //NOI18N
+ } else if (event.getUnlockedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getUnlockedUser(), event.getUnlockedUser().getUserId())); //NOI18N
+ }
- /**
- * User password repeated (unencrypted from web form)
- */
- private String userPasswordRepeat;
+ // Update user list
+ this.updateList(event.getUnlockedUser());
+ }
/**
- * Whether the user wants a public profile
+ * Event observer for updated user data by administrator
+ *
+ * @param event Event being updated
*/
- private ProfileMode userProfileMode;
+ public void afterAdminUpdatedUserDataEvent (@Observes final ObservableAdminUpdatedUserDataEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getUpdatedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.updatedUser is null"); //NOI18N
+ } else if (event.getUpdatedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.updatedUser.userId is null"); //NOI18N
+ } else if (event.getUpdatedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getUpdatedUser(), event.getUpdatedUser().getUserId())); //NOI18N
+ }
- /**
- * A list of all public user profiles
- */
- private List
+ * @param event Event being fired
*/
- private Integer zipCode;
+ public void afterUserConfirmedAccountEvent (@Observes final ObservableUserConfirmedAccountEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getConfirmedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.confirmedUser is null"); //NOI18N
+ } else if (event.getConfirmedUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.confirmedUser.userId is null"); //NOI18N
+ } else if (event.getConfirmedUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getConfirmedUser(), event.getConfirmedUser().getUserId())); //NOI18N
+ }
+
+ // Update user list
+ this.updateList(event.getConfirmedUser());
+ }
/**
- * Default constructor
+ * Event observer for logged-in user
+ *
+ * @param event Event instance
*/
- public PizzaUserWebSessionBean () {
- // Set gender to UNKNOWN
- this.gender = Gender.UNKNOWN;
+ public void afterUserLoginEvent (@Observes final ObservableUserLoggedInEvent event) {
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getLoggedInUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.registeredUser is null"); //NOI18N
+ } else if (event.getLoggedInUser().getUserId() == null) {
+ // userId is null
+ throw new NullPointerException("event.registeredUser.userId is null"); //NOI18N
+ } else if (event.getLoggedInUser().getUserId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getLoggedInUser(), event.getLoggedInUser().getUserId())); //NOI18N
+ }
- // Try it
- try {
- // Get initial context
- Context context = new InitialContext();
+ // "Cache" user instance
+ User loggedInUser = event.getLoggedInUser();
- // Try to lookup
- this.userBean = (UserSessionBeanRemote) context.lookup("java:global/PizzaService-ejb/user!org.mxchange.jusercore.model.user.UserSessionBeanRemote"); //NOI18N
- } catch (final NamingException e) {
- // Throw again
- throw new FaceletException(e);
+ // Copy all data to this bean
+ this.copyUser(loggedInUser);
+
+ // Is the user visible?
+ if (Objects.equals(loggedInUser.getUserProfileMode(), ProfileMode.PUBLIC)) {
+ // Yes, then add user
+ this.visibleUserList.add(loggedInUser);
}
}
- @Override
- public void afterRegistrationEvent (final @Observes UserRegisteredEvent event) {
- // Trace message
- System.out.println(MessageFormat.format("UserWebBean:afterRegistration: event={0} - CALLED!", event)); //NOI18N
-
+ /**
+ * Event observer for new user registrations
+ *
+ * @param event User registration event
+ */
+ public void afterUserRegistrationEvent (@Observes final ObservableUserRegisteredEvent event) {
// event should not be null
if (null == event) {
// Throw NPE
throw new NullPointerException("event is null"); //NOI18N
- } else if (event.getUser() == null) {
+ } else if (event.getRegisteredUser() == null) {
// Throw NPE again
- throw new NullPointerException("event.user is null"); //NOI18N
- } else if (event.getUser().getUserId() == null) {
+ throw new NullPointerException("event.registeredUser is null"); //NOI18N
+ } else if (event.getRegisteredUser().getUserId() == null) {
// userId is null
- throw new NullPointerException("event.user.userId is null"); //NOI18N
- } else if (event.getUser().getUserId() < 1) {
+ throw new NullPointerException("event.registeredUser.userId is null"); //NOI18N
+ } else if (event.getRegisteredUser().getUserId() < 1) {
// Not avalid id
- throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getUser(), event.getUser().getUserId())); //NOI18N
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getRegisteredUser(), event.getRegisteredUser().getUserId())); //NOI18N
}
// Get user instance
- User registeredUser = event.getUser();
-
- // Debug message
- System.out.println(MessageFormat.format("UserWebBean:afterRegistration: registeredUser={0}", registeredUser)); //NOI18N
+ User registeredUser = event.getRegisteredUser();
// Copy all data from registered->user
this.copyUser(registeredUser);
- // Add user name and email address
- this.addUserNameEmailAddress(registeredUser);
-
// Clear all data
- this.clearData();
+ this.clear();
- // Set user id again
- this.setUserId(registeredUser.getUserId());
+ // Update user list
+ this.updateList(registeredUser);
+
+ // Add user name
+ this.addUserName(registeredUser);
// Is the account public?
- if (registeredUser.getUserProfileMode().equals(ProfileMode.PUBLIC)) {
+ if (Objects.equals(registeredUser.getUserProfileMode(), ProfileMode.PUBLIC)) {
// Also add it to this list
this.visibleUserList.add(registeredUser);
}
- // Trace message
- System.out.println("UserWebBean:afterRegistration: EXIT!"); //NOI18N
+ // Set user id again
+ this.setUserId(registeredUser.getUserId());
}
- @Override
- public void afterUserLogin (final @Observes UserLoggedInEvent event) {
- // Trace message
- System.out.println(MessageFormat.format("UserWebBean:afterUserLogin: event={0} - CALLED!", event)); //NOI18N
-
- // event should not be null
+ /**
+ * Method being call after user's password has been updated (and history
+ * entry has been created).
+ *
+ * @param event Event being observed
+ */
+ public void afterUserUpdatedPasswordEvent (@Observes final ObservableUpdatedUserPasswordEvent event) {
+ // Check parameter
if (null == event) {
// Throw NPE
throw new NullPointerException("event is null"); //NOI18N
- } else if (event.getUser() == null) {
+ } else if (event.getPasswordHistory() == null) {
// Throw NPE again
- throw new NullPointerException("event.user is null"); //NOI18N
- } else if (event.getUser().getUserId() == null) {
- // userId is null
- throw new NullPointerException("event.user.userId is null"); //NOI18N
- } else if (event.getUser().getUserId() < 1) {
- // Not avalid id
- throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getUser(), event.getUser().getUserId())); //NOI18N
+ throw new NullPointerException("event.passwordHistory is null"); //NOI18N
+ } else if (event.getPasswordHistory().getUserPasswordHistoryId() == null) {
+ // ... and again
+ throw new NullPointerException("event.passwordHistory.userPasswordHistoryId is null"); //NOI18N
+ } else if (event.getPasswordHistory().getUserPasswordHistoryId() < 1) {
+ // Invalid value
+ throw new IllegalArgumentException(MessageFormat.format("event.passwordHistory.userPasswordHistoryId={0} is in valid", event.getPasswordHistory().getUserPasswordHistoryId())); //NOI18N
}
- // Re-initialize list
- this.visibleUserList = this.userBean.allMemberPublicVisibleUsers();
+ // Update user list
+ this.updateList(event.getPasswordHistory().getUserPasswordHistoryUser());
+ }
- // Copy all data to this bean
- this.copyUser(event.getUser());
+ /**
+ * Listens to fired event when user updated personal data
+ *
+ * @param event Event being fired
+ */
+ public void afterUserUpdatedPersonalDataEvent (@Observes final ObservableUpdatedUserPersonalDataEvent event) {
+ // Check parameter
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getUpdatedUser() == null) {
+ // Throw NPE again
+ throw new NullPointerException("event.updatedUser is null"); //NOI18N
+ } else if (event.getUpdatedUser().getUserId() == null) {
+ // ... and again
+ throw new NullPointerException("event.updatedUser.userId is null"); //NOI18N
+ } else if (event.getUpdatedUser().getUserId() < 1) {
+ // Invalid value
+ throw new IllegalArgumentException(MessageFormat.format("event.updatedUser.userId={0} is in valid", event.getUpdatedUser().getUserId())); //NOI18N
+ }
- // Trace message
- System.out.println(MessageFormat.format("UserWebBean:afterUserLogin: this.visibleUserList.size()={0} - EXIT!", this.visibleUserList.size())); //NOI18N
+ // Update user list
+ this.updateList(event.getUpdatedUser());
}
@Override
+ @SuppressWarnings ("ReturnOfCollectionOrArrayField")
+ public List
* @param user User instance
*/
- private void addUserNameEmailAddress (final User user) {
+ private void addUserName (final User user) {
// Make sure the entry is not added yet
if (this.userNameList.contains(user.getUserName())) {
// Abort here
throw new IllegalArgumentException(MessageFormat.format("User name {0} already added.", user.getUserName())); //NOI18N
- } else if (this.emailAddressList.contains(user.getUserContact().getContactEmailAddress())) {
+ } else if (this.contactController.isEmailAddressRegistered(user.getUserContact())) {
// Already added
throw new IllegalArgumentException(MessageFormat.format("Email address {0} already added.", user.getUserContact().getContactEmailAddress())); //NOI18N
}
// Add user name
this.userNameList.add(user.getUserName());
-
- // Add email addres
- this.emailAddressList.add(user.getUserContact().getContactEmailAddress());
}
/**
- * Clears all data in this bean
+ * Clears this bean
*/
- private void clearData () {
+ private void clear () {
// Clear all data
// - personal data
this.setUserId(null);
- this.setGender(Gender.UNKNOWN);
this.setUserProfileMode(null);
- this.setFirstName(null);
- this.setFamilyName(null);
- this.setStreet(null);
- this.setHouseNumber(null);
- this.setZipCode(null);
- this.setCity(null);
- this.setCountry(null);
-
- // - contact data
- this.setEmailAddress(null);
- this.setEmailAddressRepeat(null);
- this.setPhoneAreaCode(null);
- this.setCellphoneCarrier(null);
- this.setFaxAreaCode(null);
// - other data
- this.setBirthday(null);
- this.setComment(null);
this.setUserName(null);
this.setUserPassword(null);
this.setUserPasswordRepeat(null);
@@ -872,43 +934,92 @@ public class PizzaUserWebSessionBean implements PizzaUserWebSessionController {
* @param user User instance
*/
private void copyUser (final User user) {
+ // Make sure the instance is valid
+ if (null == user) {
+ // Throw NPE
+ throw new NullPointerException("user is null"); //NOI18N
+ } else if (user.getUserContact() == null) {
+ // Throw again ...
+ throw new NullPointerException("user.userContact is null"); //NOI18N
+ }
+
// Copy all fields:
// - base data
this.setUserId(user.getUserId());
this.setUserProfileMode(user.getUserProfileMode());
- this.setGender(user.getUserContact().getContactGender());
- this.setFirstName(user.getUserContact().getContactFirstName());
- this.setFamilyName(user.getUserContact().getContactFamilyName());
- this.setStreet(user.getUserContact().getContactStreet());
- this.setHouseNumber(user.getUserContact().getContactHouseNumber());
- this.setZipCode(user.getUserContact().getContactZipCode());
- this.setCity(user.getUserContact().getContactCity());
- this.setCountry(user.getUserContact().getContactCountry());
-
- // Get cellphone, phone and fax instance
- DialableCellphoneNumber cellphone = user.getUserContact().getContactCellphoneNumber();
- DialableFaxNumber fax = user.getUserContact().getContactFaxNumber();
- DialableLandLineNumber phone = user.getUserContact().getContactLandLineNumber();
-
- // - contact data
- if ((phone instanceof DialableLandLineNumber) && (phone.getPhoneAreaCode() > 0)) {
- this.setPhoneCountry(phone.getPhoneCountry());
- this.setPhoneAreaCode(phone.getPhoneAreaCode());
- this.setPhoneNumber(phone.getPhoneNumber());
- }
- if ((cellphone instanceof DialableCellphoneNumber) && (cellphone.getCellphoneProvider() instanceof SmsProvider)) {
- this.setCellphoneCarrier(cellphone.getCellphoneProvider());
- this.setCellphoneNumber(cellphone.getPhoneNumber());
- }
- if ((fax instanceof DialableFaxNumber) && (fax.getPhoneAreaCode() > 0)) {
- this.setFaxCountry(fax.getPhoneCountry());
- this.setFaxAreaCode(fax.getPhoneAreaCode());
- this.setFaxNumber(fax.getPhoneNumber());
- }
- this.setEmailAddress(user.getUserContact().getContactEmailAddress());
-
- // -- other data
- this.setBirthday(user.getUserContact().getContactBirthday());
- this.setComment(user.getUserContact().getContactComment());
}
+
+ /**
+ * Removes user from all lists
+ *
+ * @param user User to remove
+ */
+ private void removeFromList (final User user) {
+ // The user should be valid
+ if (null == user) {
+ // Throw NPE
+ throw new NullPointerException("user is null"); //NOI18N
+ } else if (user.getUserId() == null) {
+ // ... again NPE
+ throw new NullPointerException("user.userId is null"); //NOI18N
+ } else if (user.getUserId() < 1) {
+ // Invalid id
+ throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is invalid", user.getUserId())); //NOI18N
+ }
+
+ // Remove it from lists
+ this.userList.remove(user);
+ this.visibleUserList.remove(user);
+
+ // Remove name from list
+ this.userNameList.remove(user.getUserName());
+ }
+
+ /**
+ * Updates list with given user instance
+ *
+ * @param user User instance
+ */
+ private void updateList (final User user) {
+ // The user should be valid
+ if (null == user) {
+ // Throw NPE
+ throw new NullPointerException("user is null"); //NOI18N
+ } else if (user.getUserId() == null) {
+ // ... again NPE
+ throw new NullPointerException("user.userId is null"); //NOI18N
+ } else if (user.getUserId() < 1) {
+ // Invalid id
+ throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is invalid", user.getUserId())); //NOI18N
+ } else if (user.getUserContact() == null) {
+ // Throw again ...
+ throw new NullPointerException("user.userContact is null"); //NOI18N
+ } else if (user.getUserContact().getContactId() == null) {
+ // Throw again ...
+ throw new NullPointerException("user.userContact.contactId is null"); //NOI18N
+ } else if (user.getUserContact().getContactId() < 1) {
+ // Throw again ...
+ throw new NullPointerException(MessageFormat.format("user.userContact.contactId={0} is invalid.", user.getUserContact().getContactId())); //NOI18N
+ }
+
+ // Get iterator from list
+ Iterator