import org.mxchange.jcontacts.contact.ContactSessionBeanRemote;
import org.mxchange.jcontacts.contact.UserContact;
import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jcontacts.contact.utils.ContactUtils;
+import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
import org.mxchange.jcountry.data.Country;
import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber;
*/
private Short houseNumber;
+ /**
+ * Whether a cellphone entry has been unlinked
+ */
+ private boolean isCellphoneUnlinked;
+
+ /**
+ * Whether a fax entry has been unlinked
+ */
+ private boolean isFaxUnlinked;
+
+ /**
+ * Whether a land-line number has been unlinked
+ */
+ private boolean isLandLineUnlinked;
+
/**
* Login bean (controller)
*/
this.emailAddressList.add(contactEmailAddress);
}
+ @Override
+ public void afterAdminUpdatedContactDataEvent (@Observes final AdminUpdatedContactEvent event) {
+ // Trace message
+ System.out.println(MessageFormat.format("ContactWebBean:afterAdminUpdatedContactDataEvent: event={0} - CALLED!", event)); //NOI18N
+
+ // event should not be null
+ if (null == event) {
+ // Throw NPE
+ throw new NullPointerException("event is null"); //NOI18N
+ } else if (event.getUpdatedContact()== null) {
+ // Throw NPE again
+ throw new NullPointerException("event.user is null"); //NOI18N
+ } else if (event.getUpdatedContact().getContactId() == null) {
+ // userId is null
+ throw new NullPointerException("event.user.userId is null"); //NOI18N
+ } else if (event.getUpdatedContact().getContactId() < 1) {
+ // Not avalid id
+ throw new IllegalArgumentException(MessageFormat.format("userId of user={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 email address to list
+ this.emailAddressList.add(event.getUpdatedContact().getContactEmailAddress());
+ }
+
@Override
public void afterRegistrationEvent (final @Observes UserRegisteredEvent event) {
// Trace message
// Trace message
//this.getLogger().logTrace(MessageFormat.format("createContactInstance: localContact={0} - EXIT!", localContact));
+
// Return it
return localContact;
}
contact.setContactCity(this.getCity());
contact.setContactCountry(this.getCountry());
- // Is there a phone number?
- if (contact.getContactLandLineNumber() instanceof DialableLandLineNumber) {
- // Debug message
- System.out.println(MessageFormat.format("ContactWebBean:doChangePersonalData: phoneId={0}", contact.getContactLandLineNumber().getPhoneId())); //NOI18N
-
- // Yes, then update as well
- contact.getContactLandLineNumber().setPhoneAreaCode(this.getPhoneAreaCode());
- contact.getContactLandLineNumber().setPhoneNumber(this.getPhoneNumber());
- }
-
- // Is there a fax number?
- if (contact.getContactFaxNumber() instanceof DialableFaxNumber) {
- // Debug message
- System.out.println(MessageFormat.format("ContactWebBean:doChangePersonalData: faxId={0}", contact.getContactFaxNumber().getPhoneId())); //NOI18N
+ // Update contact's cellphone number
+ this.isCellphoneUnlinked = ContactUtils.updateCellPhoneNumber(contact, this.getCellphoneCarrier(), this.getCellphoneNumber());
- // Yes, then update as well
- contact.getContactFaxNumber().setPhoneAreaCode(this.getFaxAreaCode());
- contact.getContactFaxNumber().setPhoneNumber(this.getFaxNumber());
- }
+ // Update contact's land-line number
+ this.isLandLineUnlinked = ContactUtils.updateLandLineNumber(contact, this.getPhoneCountry(), this.getPhoneAreaCode(), this.getPhoneNumber());
- // Is there a cellphone number?
- if (contact.getContactCellphoneNumber() instanceof DialableCellphoneNumber) {
- // Debug message
- System.out.println(MessageFormat.format("ContactWebBean:doChangePersonalData: cellPhoneId={0}", contact.getContactCellphoneNumber().getPhoneId())); //NOI18N
-
- // Yes, then update as well
- contact.getContactCellphoneNumber().setCellphoneProvider(this.getCellphoneCarrier());
- contact.getContactCellphoneNumber().setPhoneNumber(this.getCellphoneNumber());
- }
+ // Update contact's fax number
+ this.isFaxUnlinked = ContactUtils.updateFaxNumber(contact, this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber());
// Send it to the EJB
- this.contactBean.updateContactPersonalData(contact);
+ this.contactBean.updateContactData(contact, this.isCellphoneUnlinked, this.isLandLineUnlinked, this.isFaxUnlinked);
// All fine
return "contact_data_saved"; //NOI18N