From daf5900d78542372a04edd38b8abd8b0c42a8b70 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Thu, 20 Oct 2022 19:17:46 +0200 Subject: [PATCH] Please cherry-pick: - added missing parameter "country" for updated constructor - also validated if contact's Country instance is set and already persisted --- lib/jcontacts-core.jar | Bin 60017 -> 60527 bytes ...AddressbookAdminContactWebRequestBean.java | 43 ++++++++++++------ .../AddressbookContactWebRequestBean.java | 39 +++------------- web/admin/contact/admin_contact_list.xhtml | 20 ++++++++ 4 files changed, 55 insertions(+), 47 deletions(-) diff --git a/lib/jcontacts-core.jar b/lib/jcontacts-core.jar index 14ab378f90ce45eff5815f34d37ebb7bd1d249e8..a30c9f085494b4d59401bd0375883808bbf39d14 100644 GIT binary patch delta 6759 zcmaJ`33wD$68@`al9^1JWVk{?AcR092as^Za0(%uF$8h|AzUGZGn@$^h%`Y&5ie{| z@mh5~7hPoogm^5l3f?EOtElMex(hC%qOPv1>sEF5OlF#%-Bu| zuIsD!Tx}*7x!gX$3#{E!zOzk+Yt5eWefh6PxmeV_(I@2DbUJ#;ytd3#9KY|Lh7J7y z`ODMaZr@qYjgHfgY>w4$SRAk2=0gX{h@ni%ia`}+`Xy_Dm_tCZ`Z zeqQSDgHKcgyfn~DgJSU-<$38+ALY|vFAed~P#+DW;WE$&A(sgmDP)wF3Su#YM$7nx z!WH^x42{)99w+iRAC0F8B2E->qK}H`auJI~EEaK+h$SMHi1B0*r-(R3xKiOteRze+ zL@XDvT(}D1DukOV+*IMF2{+A0+H|Uv2+Z(MmFQ=Rex{FR(QFath&V^Mxx&pAu3ETi z;pPc9Pq-T4YJ{6F+%S&3xzBavRKFxAxnkS#pEzuChT${D}<~RvP#HmA@u^L zL55!Ap|$$g6uBhyGT2Fa4Is+Uu`1r0Yi;v-JxN?LF%}bcKi3H^r=}it!)C zpFFfdr7Q7-ipTMUo|@1@zkO4;=%e_Akf@W^L4Rvgv}+?>rH@MKb*omU5fW-vEN`f; zX&Aj?&GLrT>r)rkr!HSpSEte@{7gsNPB*C( zpTaV}6!NW*e@OqERl0?Cs&p&q`l^f^O~v~-<)K|XJMC8SS26qwU#s{Jepc}-K_wTt zRZ65J6*ZWzqE0+mCFE)$*NW~2Avy#qkpn_5@qOZ*JbFv8~e6V7uE*WZo+(BP2A!l^yStrP3sy{ z6|D*#Kp29K=!}_|1qHJKrgKou&uDI&XUGhidC?_sYc2B&>ah@um|0wlC0NQ@_Q|sG z^Rt#UY_l9ICSWD=?5x!q&(dlhiAT}Iq@HD7OslmIOKahhhIP1N2G(OkJ+8z?R$Wzt zO<>4Wi_K`n7HL!@fL7Oz#(1X%)mA_;qY1}nLNyO%o}|dffL+-zn#Gt{jSFj z8P%9qkrlD}CG#jjXT{oZ?nc~XV&H_d3{$uzIDs|jEhZRiP+nonHUnDFS6$rP1q1L# z9)o?|9rX1!R&e6~pDFGLn}YMlvW?}ZwOV)aAe>WHgSkXJKganV>3lCYbGBK{Jvkir z^BO(C@^5SLARY=t=wUNBMwk@IN~=c(_qW#VG4bVhVZQ7Q^Mwx|vzLY>?iLa+1JCaR z@#h^Mg2!&Q&oui3oA4qwVLuPWTjgRr&4TAp7@igrPZcMU1ef=f)h#4o&u|0pwTl~` z;|AV;7dIS1Usm!t%k+8u+_tVmU*H(VaV&vP;Krwj<)i5sODbCkJ&qUoDScj&KFn@` z2T`nR)(fxY131b3FxotWsLFQn&F~yfa<{-w+{x6n4bdG$JKwImk@5_DmF?QQpF@XA zmt|gd2pyZD9?r@>fP}2x2hb_2&jBQ6CAkkEX&+DKf&iVtn;U#^xp4t8_zvx%eUC)^ zfHeGwO#Flae4ypy7Zl*Xn7|H{5uuV?s3A9&Q8d<(2iqtH_w&j6FvVdn#p5aR;~=#) zydG$JW_is%%9(CNqS?rAMf{f2-H2E-8Zm7UdsWQC8{DA(iu*k^r}uB?OTlHG!?#QBj@ zQt4*78_TI8cQ2{bqF9l}iXNiqSyCCzayrYGh}^5B(!+8F%b6l)l~j6J&Str{)$W%L zeOS?#I5TrfD*e(Umlgd27Sg3ZD+UAo0BZstwLQh`|p@sI!k^$ejjr1Vf71m!Z8|FidCYM?ki)gW&?8wjDr}&Etl{8>OrOCTV+n%;WwXXu#Gs~tHKW6N6|!bb zm}V?%#+e#T9A?k@u!rZ95k!Kat@3~Pby;fiZPfbVJMZLh$f?$reGG8Vh)vI1(jnJ zRiKfka&An6PSdfQDmg!9;1Q}qGtEQ`&BDtxn~VQB_<-i(BdW%iG!I`<4OckxiKvz< ztp(Jc7E&rLA}x&;Q-4}Q18FH0QXP$@Wi*wR({x(F%`3U3-bl7o&LL1;;80-hFL;l$ zD3d*rtW%5(>xu+VwCeqt9~ja$vSrl2c8J7|{BVV>c>z z?0&$RE%|zWXD3Z;eLR~~B~i55u$N*-Mlg?Q;mksaq>hxH!RdggtoBOER)=o9M&SyKJT%Rd0VGFA6$#p z0Lacrv`63-M)GO|BxW^Eas_ihGTDygO-Cf(a1mtg(eSL8Y)A4gBRLrXiCOEDTpb;d zbh0CP-w}!SokLJKCY|g^PBW5^BOo!a4`45K#Jn0@{H8UpmPDRt^2%WP>|G&8kMg58O3j3hMz67zmT@}V4B>5poT8|>GGv&)w`0_B4>2@T;8OewUNX$z-@prTYb1YhJ)nn(q!~9*7 z7s*}a5Gv;e1T8I88WAdV2^I1}h5n(!$WUQmsE`pVWQPg`K|y0cg+Ymhv7thrP$4~3 z$PE>`g$m;hAz3aIX3{X`VkWz|cN*Uf!%JH#Mfpf~Vkno?kYH0=Ms1x5G`Dl^Pq7I4R zvM0h!9OI+d`gCHw3H+n@Gi_(9_W*10VzRRNqInQATD>x=aSRVhrI-K^zALlC)CJZ2 z90?b7<>408Qwm?8<#QA>sr=1xBz1?9CZEgpQJRn*Y_`~F=xN%e(NIYev@fBe&We!qveWIE;5)+A8b_P!he;~y=NK}^)9`ilB9pVCt07p zCt5#rCQE5~z*OCLiT>kRRUi4GTd#V|uQF!i--C@sdkuq?FLc+ppUqWrnk=z{-ec6!AZ3DFx)ipBo`JG$4| delta 6492 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 diff --git a/src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java index 57bb7db6..9f3ed0cf 100644 --- a/src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java +++ b/src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java @@ -37,9 +37,9 @@ import org.mxchange.jcontacts.exceptions.ContactAlreadyAddedException; import org.mxchange.jcontacts.model.contact.AdminContactSessionBeanRemote; import org.mxchange.jcontacts.model.contact.Contact; import org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote; -import org.mxchange.jcontacts.model.contact.ContactUtils; import org.mxchange.jcontacts.model.contact.UserContact; import org.mxchange.jcontacts.model.contact.title.PersonalTitle; +import org.mxchange.jcontacts.model.utils.ContactUtils; import org.mxchange.jcountry.model.data.Country; import org.mxchange.jphone.model.phonenumbers.DialableNumber; import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber; @@ -175,7 +175,7 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookBean i private boolean isLandLineUnlinked; /** - * Whether a cmobile entry has been unlinked + * Whether a mobile entry has been unlinked */ private boolean isMobileNumberUnlinked; @@ -392,6 +392,15 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookBean i } else if (this.getFamilyName().isEmpty()) { // Empty string throw new IllegalStateException("familyName is empty"); //NOI18N + } else if (this.getContactCountry() == null) { + // Throw NPE + throw new NullPointerException("contactCountry is null"); //NOI18N + } else if (this.getContactCountry().getCountryId() == null) { + // Throw it again + throw new NullPointerException("contactCountry.countryId is null"); //NOI18N + } else if (this.getContactCountry().getCountryId() < 1) { + // Throw IAE + throw new IllegalArgumentException(MessageFormat.format("contactCountry.countryId={0} is invalid", this.getContactCountry().getCountryId())); //NOI18N } // Generate phone number @@ -408,20 +417,24 @@ public class AddressbookAdminContactWebRequestBean extends BaseAddressbookBean i contact.setContactId(this.getContactId()); } - // Add all others - contact.setContactTitle(this.getAcademicTitle()); - contact.setContactBirthday(this.getBirthday()); - contact.setContactStreet(this.getStreet()); - contact.setContactHouseNumber(this.getHouseNumber()); - contact.setContactZipCode(this.getZipCode()); - contact.setContactCity(this.getCity()); - contact.setContactCountry(this.getContactCountry()); - contact.setContactEmailAddress(this.getEmailAddress()); - contact.setContactBirthday(this.getBirthday()); - contact.setContactComment(this.getComment()); + // Create new instance + final Contact localContact = new UserContact( + this.getPersonalTitle(), + this.getFirstName(), + this.getFamilyName(), + this.getContactCountry() + ); - // Set ownContact - contact.setContactOwnContact(Boolean.TRUE); + // Add all others + localContact.setContactBirthday(this.getBirthday()); + localContact.setContactCity(this.getCity()); + localContact.setContactComment(this.getComment()); + localContact.setContactEmailAddress(this.getEmailAddress()); + localContact.setContactHouseNumber(this.getHouseNumber()); + localContact.setContactId(this.getContactId()); + localContact.setContactStreet(this.getStreet()); + localContact.setContactTitle(this.getAcademicTitle()); + localContact.setContactZipCode(this.getZipCode()); // Don't set null or wrong references if ((landLine instanceof DialableLandLineNumber) && (landLine.getPhoneCountry() instanceof Country) && (this.getLandLineAreaCode() != null) && (this.getLandLineNumber() != null) && (this.getLandLineAreaCode() > 0) && (this.getLandLineNumber() > 0)) { diff --git a/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebRequestBean.java index c677fc8b..4bcf24cf 100644 --- a/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebRequestBean.java +++ b/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebRequestBean.java @@ -38,9 +38,9 @@ import org.mxchange.jcontacts.events.contact.add.ObservableAdminAddedContactEven import org.mxchange.jcontacts.events.contact.update.ObservableAdminUpdatedContactEvent; import org.mxchange.jcontacts.model.contact.Contact; import org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote; -import org.mxchange.jcontacts.model.contact.ContactUtils; import org.mxchange.jcontacts.model.contact.UserContact; import org.mxchange.jcontacts.model.contact.title.PersonalTitle; +import org.mxchange.jcontacts.model.utils.ContactUtils; import org.mxchange.jcountry.model.data.Country; import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber; import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber; @@ -493,37 +493,12 @@ public class AddressbookContactWebRequestBean extends BaseAddressbookBean implem DialableFaxNumber fax = new FaxNumber(this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber()); // Create new contact - Contact contact = new UserContact(this.getPersonalTitle(), this.getFirstName(), this.getFamilyName()); - contact.setContactStreet(this.getStreet()); - contact.setContactHouseNumber(this.getHouseNumber()); - contact.setContactHouseNumberExtension(this.getHouseNumberExtension()); - contact.setContactZipCode(this.getZipCode()); - contact.setContactCity(this.getCity()); - contact.setContactCountry(this.getCountry()); - contact.setContactEmailAddress(this.getEmailAddress()); - contact.setContactBirthday(this.getBirthday()); - contact.setContactComment(this.getComment()); - - // Don't set null or wrong references - if ((phone instanceof DialableLandLineNumber) && (phone.getPhoneCountry() instanceof Country) && (this.getLandLineAreaCode() != null) && (this.getLandLineNumber() != null) && (this.getLandLineAreaCode() > 0) && (this.getLandLineNumber() > 0)) { - // Now the number must be given - if (phone.getPhoneAreaCode() == null) { - // Is null - throw new NullPointerException("phone.phoneAreaCode is null"); //NOI18N - } else if (phone.getPhoneAreaCode() < 1) { - // Abort here - throw new IllegalArgumentException("phone.phoneAreaCode is zero or below."); //NOI18N - } else if (phone.getPhoneNumber() == null) { - // Is null - throw new NullPointerException("phone.phoneNumber is null"); //NOI18N - } else if (phone.getPhoneNumber() < 1) { - // Abort here - throw new IllegalArgumentException("phone.phoneNumber is zero or below."); //NOI18N - } - - // Set phone number - contact.setContactLandLineNumber(phone); - } + final Contact contact = new UserContact( + this.getPersonalTitle(), + this.getFirstName(), + this.getFamilyName(), + this.getCountry() + ); // Don't set null or wrong references if ((fax instanceof DialableFaxNumber) && (fax.getPhoneCountry() instanceof Country) && (this.getFaxAreaCode() != null) && (this.getFaxNumber() != null) && (this.getFaxAreaCode() > 0) && (this.getFaxNumber() > 0)) { diff --git a/web/admin/contact/admin_contact_list.xhtml b/web/admin/contact/admin_contact_list.xhtml index 855fdc21..0d8e32ee 100644 --- a/web/admin/contact/admin_contact_list.xhtml +++ b/web/admin/contact/admin_contact_list.xhtml @@ -91,11 +91,31 @@ +<<<<<<< HEAD +======= + + + + + + + + +>>>>>>> 2b3f1b133 (Please cherry-pick:) -- 2.39.5