this.clear();
// Call other method
- this.contactList.add(event.getAddedContact());
+ this.uniqueAddContact(event.getAddedContact());
- // Call other method
+ // Add to selectable contacts
this.selectableContacts.add(event.getAddedContact());
}
throw new IllegalArgumentException(MessageFormat.format("contactId of contact={0} is not valid: {1}", event.getUpdatedContact(), event.getUpdatedContact().getContactId())); //NOI18N
}
- // Get iterator from list
- Iterator<Contact> iterator = this.contactList.iterator();
-
- // "Walk" through all entries
- while (iterator.hasNext()) {
- // Get next element
- Contact next = iterator.next();
-
- // Is id number the same?
- if (Objects.equals(event.getUpdatedContact().getContactId(), next.getContactId())) {
- // Found entry, so remove it and abort
- this.contactList.remove(next);
-
- // Remove also email from list
- this.emailAddressList.remove(next.getContactEmailAddress());
- break;
- }
- }
-
- // Add contact to list
- this.contactList.add(event.getUpdatedContact());
+ // Add contact instance only once
+ this.uniqueAddContact(event.getUpdatedContact());
// Add email address to list
this.emailAddressList.add(event.getUpdatedContact().getContactEmailAddress());
// Copy all data from registered->user
this.copyContact(registeredContact);
+ // Add contact instance only once
+ this.uniqueAddContact(registeredContact);
+
// Add user name and email address
this.addUserNameEmailAddress(registeredContact);
throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getConfirmedUser(), event.getConfirmedUser().getUserId())); //NOI18N
}
- // "Cache" contact instance
- Contact contact = event.getConfirmedUser().getUserContact();
-
- // Get iterator from list
- Iterator<Contact> iterator = this.contactList.iterator();
-
- // "Walk" through all entries
- while (iterator.hasNext()) {
- // Get next element
- Contact next = iterator.next();
-
- // Is id number the same?
- if (Objects.equals(contact.getContactId(), next.getContactId())) {
- // Found entry, so remove it and abort
- this.removeContact(next);
- break;
- }
- }
-
- // Add contact to list
- this.contactList.add(contact);
+ // Add contact instance only once
+ this.uniqueAddContact(event.getConfirmedUser().getUserContact());
}
@Override
this.emailAddressList.remove(contact.getContactEmailAddress());
}
+ /**
+ * Adds unique instance to contact list. First any existing instance is
+ * being removed, then the new instance is added.
+ * <p>
+ * @param contact Contact instance to add uniquely
+ */
+ private void uniqueAddContact (final Contact contact) {
+ // Is the instance valid?
+ if (null == contact) {
+ // Throw NPE
+ throw new NullPointerException("contact is null"); //NOI18N
+ } else if (contact.getContactId() == null) {
+ // Throw NPE
+ throw new NullPointerException("contact.contactId is null"); //NOI18N
+ } else if (contact.getContactId() < 1) {
+ // Not valid id number
+ throw new IllegalArgumentException(MessageFormat.format("contact.contactId={0} is not valid.", contact.getContactId())); //NOI18N
+ }
+
+ // Get iterator from list
+ Iterator<Contact> iterator = this.contactList.iterator();
+
+ // "Walk" through all entries
+ while (iterator.hasNext()) {
+ // Get next element
+ Contact next = iterator.next();
+
+ // Is id number the same?
+ if (Objects.equals(contact.getContactId(), next.getContactId())) {
+ // Found entry, so remove it and abort
+ this.removeContact(next);
+ break;
+ }
+ }
+
+ // Add contact to list
+ this.contactList.add(contact);
+ }
+
}
throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getAddedUser(), event.getAddedUser().getUserId())); //NOI18N
}
- // Add user to local list
- this.userList.add(event.getAddedUser());
+ // Add user uniquely
+ this.uniqueAddUser(event.getAddedUser());
// Clear all data
this.clear();
// Clear all data
this.clear();
- // Add user to local list
- this.userList.add(registeredUser);
+ // Add user uniquely
+ this.uniqueAddUser(registeredUser);
// Add user name
this.addUserName(registeredUser);
throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getConfirmedUser(), event.getConfirmedUser().getUserId())); //NOI18N
}
- // Get iterator from list
- Iterator<User> iterator = this.userList.iterator();
-
- // "Walk" through all entries
- while (iterator.hasNext()) {
- // Get next element
- User next = iterator.next();
-
- // Is id number the same?
- if (Objects.equals(event.getConfirmedUser().getUserId(), next.getUserId())) {
- // Found entry, so remove it and abort
- this.userList.remove(next);
- break;
- }
- }
-
- // Add contact to list
- this.userList.add(event.getConfirmedUser());
+ // Add user uniquely
+ this.uniqueAddUser(event.getConfirmedUser());
}
@Override
this.copyUser(event.getLoggedInUser());
// Re-initialize list
+ // @TODO This calls the EJB again, after a user logs in which can cause lots of calls on it.
this.visibleUserList = this.userBean.allMemberPublicVisibleUsers();
// Trace message
}
@Override
- public User lookupUserById (final Long userId) throws UserNotFoundException {
+ public User lookupUserByEmailAddress (final String emailAddress) throws UserEmailAddressNotFoundException {
// Parameter must be valid
- if (null == userId) {
+ if (null == emailAddress) {
// Throw NPE
- throw new NullPointerException("userId is null"); //NOI18N
- } else if (userId < 1) {
+ throw new NullPointerException("emailAddress is null"); //NOI18N
+ } else if (emailAddress.isEmpty()) {
// Not valid
- throw new IllegalArgumentException(MessageFormat.format("userId={0} is not valid.", userId)); //NOI18N
+ throw new IllegalArgumentException("emailAddress is empty"); //NOI18N
}
// Init variable
// Get next user
User next = iterator.next();
- // Is the user id found?
- if (Objects.equals(next.getUserId(), userId)) {
+ // Contact should be set
+ if (next.getUserContact() == null) {
+ // Contact is null
+ throw new NullPointerException(MessageFormat.format("next.userContact is null for user id {0}", next.getUserId())); //NOI18N
+ } else if (next.getUserContact().getContactEmailAddress() == null) {
+ // Email address should be set
+ throw new NullPointerException(MessageFormat.format("next.userContact.contactEmailAddress is null for user id {0}", next.getUserId())); //NOI18N //NOI18N
+ }
+
+ // Is the email address found?
+ if (Objects.equals(next.getUserContact().getContactEmailAddress(), emailAddress)) {
// Copy to other variable
user = next;
break;
// Is it still null?
if (null == user) {
// Not visible for the current user
- throw new UserNotFoundException(userId);
+ throw new UserEmailAddressNotFoundException(emailAddress);
}
// Return it
}
@Override
- public User lookupUserByEmailAddress (final String emailAddress) throws UserEmailAddressNotFoundException {
+ public User lookupUserById (final Long userId) throws UserNotFoundException {
// Parameter must be valid
- if (null == emailAddress) {
+ if (null == userId) {
// Throw NPE
- throw new NullPointerException("emailAddress is null"); //NOI18N
- } else if (emailAddress.isEmpty()) {
+ throw new NullPointerException("userId is null"); //NOI18N
+ } else if (userId < 1) {
// Not valid
- throw new IllegalArgumentException("emailAddress is empty"); //NOI18N
+ throw new IllegalArgumentException(MessageFormat.format("userId={0} is not valid.", userId)); //NOI18N
}
// Init variable
// Get next user
User next = iterator.next();
- // Contact should be set
- if (next.getUserContact() == null) {
- // Contact is null
- throw new NullPointerException(MessageFormat.format("next.userContact is null for user id {0}", next.getUserId())); //NOI18N
- } else if (next.getUserContact().getContactEmailAddress() == null) {
- // Email address should be set
- throw new NullPointerException(MessageFormat.format("next.userContact.contactEmailAddress is null for user id {0}", next.getUserId())); //NOI18N //NOI18N
- }
-
- // Is the email address found?
- if (Objects.equals(next.getUserContact().getContactEmailAddress(), emailAddress)) {
+ // Is the user id found?
+ if (Objects.equals(next.getUserId(), userId)) {
// Copy to other variable
user = next;
break;
// Is it still null?
if (null == user) {
// Not visible for the current user
- throw new UserEmailAddressNotFoundException(emailAddress);
+ throw new UserNotFoundException(userId);
}
// Return it
this.setUserProfileMode(user.getUserProfileMode());
}
+ /**
+ * Uniquely adds given user instance to user list. First an existing
+ * instance will be removed, then the given instance is being added.
+ * <p>
+ * @param user User instance to add
+ */
+ private void uniqueAddUser (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
+ }
+
+ // Get iterator from list
+ Iterator<User> iterator = this.userList.iterator();
+
+ // "Walk" through all entries
+ while (iterator.hasNext()) {
+ // Get next element
+ User next = iterator.next();
+
+ // Is id number the same?
+ if (Objects.equals(user.getUserId(), next.getUserId())) {
+ // Found entry, so remove it and abort
+ this.userList.remove(next);
+ break;
+ }
+ }
+
+ // Add contact to list
+ this.userList.add(user);
+ }
+
/**
* Updates list with given user instance
* <p>