2 * Copyright (C) 2016 - 2022 Free Software Foundation
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as
6 * published by the Free Software Foundation, either version 3 of the
7 * License, or (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 Affero General Public License for more details.
14 * You should have received a copy of the GNU Affero General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jjobs.beans.contact;
19 import java.text.MessageFormat;
20 import java.util.Date;
22 import javax.enterprise.context.RequestScoped;
23 import javax.enterprise.event.Event;
24 import javax.enterprise.event.Observes;
25 import javax.enterprise.inject.Any;
26 import javax.faces.FacesException;
27 import javax.inject.Inject;
28 import javax.inject.Named;
29 import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent;
30 import org.mxchange.jcontacts.events.contact.add.ObservableAdminAddedContactEvent;
31 import org.mxchange.jcontacts.events.contact.created.ObservableCreatedContactEvent;
32 import org.mxchange.jcontacts.events.contact.deleted.AdminDeletedContactEvent;
33 import org.mxchange.jcontacts.events.contact.deleted.ObservableAdminDeletedContactEvent;
34 import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
35 import org.mxchange.jcontacts.events.contact.update.ObservableAdminUpdatedContactEvent;
36 import org.mxchange.jcontacts.exceptions.ContactAlreadyAddedException;
37 import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
38 import org.mxchange.jcontacts.model.contact.AdminContactSessionBeanRemote;
39 import org.mxchange.jcontacts.model.contact.Contact;
40 import org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote;
41 import org.mxchange.jcontacts.model.contact.Contacts;
42 import org.mxchange.jcontacts.model.contact.UserContact;
43 import org.mxchange.jcontacts.model.contact.title.PersonalTitle;
44 import org.mxchange.jcountry.model.data.Country;
45 import org.mxchange.jjobs.beans.BaseJobsBean;
46 import org.mxchange.jjobs.beans.contact.list.JobsContactListWebViewController;
47 import org.mxchange.jphone.model.phonenumbers.DialableNumber;
48 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
49 import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
50 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
51 import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
52 import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
53 import org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber;
54 import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
57 * An administrative user controller (bean)
59 * @author Roland Häder<roland@mxchange.org>
61 @Named ("adminContactController")
63 public class JobsAdminContactWebRequestBean extends BaseJobsBean implements JobsAdminContactWebRequestController {
68 private static final long serialVersionUID = 542_145_347_916L;
71 * Academic academicTitle
73 private String academicTitle;
76 * An event fired when the administrator has added a new contact
80 private Event<ObservableAdminAddedContactEvent> addedContactEvent;
83 * Administrative contact EJB
85 @EJB (lookup = "java:global/jjobs-ejb/adminContact!org.mxchange.jcontacts.model.contact.AdminContactSessionBeanRemote")
86 private AdminContactSessionBeanRemote adminContactBean;
91 private Date birthday;
101 private String comment;
104 * Current contact instance
106 private Contact contact;
109 * EJB for general contact purposes
111 @EJB (lookup = "java:global/jjobs-ejb/contact!org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote")
112 private ContactSessionBeanRemote contactBean;
115 * General contact controller
118 private JobsContactWebRequestController contactController;
123 private Country contactCountry;
128 private Long contactId;
131 * An instance of a contact list controller
134 private JobsContactListWebViewController contactListController;
137 * Event being fired when an administrator has deleted a contact
141 private Event<ObservableAdminDeletedContactEvent> deletedContactEvent;
146 private String emailAddress;
151 private String familyName;
154 * Fax number's area code
156 private Integer faxAreaCode;
159 * Country instance for fax number
161 private Country faxCountry;
171 private Long faxNumber;
176 private String firstName;
181 private Short houseNumber;
184 * House number extension
186 private String houseNumberExtension;
189 * Whether a fax entry has been unlinked
191 private boolean isFaxUnlinked;
194 * Whether a land-line number has been unlinked
196 private boolean isLandLineUnlinked;
199 * Whether a cmobile entry has been unlinked
201 private boolean isMobileNumberUnlinked;
204 * Phone number area code
206 private Integer landLineAreaCode;
209 * Country instance for phone number
211 private Country landLineCountry;
214 * Land-line id number
216 private Long landLineId;
221 private Long landLineNumber;
226 private Long mobileId;
231 private Long mobileNumber;
234 * Mobile number's provider
236 private MobileProvider mobileProvider;
239 * PersonalTitle instance
241 private PersonalTitle personalTitle;
246 private String street;
249 * An event fired when the administrator has updated contact data
253 private Event<ObservableAdminUpdatedContactEvent> updatedContactEvent;
258 private Integer zipCode;
261 * Default constructor
263 public JobsAdminContactWebRequestBean () {
264 // Call super constructor
269 * Adds contact data to database and redirects on success. If the contact is
270 * already found, a proper exception is thrown.
272 public void addContact () {
273 // Are all minimum fields set?
274 if (this.getPersonalTitle() == null) {
276 throw new NullPointerException("personalTitle is null"); //NOI18N
277 } else if (this.getFirstName() == null) {
279 throw new NullPointerException("firstName is null"); //NOI18N
280 } else if (this.getFirstName().isEmpty()) {
282 throw new IllegalStateException("firstName is empty"); //NOI18N
283 } else if (this.getFamilyName() == null) {
285 throw new NullPointerException("familyName is null"); //NOI18N
286 } else if (this.getFamilyName().isEmpty()) {
288 throw new IllegalStateException("familyName is empty"); //NOI18N
291 // Create new contact instance
292 final Contact createdContact = this.createContactInstance();
294 // Default is not same contact
295 if (this.contactListController.isContactFound(createdContact)) {
296 // Already registered
297 throw new FacesException(new ContactAlreadyAddedException(createdContact));
301 final Contact updatedContact;
306 updatedContact = this.adminContactBean.addContact(createdContact);
307 } catch (final ContactAlreadyAddedException ex) {
309 throw new FacesException(ex);
313 this.addedContactEvent.fire(new AdminAddedContactEvent(updatedContact));
320 * Observer for events being fired when a bean helper has successfully
321 * created a contact instance.
323 * @param event Event being fired
325 public void afterCreatedContactEvent (@Observes final ObservableCreatedContactEvent event) {
327 //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("AdminContactController::afterCreatedContactEvent(): contact={0} - CALLED!", contact)); //NOI18N
329 // The event instance must be valid
332 throw new NullPointerException("event is null"); //NOI18N
333 } else if (event.getCreatedContact() == null) {
335 throw new NullPointerException("event.createdContact is null"); //NOI18N
336 } else if (event.getCreatedContact().getContactId() == null) {
338 throw new NullPointerException("event.createdContact.contactId is null"); //NOI18N
339 } else if (event.getCreatedContact().getContactId() < 1) {
341 throw new IllegalStateException(MessageFormat.format("event.createdContact.contactId={0} is not valid.", event.getCreatedContact().getContactId())); //NOI18N
344 // Set contact for e.g. delete method
345 this.setContact(event.getCreatedContact());
347 // Get contact instance from event
348 final Contact createdContact = event.getCreatedContact();
350 // Set all fields: contact
351 this.setContactId(createdContact.getContactId());
352 this.setAcademicTitle(createdContact.getContactTitle());
353 this.setBirthday(createdContact.getContactBirthday());
354 this.setCity(createdContact.getContactCity());
355 this.setComment(createdContact.getContactComment());
356 this.setContactCountry(createdContact.getContactCountry());
357 this.setEmailAddress(createdContact.getContactEmailAddress());
358 this.setFamilyName(createdContact.getContactFamilyName());
359 this.setFirstName(createdContact.getContactFirstName());
360 this.setPersonalTitle(createdContact.getContactPersonalTitle());
361 this.setHouseNumber(createdContact.getContactHouseNumber());
362 this.setHouseNumberExtension(createdContact.getContactHouseNumberExtension());
363 this.setStreet(createdContact.getContactStreet());
364 this.setZipCode(createdContact.getContactZipCode());
366 // Is the cell phone set?
367 if (createdContact.getContactMobileNumber() instanceof DialableMobileNumber) {
369 this.setMobileId(createdContact.getContactMobileNumber().getMobileId());
370 this.setMobileProvider(createdContact.getContactMobileNumber().getMobileProvider());
371 this.setMobileNumber(createdContact.getContactMobileNumber().getMobileNumber());
375 if (createdContact.getContactFaxNumber() instanceof DialableFaxNumber) {
377 this.setFaxId(createdContact.getContactFaxNumber().getPhoneId());
378 this.setFaxAreaCode(createdContact.getContactFaxNumber().getPhoneAreaCode());
379 this.setFaxCountry(createdContact.getContactFaxNumber().getPhoneCountry());
380 this.setFaxNumber(createdContact.getContactFaxNumber().getPhoneNumber());
383 // Is the land-line number set?
384 if (createdContact.getContactLandLineNumber() instanceof DialableLandLineNumber) {
386 this.setLandLineId(createdContact.getContactLandLineNumber().getPhoneId());
387 this.setLandLineAreaCode(createdContact.getContactLandLineNumber().getPhoneAreaCode());
388 this.setLandLineCountry(createdContact.getContactLandLineNumber().getPhoneCountry());
389 this.setLandLineNumber(createdContact.getContactLandLineNumber().getPhoneNumber());
393 //* NOISY-DEBUG: */ System.out.println("AdminContactController::afterCreatedContactEvent(): EXIT!"); //NOI18N
397 public Contact createContactInstance () {
398 // Are all minimum fields set?
399 if (this.getPersonalTitle() == null) {
401 throw new NullPointerException("personalTitle is null"); //NOI18N
402 } else if (this.getFirstName() == null) {
404 throw new NullPointerException("firstName is null"); //NOI18N
405 } else if (this.getFirstName().isEmpty()) {
407 throw new IllegalStateException("firstName is empty"); //NOI18N
408 } else if (this.getFamilyName() == null) {
410 throw new NullPointerException("familyName is null"); //NOI18N
411 } else if (this.getFamilyName().isEmpty()) {
413 throw new IllegalStateException("familyName is empty"); //NOI18N
416 // Generate phone number
417 DialableLandLineNumber landLine = null;
418 DialableMobileNumber mobile = null;
419 DialableFaxNumber fax = null;
421 // Are all fields set?
422 if (this.getLandLineAreaCode() != null && this.getLandLineCountry() instanceof Country && this.getLandLineNumber() != null) {
424 landLine = new LandLineNumber(this.getLandLineCountry(), this.getLandLineAreaCode(), this.getLandLineNumber());
427 // Are all fields set?
428 if (this.getMobileProvider() instanceof MobileProvider && this.getMobileNumber() != null) {
429 // Initialize instance
430 mobile = new MobileNumber(this.getMobileProvider(), this.getMobileNumber());
433 // Are all fields set?
434 if (this.getFaxAreaCode() != null && this.getFaxCountry() instanceof Country && this.getFaxNumber() != null) {
435 // Initialize instance
436 fax = new FaxNumber(this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber());
439 // Create new instance
440 final Contact localContact = new UserContact(
441 this.getPersonalTitle(),
447 localContact.setContactBirthday(this.getBirthday());
448 localContact.setContactCity(this.getCity());
449 localContact.setContactComment(this.getComment());
450 localContact.setContactCountry(this.getContactCountry());
451 localContact.setContactEmailAddress(this.getEmailAddress());
452 localContact.setContactHouseNumber(this.getHouseNumber());
453 localContact.setContactId(this.getContactId());
454 localContact.setContactStreet(this.getStreet());
455 localContact.setContactTitle(this.getAcademicTitle());
456 localContact.setContactZipCode(this.getZipCode());
459 localContact.setContactOwnContact(Boolean.TRUE);
461 // Don't set null or wrong references
462 if ((landLine instanceof DialableLandLineNumber) && (landLine.getPhoneCountry() instanceof Country) && (this.getLandLineAreaCode() != null) && (this.getLandLineNumber() != null) && (this.getLandLineAreaCode() > 0) && (this.getLandLineNumber() > 0)) {
463 // Now the number must be given
464 if (landLine.getPhoneAreaCode() == null) {
466 throw new NullPointerException("phone.phoneAreaCode is null"); //NOI18N
467 } else if (landLine.getPhoneAreaCode() < 1) {
469 throw new IllegalArgumentException("phone.phoneAreaCode is zero or below."); //NOI18N
470 } else if (landLine.getPhoneNumber() == null) {
472 throw new NullPointerException("phone.phoneNumber is null"); //NOI18N
473 } else if (landLine.getPhoneNumber() < 1) {
475 throw new IllegalArgumentException("phone.phoneNumber is zero or below."); //NOI18N
479 localContact.setContactLandLineNumber(landLine);
482 // Don't set null or wrong references
483 if ((fax instanceof DialableFaxNumber) && (fax.getPhoneCountry() instanceof Country) && (this.getFaxAreaCode() != null) && (this.getFaxNumber() != null) && (this.getFaxAreaCode() > 0) && (this.getFaxNumber() > 0)) {
484 // Now the number must be given
485 if (fax.getPhoneAreaCode() == null) {
487 throw new NullPointerException("fax.phoneAreaCode is null"); //NOI18N
488 } else if (fax.getPhoneAreaCode() < 1) {
490 throw new IllegalArgumentException("fax.phoneAreaCode is zero or below."); //NOI18N
491 } else if (fax.getPhoneNumber() == null) {
493 throw new NullPointerException("fax.phoneNumber is null"); //NOI18N
494 } else if (fax.getPhoneNumber() < 1) {
496 throw new IllegalArgumentException("fax.phoneNumber is zero or below."); //NOI18N
500 localContact.setContactFaxNumber(fax);
503 // Is the provider set?
504 if ((mobile instanceof DialableMobileNumber) && (this.getMobileProvider() instanceof MobileProvider) && (this.getMobileNumber() != null) && (this.getMobileNumber() > 0)) {
505 // Is the number set?
506 if (mobile.getMobileNumber() == null) {
508 throw new NullPointerException("cmobile.phoneNumber is null"); //NOI18N
509 } else if (mobile.getMobileNumber() < 1) {
511 throw new IllegalArgumentException("cmobile.phoneNumber is zero or below."); //NOI18N
514 // Set cmobile number
515 localContact.setContactMobileNumber(mobile);
523 * Deletes currently chosen contact and returns to list view
527 public String deleteContactData () {
529 if (this.getContact() == null) {
531 throw new NullPointerException("this.contact is null");
532 } else if (this.getContact().getContactId() == null) {
534 throw new NullPointerException("this.contact.contactId is null");
535 } else if (this.getContact().getContactId() < 1) {
537 throw new NullPointerException(MessageFormat.format("this.contact.contactId={0} is not valid.", this.getContact().getContactId()));
542 this.adminContactBean.deleteContactData(this.getContact());
543 } catch (final ContactNotFoundException ex) {
545 throw new FacesException(ex);
549 this.deletedContactEvent.fire(new AdminDeletedContactEvent(this.getContact()));
551 // Return to list view
552 return "admin_list_contacts";
556 * Edits currently loaded contact's data in database.
558 public void editContactData () {
559 // Get contact instance
560 final Contact createdContact = this.createContactInstance();
562 // Check if contact instance is in helper and valid
563 if (null == createdContact) {
565 throw new NullPointerException("beanHelper.contact is null"); //NOI18N
566 } else if (createdContact.getContactId() == null) {
568 throw new NullPointerException("beanHelper.contact.contactId is null"); //NOI18N
569 } else if (createdContact.getContactId() < 1) {
571 throw new IllegalStateException(MessageFormat.format("beanHelper.contact.contactId={0} is invalid", createdContact.getContactId())); //NOI18N
574 // Update all data in contact
575 this.updateContactData(createdContact);
577 // Init updated contact instance
578 final Contact updatedContact;
581 // Call EJB for updating contact data
582 updatedContact = this.contactBean.updateContactData(createdContact, this.isMobileNumberUnlinked, this.isLandLineUnlinked, this.isFaxUnlinked);
583 } catch (final ContactNotFoundException ex) {
585 throw new FacesException(ex);
589 this.updatedContactEvent.fire(new AdminUpdatedContactEvent(updatedContact));
596 * Returns a text representation of given mobile number or null if not set.
598 * @param mobileNumber Mobile number
600 * @return Text representation or null
602 public String generateMobileNumber (final DialableMobileNumber mobileNumber) {
604 if (null == mobileNumber) {
610 final String number = String.format(
612 mobileNumber.getMobileProvider().getProviderCountry().getCountryExternalDialPrefix(),
613 mobileNumber.getMobileProvider().getProviderDialPrefix(),
614 mobileNumber.getMobileNumber()
622 * Returns a text representation of given land-line or fax number or null if
625 * @param phoneNumber Land-line or fax number
627 * @return Text representation or null
629 public String generatePhoneNumber (final DialableNumber phoneNumber) {
631 if (null == phoneNumber) {
637 final String number = String.format(
639 phoneNumber.getPhoneCountry().getCountryExternalDialPrefix(),
640 phoneNumber.getPhoneAreaCode(),
641 phoneNumber.getPhoneNumber()
649 * Getter for academic title
651 * @return Academic title
653 public String getAcademicTitle () {
654 return this.academicTitle;
658 * Setter for academic title
660 * @param academicTitle Academic title
662 public void setAcademicTitle (final String academicTitle) {
663 this.academicTitle = academicTitle;
667 * Getter for birth day
671 @SuppressWarnings ("ReturnOfDateField")
672 public Date getBirthday () {
673 return this.birthday;
677 * Setter for birth day
679 * @param birthday Birth day
681 @SuppressWarnings ("AssignmentToDateFieldFromParameter")
682 public void setBirthday (final Date birthday) {
683 this.birthday = birthday;
687 * Getter for city name
691 public String getCity () {
696 * Setter for city name
698 * @param city City name
700 public void setCity (final String city) {
705 * Getter for comments
709 public String getComment () {
716 * @param comment Comments
718 public void setComment (final String comment) {
719 this.comment = comment;
723 * Getter for contact instance
725 * @return Contact instance
727 public Contact getContact () {
732 * Setter for contact instance
734 * @param contact Contact instance
736 public void setContact (final Contact contact) {
737 this.contact = contact;
741 * Getter for contactCountry instance
743 * @return Country instance
745 public Country getContactCountry () {
746 return this.contactCountry;
750 * Setter for contactCountry instance
752 * @param contactCountry Country instance
754 public void setContactCountry (final Country contactCountry) {
755 this.contactCountry = contactCountry;
759 * Getter for contact id
763 public Long getContactId () {
764 return this.contactId;
768 * Setter for contact id
770 * @param contactId Contact id
772 public void setContactId (final Long contactId) {
773 this.contactId = contactId;
777 public String getControllerType () {
778 return "admin"; //NOI18N
782 * Getter for email address
784 * @return Email address
786 public String getEmailAddress () {
787 return this.emailAddress;
791 * Setter for email address
793 * @param emailAddress Email address
795 public void setEmailAddress (final String emailAddress) {
796 this.emailAddress = emailAddress;
802 * @return the familyName
804 public String getFamilyName () {
805 return this.familyName;
811 * @param familyName the familyName to set
813 public void setFamilyName (final String familyName) {
814 this.familyName = familyName;
818 * Getter for fax number's area code
820 * @return Fax number's area code
822 public Integer getFaxAreaCode () {
823 return this.faxAreaCode;
827 * Setter for fax number's area code
829 * @param faxAreaCode Fax number's area code
831 public void setFaxAreaCode (final Integer faxAreaCode) {
832 this.faxAreaCode = faxAreaCode;
836 * Getter for fax's country instance
838 * @return Fax' country instance
840 public Country getFaxCountry () {
841 return this.faxCountry;
845 * Setter for fax's country instance
847 * @param faxCountry Fax' country instance
849 public void setFaxCountry (final Country faxCountry) {
850 this.faxCountry = faxCountry;
858 public Long getFaxId () {
865 * @param faxId Fax id
867 public void setFaxId (final Long faxId) {
872 * Getter for fax number
876 public Long getFaxNumber () {
877 return this.faxNumber;
881 * Setter for fax number
883 * @param faxNumber Fax number
885 public void setFaxNumber (final Long faxNumber) {
886 this.faxNumber = faxNumber;
890 * Getter for first name
894 public String getFirstName () {
895 return this.firstName;
899 * Setter for first name
901 * @param firstName First name
903 public void setFirstName (final String firstName) {
904 this.firstName = firstName;
908 * Getter for house number
910 * @return House number
912 public Short getHouseNumber () {
913 return this.houseNumber;
917 * Setter for house number
919 * @param houseNumber House number
921 public void setHouseNumber (final Short houseNumber) {
922 this.houseNumber = houseNumber;
926 * Getter for house number extension. Example: 123a, 'a' is the extension
927 * and 123 is the house number.
929 * @return House number extension
931 public String getHouseNumberExtension () {
932 return this.houseNumberExtension;
936 * Setter for house number extension
938 * @param houseNumberExtension House number extension
940 public void setHouseNumberExtension (final String houseNumberExtension) {
941 this.houseNumberExtension = houseNumberExtension;
945 * Getter for land-line number's area code
947 * @return Land-line number's area code
949 public Integer getLandLineAreaCode () {
950 return this.landLineAreaCode;
954 * Setter for land-line number's area code
956 * @param landLineAreaCode Land-line number's area code
958 public void setLandLineAreaCode (final Integer landLineAreaCode) {
959 this.landLineAreaCode = landLineAreaCode;
963 * Getter for land-line number's country instance
965 * @return Land-line number's country instance
967 public Country getLandLineCountry () {
968 return this.landLineCountry;
972 * Setter for land-line number's country instance
974 * @param landLineCountry Land-line number's country instance
976 public void setLandLineCountry (final Country landLineCountry) {
977 this.landLineCountry = landLineCountry;
981 * Getter for land-line id
983 * @return Land-line id
985 public Long getLandLineId () {
986 return this.landLineId;
990 * Setter for land-line id
992 * @param landLineId Land-line id
994 public void setLandLineId (final Long landLineId) {
995 this.landLineId = landLineId;
999 * Getter for land-line number
1001 * @return Land-line number
1003 public Long getLandLineNumber () {
1004 return this.landLineNumber;
1008 * Setter for land-line number
1010 * @param landLineNumber Land-line number
1012 public void setLandLineNumber (final Long landLineNumber) {
1013 this.landLineNumber = landLineNumber;
1017 * Getter for mobile id
1021 public Long getMobileId () {
1022 return this.mobileId;
1026 * Setter for mobile id
1028 * @param mobileId Mobile id
1030 public void setMobileId (final Long mobileId) {
1031 this.mobileId = mobileId;
1035 * Getter for mobile number
1037 * @return Mobile number
1039 public Long getMobileNumber () {
1040 return this.mobileNumber;
1044 * Setter for mobile number
1046 * @param mobileNumber Mobile number
1048 public void setMobileNumber (final Long mobileNumber) {
1049 this.mobileNumber = mobileNumber;
1053 * Getter for mobile number's carrier
1055 * @return Mobile number's carrier
1057 public MobileProvider getMobileProvider () {
1058 return this.mobileProvider;
1062 * Setter for mobile number's carrier prefix
1064 * @param mobileProvider Mobile number's carrier prefix
1066 public void setMobileProvider (final MobileProvider mobileProvider) {
1067 this.mobileProvider = mobileProvider;
1071 * Getter for personal title
1073 * @return Personal title
1075 public PersonalTitle getPersonalTitle () {
1076 return this.personalTitle;
1080 * Setter for personal title
1082 * @param personalTitle Personal title
1084 public void setPersonalTitle (final PersonalTitle personalTitle) {
1085 this.personalTitle = personalTitle;
1089 * Getter for street name
1091 * @return Street name
1093 public String getStreet () {
1098 * Setter for street name
1100 * @param street Street name
1102 public void setStreet (final String street) {
1103 this.street = street;
1107 * Getter for ZIP code
1111 public Integer getZipCode () {
1112 return this.zipCode;
1116 * Setter for ZIP code
1118 * @param zipCode ZIP code
1120 public void setZipCode (final Integer zipCode) {
1121 this.zipCode = zipCode;
1125 public void validateContactData () {
1126 if (this.getPersonalTitle() == null) {
1128 throw new NullPointerException("contactController.gender is null"); //NOI18N
1129 } else if (this.getFirstName() == null) {
1131 throw new NullPointerException("contactController.firstName is null"); //NOI18N
1132 } else if (this.getFirstName().isEmpty()) {
1134 throw new IllegalArgumentException("contactController.firstName is empty"); //NOI18N
1135 } else if (this.getFamilyName() == null) {
1137 throw new NullPointerException("contactController.familyName is null"); //NOI18N
1138 } else if (this.getFamilyName().isEmpty()) {
1140 throw new IllegalArgumentException("contactController.familyName is empty"); //NOI18N
1141 } else if (this.getEmailAddress() == null) {
1143 throw new NullPointerException("contactController.emailAddress is null"); //NOI18N
1144 } else if (this.getEmailAddress().isEmpty()) {
1146 throw new IllegalArgumentException("contactController.emailAddress is empty"); //NOI18N
1153 private void clear () {
1155 this.setContact(null);
1158 this.setAcademicTitle(null);
1159 this.setFirstName(null);
1160 this.setFamilyName(null);
1161 this.setStreet(null);
1162 this.setHouseNumber(null);
1163 this.setHouseNumberExtension(null);
1164 this.setZipCode(null);
1166 this.setContactCountry(null);
1169 this.setEmailAddress(null);
1170 this.setLandLineCountry(null);
1171 this.setLandLineAreaCode(null);
1172 this.setLandLineNumber(null);
1173 this.setMobileProvider(null);
1174 this.setMobileNumber(null);
1175 this.setFaxCountry(null);
1176 this.setFaxAreaCode(null);
1177 this.setFaxNumber(null);
1180 this.setBirthday(null);
1181 this.setComment(null);
1185 * Updates all data in contact instance.
1187 * @param contact Contact instance
1189 private void updateContactData (final Contact contact) {
1190 // Contact instance should be valid
1191 if (null == contact) {
1193 throw new NullPointerException("contact is null"); //NOI18N
1194 } else if (contact.getContactId() == null) {
1196 throw new NullPointerException("contact.contactId is null"); //NOI18N
1197 } else if (contact.getContactId() < 1) {
1199 throw new IllegalStateException(MessageFormat.format("contact.contactId={0} is invalid", contact.getContactId())); //NOI18N
1202 // Update all fields
1203 contact.setContactPersonalTitle(this.getPersonalTitle());
1204 contact.setContactTitle(this.getAcademicTitle());
1205 contact.setContactFirstName(this.getFirstName());
1206 contact.setContactFamilyName(this.getFamilyName());
1207 contact.setContactStreet(this.getStreet());
1208 contact.setContactHouseNumber(this.getHouseNumber());
1209 contact.setContactHouseNumberExtension(this.getHouseNumberExtension());
1210 contact.setContactZipCode(this.getZipCode());
1211 contact.setContactCity(this.getCity());
1212 contact.setContactCountry(this.getContactCountry());
1214 // Update contact's cmobile number
1215 this.isMobileNumberUnlinked = Contacts.updateMobileNumber(contact, this.getMobileProvider(), this.getMobileNumber());
1217 // Update contact's land-line number
1218 this.isLandLineUnlinked = Contacts.updateLandLineNumber(contact, this.getLandLineCountry(), this.getLandLineAreaCode(), this.getLandLineNumber());
1220 // Update contact's fax number
1221 this.isFaxUnlinked = Contacts.updateFaxNumber(contact, this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber());