From 1945319b008dbddab1fc1962b7403083efdef905 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Thu, 22 Oct 2015 11:07:53 +0200 Subject: [PATCH] Continued: - added timestamp when the address book has been locked and reason - added creation timestamp + user parameters to constructor - default status is UNLOCKED now - updated jar(s) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by:Roland Häder --- lib/jcontacts-business-core.jar | Bin 56442 -> 65444 bytes lib/jcontacts-core.jar | Bin 20873 -> 21164 bytes lib/jcountry-core.jar | Bin 6194 -> 6767 bytes lib/jphone-core.jar | Bin 23037 -> 25438 bytes lib/juser-core.jar | Bin 28893 -> 29564 bytes .../model/addressbook/Addressbook.java | 32 +++++- .../model/addressbook/UserAddressbook.java | 93 +++++++++++++----- 7 files changed, 97 insertions(+), 28 deletions(-) diff --git a/lib/jcontacts-business-core.jar b/lib/jcontacts-business-core.jar index 0fe8af59887fac4e9ca050a8d5b51878e29999b2..20fa3745a1fd031cd1e06ab42ff53330983d49ef 100644 GIT binary patch literal 65444 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
TL= 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

tm=7ns6@v-K_plHz7iDQN%yLtp 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 literal 56442 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 diff --git a/lib/jcountry-core.jar b/lib/jcountry-core.jar index 234d3fbe4b8bfd5ad614a4b2509deb29ba454fef..28024eeb45e65d2334a4e91585545cbe4004aa66 100644 GIT binary patch literal 6767 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 diff --git a/lib/jphone-core.jar b/lib/jphone-core.jar index a5d222b5e458841311e097be654fba5408b3bc86..e5c2573169bfc234a14736809e9df575171e2584 100644 GIT binary patch literal 25438 zcmeHPYj9jec0PAB(u~GevLs73wy_x=#?8RWPjj=4ttiTUp$!29Qi1Ey|G-fm- zW=38MSioQ~Z;ZV>!a}m72nh*cVOe8#$u5uGs-!kaB|q{nm28qqr7Ee~fBBW9sC=ip z?{n_V+>z}C5~gY%eW&~M>C>lApZ@xE58v7ljuAzPI!E^3OpaGGg=yE|Xn*g}?j4EG ze?>HGWnF-*zv!HJZ35Z(-HErAbyxrHp&f%GqkX$}>`LY`hmB&XcfV06X7ag>@pXM` zTVnk=$CLi)WNOlg;~DKUlY@lEyOGdhP+brkb(6@H{x(&UD)~<`M+EYlTvPOI$ zUzpApk|j`F-4bhw*^GJH5C&uU!bGBSjuw?;>R4(rnVT@GWaU;eF)Qnl>B)SqT8Yam zln~`|GgF5kmMRtY1Sy^}ve{aEtO!EraPn9cUb=&j$R=~?Y^JJ6dV|m@P8FvM`JG{_69e z{v2hmp`{VJBtnZLv_zx%6Gmy6m0=)1lPeWwHM)A$>YZ+7Ny)zwU@e(Y`8J_w(OY!o zsvsp-@7E}1Ry&l|r~@?~Nghom&qk#I_%(8aYh0a>doLq6INp_G$rbfL+3r*59rA#(4kjxsn zbdqUznzY^d7b*Jg>_R*v`I$n>*pbPC;{~41WKn69aQBfMNL6$IEwp94=g<)&RRUw; zQ6`@lF$&O_%)P8LO&Vzw!n*<55({gvrj11SZlZ|zj#9Juj?p~vt*dm4O1IK{@w|=N z#dilS5Z|5D1&WXpK0~y~ZQ8EC>CFBk$j9%k$WXI+w)q$^4T-O|zZyfe4>!ZqKf)g; z_~TK2_E>~Y#*lb?9$NNzjGmw;Ir$VPpNi1aQFo!hMWdF1e6CnZ=1TjM*%<>8)W5H-EBu#65z$Mm)@@#`)@bow z48zQnu|HGHpfCD!xqL~?7e&ZTWIvXe<~gZYGIA*+F_eaWUE%Y`%|_0^Ok<=)^~e-0 zmN-3uAzmdvW~R~EX@m0*Z6Dk{Iy5?_(Gnl}1NrRCR1W#Vx#SeIRJZzLJcFh+LHQ?2 zldM9W8a2;Mv++QK_yJTPnw!ZA1Eo>BRd85YPK`Et?1+zcJ1ywczv@vu=!O=`5vr|=H`%PczBfAip8jphk4nznJVPpNIm zVkU*Aw%HQOi5UdlBnrC?Sf?P7aN949{Ny-lOtI&a1@T5qb2Dgj+=l@(o8r8AbZ8eG zvi@De8ZEMUGT7{nr=+(9UE7?=WlCE#N_yv?I`l?1#h!uun#QI%ET@tAJK-%zQI4`+ zV;0+)Pr(W#VGEE}55uL&3`Xwe+PY%3E@5ekB=72ufn=eOF$$P`t^8(xHmqXynv8p9 zl37&Q<(#~vz2CI@05as2?eB23SpAQ_$(JUX{PubnHs_~u##=^8$<*DulG8#Qu(#*s zaKyG7(*+~NM$I&a(q*upLs;kImPC}RqtR6!0aWmTF1{yVx*9xR%+*n1F0IZn?GLoF z%+sr5yhyLchw6>zF$h_Mzc8<^MYP^_{}wm~i0S=dDof?3rjrHC3L4!UpsCh4O;j2t ztA}9R(#m1C1ZocJ=wz}uDQyl$II@QM0bC6H^c~}P9y+!bjE-a`a>>$60k-K!j;5%w z?$K|bp0CZhgX(~g3R}LqY+WUpY{5W|Ii286k6`+w7wqSm$O#$*Y|mmmCzq`7uLRF- zA4(XfO*(C-T{^9yUY$15GM#RuEjqnKFKe`|4rjDNi*!0n6A}6yop#eJIvt^uMk{TH zd|$3OGmQxnrfm=0JK^yS9!nWwuGeVID1ZiKg7BR-;+bMx`7Y`Bq1m{@1M1_3d|#(a zX_-b_EV0Fv2;%8{Ze=MxnLKL5p~gu;uGkkJ&Kk+05kH(c7N5o9Lp<(-$=RJR#Vy|A zvqlN@XJ}TZ0%4ZfSchaRR!r5dxF8X;u&q&Wdf0&R8kU!W&c&j5$XzW&DI5{0-^hv8 zs4ZYq>&u?-oah=yBc(zHE6~;Z>2f&wU0A6!Va3u&OK1^Y0@rmh9M}+2A(k-G%aLA< zwGuDt<49j_&=qtgU4>=SiXvT2D~D(mtv*2A)WaVk)-Y8pfm9#f$d{1+u0^SJDf$Lo zbC5KH)?>AQ9hcf*(Dif!vO+Ue;pIqe!f)~aRbT*AHp|*nMNnXsm-(~u-h_u+4eFerbK1W)2&shp}uQ^K%-Mwci{2rc%h>7xYAhpuBvE;jhzKN&ZvOEpZEl4rqcB^PV|JsSh0MWoNX0-u1F$7i3*Wg>je~nzT zT~$mJIE1VzL0*@c6nPD!YmXxE9&++(V@uDUQ)9#1-5*e658i*kiJniWX&0VE*8GH` z8huF3uc$mRJeg-d3BL^r4Wg0V1hf&LVVEYN5gDv)kD!rL(1|=ccp4482fb53AIu2O z;<9$D;ag~!ZUb+ZKqvOn2)G*sy?GRF(*K7RMrdC<{@hQuqZmtmJ-)g9v5!a}>u5Pg ztsf&L<=rIyxz8bhn5yPm$U{OUInNk=Yv_}MiYCjLKiT;m62)uj0J`MqaGIh%^Tp8+so`LS9B*@nvKZnk8G|l1RwQ z$nSxXA5>sO8W@cy86QR(yo|iz%gEjS5^3-<@)j8R;|h#OW2M20O!;bcn~zri(7{bL ztKC})eX)u)9%CZPb*L_VUV+8&d^as>rSQQ z%cGmyl1nGq0DVXucbSQpNGxTOBZp3hu$>!JuK0dH7?n;CeGnC3s(FZx zs~>J0@5P^7vErX#2KdePzYYhXg6rf#uiGQk8lm|SYQqxbtF*AGxil|x^<5tDrIp0P zF3kn;QGFredU0kKdK?bdK#!q9y3nr{w-&wH($L)w4dVCaAX>zGK&F6pB#%iK)1x^p z5sF1boze7hd!sujnCa?3H2wH@ii>Vb!Al{)aXqeyPjMhF$QPw{${w%-{p@7_~SwTc!)oaN9f@wJrct{!U@j!XoMbPB>v<)_(8zpAEzfc z`6MTS#dk3lKaZZ`Kc42~GZA_=LeE9$6y#MDTNX7@_qK(b_x$~yy70?t7`)&5(L_xx zXjXyT7Y7IRTk=}awgThZp=9G8l+*#a+i-l1-H0!2$DxTEP`;1gMzCX?NiJ&vZX;0( zyJ_J9yyzY0H8l593@`&8s!h$nuwTtBhE}dgE!gL2w{#y31&}0C?+x zUVQ=3A$ne?({u*t+uWq81L+w-41o?X=>;82&@r7c79ES)qE0{~H0ldP*^-{G2Pxw_ z%HULgyz?T%tbkLy;PZvx(Jcaiwgf=fV)&#>gipE@&(S+bGmOe`rGQco2q+cPvOy~t zO2zY4Mf}~(e*opY0>vcSVHWE{aR#E+8ng~D>PoDjQQ{g}KLjY%SquuHYGWYPs!dg~ z!BHS2pjXM6U*3(JcatO@VwF>L8QoYZxM7r)Y`jiZG~Q5Giha;8?C$!gEKE^=?s-3CA)F%h)3Wow7Mj zbg)T6P)tB#5qaOjqqI*IW-(gmV3XZ$S$zqun-LTwaM@(Fvq@w81^Az=03zc-iOe!>(Iix4z1=s#C$vfz~y+-jwc=V6SXtJ9DPGzC~smA{vpQG zA7N+WEsXxRVPN0E&cqL~Gx08VCf>uC{}Hxa-UqiI2=3($#jwTwFc9Or!SyAu30Z*H zA;7i>Tcbv`Ly>FeEs8u~Q`xe-8kIdwo7)x%I8*ji^2Ji0y^dIV`AcAe3JoGnCyE2fXW|kxMbw9@8#k^rTERe9yMoa%)T|AlUGxMeT`<;3MzFf*>4=G6)d61p%e8O*`o#Y; z@M?ir*L|hotEg;(2fzZ@7cBJ z{+&DPkAVG>16cvWo~_x$ZOH&>eGOxI4zdJ4jq+QCu?7RcSXM9lPvHX4YE3IZ%fvCa z)kd>w(Y3033C+4@IW5qDa=^!ZNHLM`7 z8))N&hrCYd^gNx`=)65g9n0yx5jvw|jR6GgcKVi%b?vux%27cFa*+ly8{9i}%hcB^ z{Tc?t+HlS=*!3o~1+Bu8h>^DCSSNWQvrR6@%!a|%BQJ;O*f5v??!J^*7`KpdrX`FQ zmtkSUXgx1I=ZJ;f1~g0(Z~`s?v9J+D3(CSSz-3NY7)GBDBLT6n{r-&12@Au>_hBR; z7B+^!MjwgPg@s9t*4X;^FcJ_8yMylZV`NTP*f`LzavceXg(ZRf`bcC>SQxCZMQg5D zm;p45k;Vz2VUn+}5*C&L8YZ!@yU~si5HTkfHYKny4nmYIn???{9BbMlo7)mjFia*C z7$y@H!LSB^VQm1zmH`awc7b7Q6oS$>;djDgJee|G+WcE;}S|4#&LJx=}m293dm>=tY4KW&K||#5>Pym{07D6+gs41+>8#MATuHk&qgPtvXi-aSS|D_mR4pPq1*ySkgd@dq~6jeFOI$bBM ztZ^pJ)w(iP3M1%nuwae9z}Jd&I2g4`2gh<2IVyK+bj9mA7CCBk7pZ(hhchtgyiU9# zG%0Fo|9M_~P&2@MZZSzuT_Eh{cO5uO;Fu(*!{9jNIOnLOO7zOGnuX==NdUN}BW2!2 zVqGoaKM~3^r~a29@Gwl@HiP(PqX=NvFWA(|GK&nY{n@NTHh{(NL1A1`ans1)&cT7v z_;h^7-aWhG<-EoFNATyKz1s)(#ZKrXPlbL{aa1pJ92L&i`o&RgIX|bg9zf}$9#gG5eu_{6cfA!cdy5EpVge6=`09Fnm7O=IC^2VlusIKLD-|6-w#Af6HUq)p7R2d@*A+Z^G1dN=h zz=)KW89(J^L}5lYBaizsBIBpZ7*Uv!&B!xg6T~eu`;bT+E0$lJQf2f&uq7#?zl7e(D_z-uDm(^*-XKeheh$ zEO6luV6M)=vU~{6KN8%V@lz)E^~6tc%Uqbz0w-o96ACku2^VI>T+0BePhc=U1!nXa zM(QuX=`S5}U8Cg6n2|exifgZc8QERLkP}zKwyD|bqUr%uYrqZ%P{Gv804nk0emvO$ zOTQI|NyRkq06mBkq;4$fwMX7R`JbqZ-+_X9D!2q56zQ@ET^gZf5k>{RUS_EU6`aPe z#xkqslBVpmgzL;~o5L+u#|vujELPB~Dvn^a3lw$lIZULZFs6K=Vl%)?{7Tbg6ei;L4anx_20Jet=e^BN zhr5d_tge}Z&T6#5T`H9?7=~f1LPCbyB>+Vm4CPtcjzti+&J?tzI|)Y)0OW>BLe{y9 zr7=Feb3j~3)Qq8qC_*vjb!x$PD~5Im5!8HPE4l@rxIophTCi@<;Y*<9YGE0+KkS8% zFeWG_kK=IR6UfI4pYG_-C^Xj4(J(R=?g)>JHFh+Pj5T#Mjf_P)A|o5a-92l17l*^= zDEc09hj5J#fgMKRyRn|^h1ao8)Fe-zbW5`({#`;#Q6uN$OHX@H|9U4&SPUIva5LPKB$!kqfUj`b|H7Teo@3i@)unepi2U0e-!4ya%6FQO8B# z)hdT!RWGjmm-x+^SFHrhyQ9RvsS?(;+|`P*aOI0D<9iX@YAy|4H42xT1ca;xDo_w~ z&((A* zxT_l7UX!d~b$<}LPVb@`X$EBEi&=iX0%^-gmG_nR&Ty058^`~#0x?(nd5?gv^OG)t z^aQ;8dhcwutN0Z5qo#;$br>*F(`vPOZhgvo z*mWK44^WqLXj-~q?zs84&bw%}Yy51a&KjLd6>(p`ceHsOdb_TU+x_cuS_eO8PF2&$ Shet6}chNZ3BmaJoQ~wKZ+l{UO literal 23037 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 cUza*N_-*FQY8oR^cJ^%m! diff --git a/lib/juser-core.jar b/lib/juser-core.jar index 250549b88c0f7b748202c4f70c205928268eaf2f..1bd555dcbee0a4ab63c5f9ebbdb2abe1ea0e0564 100644 GIT binary patch delta 4885 zcmai23sh9c8UE%j>si6a{&MBA^Bp6;$w06&p3$q~J|dQ9}#;J~R} zj=F9~LuSdk@rk)v1z9;Y;|ezSq*&PX$}rX4P32Ceh&+| zJamCUghwtlRI8#YHKjTiUFoNYk@1BFQJa`&5YH#K7+xZEpFtc*%Sn0l9~^Bnnt4Huaq&r5iZsmp9|nRC5QO+J3lFBDcb9PsB)VDes1majwvyvn=E0w6GyQR(H?5=C; z6bNOxVY$Fj=j><~h^|;sx2A4wcBiAu+2ZVWwAVYbD>{}>Ak96IXay;sA*`8G*X9tZ z2vAn-%pi#Ag`Ew&&IEL&S#7YruZ-OxqAvH?XqVrz zMl{)QL&wKx&{5CLck#FlH+8gOy^il-osP%wu#PQENv57=>ibN68;|IC6fPZ4;wc^9 z!v-DCF}0bgPw*FcBVlxz4Yzcx!fhSTV55$u7_TE889IuXD#j!oGcilYTxREEfsQI> zYnZKLY8yTkNSC4`T}Dp&%9TuuOVCQv5r_dJUuLp}53n5}ynUvWU*ELJo3C zmFL75jAbsL#N!+&Kp}|2g)$RNU8ClOkWQy!QJprlb#0p9?=8 z*EbCl!n_a))FLvhbYL+aB-B(*GwL^p^GGk)dkINtQcRl=;;L0>rCdfV&4j6pqTZFu zRdAwqKvIn->i;HLPH|{?nKm8;8897Y`5i{+II^boNo_L$Dy9g6`YC$aYY=G%p&f?h z00}g-P&<@R0lTRndk}<|u!1;UIp}D`O5y}9>2?k#LrSXWv(IooM6eej=s_$FU<3}* z+Ucd0afs&lFxBdaiofK>+rMccadttw1+bEk*2X&nM(*z(`9pZv^yV`1Xsl`JhY{Ofzd$8D4}V-3FlMV8rPW*`g5P>G z)<7h2jKtLs1-R@J32hg?ki>Z-`GAmoI0zEsEf>5yc_NV;rs--9xER1yp9p9>^M%0f zjo@QKaB~m@#;zfFv-Cs&e-}+lyyvt4w|ydc0_%MtiT6hGIU)IC5G2M9C3pumVo5nY zGKJTnQG!%l7deYA4rCIArbyQkvxk{rn9_R8rfe15lESX2FYyfz=F>>ADI)q zGl%%hOlPCd8YFtxAd-+o4T8kj(*>W(K9D4NBZ>8igidqQ+2ye-BzYrAASA;EL1G*Z z0zbg>K9E?vk&N((#Pvh`=$@j`x)`v(s})K&FMlz55G2O&BJg9MvoqWqN#+0~)%`o= zRv*(tNQQgYB#)4c83c)O7z(<$Z0AwQ;u$fn5w#OTAFwy49YOT#AjbYGy`si;8BRw9 zL;*BWh!9bPcrkuJ-~@9E))0>!*hv93{6zWwR9$pV(Q)!KlG2gH^9 zW)CrY*v%ec_O&86|2p%(a}7F?`^rxVV`)*)U~axZ?0=^a(EkggpKZt z3Jx14FFHo?7p(lZ!>*MInQMua&)EWHQKO#djVQ&#b$y?4sC>3jS21=r+O@MnCPgO7 zE2ii(5?M7Rx---&Gnx#`2~Bow28%O8yhoJXY!{nlPgCwN@BH_9flJfy(wH5^ZJMWSLWI%kauw_Rxm7ZChxH`I+F(2E6dtb#{uC zZw4gDr&_{QtQ{?O?VP_^vEgoUzzVxoq?;oSme)c8W%Y`1Rm>CRpI>{IZhQO`dW3%> z*mQ`L`K^ZWg2d96f07|T(>#p#gmU3zMtB4pD=f2G?b_W45|_%otwxEDk!VSjd@DU! z{@d)8@33pd^WEa>9nmVW`*o(bbh1YbzbaZKdGgNKKzXv#Dj)1L ekh)*#dmMJxs^~ejF|uZvRi5b#wN~+eUHBi8@0bDr delta 4312 zcmaJ^3v^V)8UF6wS6J?n5c1v-7FbBgCfUd{ykkHDB;}PxD&dh7mJkw>kYIhFF4)>i zi&B`@3ROxVK&cc18?43FAZk@qDngY~wXHq2a!%1xYTqo|Nr?P z-~4yxpF21Hs(tup&9$h?Vs!#Z!1UcUJ6#2Xr|qt(oPMI<<8}c2ris&ynLAgE^GtL( zXLSS`HU-ucSKK$nb6ZJSN$IMI6N{T#Hw8Lc8(MZA&bP3S^TTBKMFDprPa7-y8g1HO z;w#Bx_{kRynpX_7+QnJTDYf3$Cd+<^K2!F!`W)Hs)u+q;BfZSz3xp?Wps2PeySps& zrTma(Hus^cmQOWFT(ULWB{9dCt0X&J9*dOprYup!fVAamXkGeJU4jh#_ubUbEC9a? z#Bkj$ws@Sv)mF5tXn@#~+ZVc$RjO=rbIYvK+fvV1MQryrsiFVmA5+8;-)ojZJa^k8 zg<5Ym(3>qD@|OocaAG8m55Nh824Dnwoz$Ehh%|1V!!MY6o@Kve>J(EiF!d{@e$CX2 zO!YB!nyHtVI>Xe> z@4&kbTo7Hkg`uZP|7gi}-rX7KsBT-`99W}aATz64Bqu%_pB?f}*rRE$hDxey^(Ofwg$Rz}@(UfqQVTfo)8E zm#M8xJ!1a22j-}dI?u+mjlnXHgcN-~s%}QBR_=73x@i%GWx>r+ z$_bAKX>wyI=wj;qu=2c?C>6q70}1M@q*xokomfh!DUGJr4B}$KYixZNNh!;wPCE5| zo@XcOqTK4d9Hh#)xZFl%)6CvVWtTzfw4kVM5FbOn+1O8C{{V{7O<(RHW&aT6@v!v6vjeJ4KTNGd z6M52T!8Nl-8a*W5n^hHLuX%7#`wSsD3OkNrFrLK_+WA@NrSzVZ9z7E6jIhTUXu$^Z zltnA9m3-@HBOeB=cH;&L9B41+XtWQ^XnyK>ZnnZ+WcLuEgF}zBOX;bo+1tXirwzo` zqHlJl#Oai?>VplZqh@IjW3roTUgO=#mJ}d5ZcZew3j0dJu(Yd9;~5l?6KO9D`c5L} zco?=q@&+L}+Yb`8mozRK36Qwsk(^72WHTNxjm5<~(xP&3fg)e*C$ie78dshKk#plC zUrHF6DptZAnEkt`m|Q{UA}5Pvg@{`4Y3{rseY%lsTZS8L2;!9Z1I-Ym0~GM(se&2AgK@ zCyuI~8or0^@iV3gTjD0HITMC`43FP3Ve#}lXJiLx$%G-L9}KEIYjjk8-*mIm+{k%J z(^6{O>k6Mk`tulGf0N0SjQePKf2UF{gq8+fOGmPnfm|(f6p8B-ri4nXYrg!SN}O4EL`xT4Hjmi8Xv5gyfK{W@ zY^3b@&xQHX^xwj#UIDfA{}O{BRJHi!B>De)eEp8@3Om4Wx!CF-CHf|3g_bY7YITk$ zGd^UTsbaudujUjbYbS}GRsWNA=ML1rb0^vGtL%CvWr_Mud&tso{Z`vh$=Wjc=PjBV z%Um%R4{@wIck6q2 z*jp4g6qB~0F_A9o;-&gwqHnzl!9LP0B=U;nW+lpNcI&lDw5mB<0@+NW{Vej`66yYJ zIeT`|8sc|qI1Y@oiW{b@!5iHAW3I?(j;L-`-j;agG<`vTA^gscLDZAN`jpGjVos|G*sFySO9+K$3)7?mG=Ac zMu?V;%KmhlTd(n$Vw>3E$zVS+ExvZQ{;1a+vWoV0pA_#U@jvs!;y?N9!e5vicIevZ z)(`rkhCN|mk-I7A;u3kfx3>A^w?5=g7QPNO3stJPQh{zgk*9lW$2_TAKhY{ib*NcP z>2T{^3&P@HN2XlaF*PRQf>uG}QmITOM_lVjmC7-NB}Un?l9VgN+RhaF3u}1f|5)EC A8UO$Q diff --git a/src/org/mxchange/addressbook/model/addressbook/Addressbook.java b/src/org/mxchange/addressbook/model/addressbook/Addressbook.java index 536cdb8..f3e6693 100644 --- a/src/org/mxchange/addressbook/model/addressbook/Addressbook.java +++ b/src/org/mxchange/addressbook/model/addressbook/Addressbook.java @@ -98,9 +98,37 @@ public interface Addressbook extends Serializable { */ void setAddressbookUser (final User addressbookUser); + /** + * Getter for last locked timestamp + *

+ * @return Last locked timestamp + */ + Calendar getAddressbookLastLocked (); + + /** + * Setter for last locked timestamp + *

+ * @param addressbookLastLocked Last locked timestamp + */ + void setAddressbookLastLocked (final Calendar addressbookLastLocked); + + /** + * Getter for last locked reason + *

+ * @return Last locked reason + */ + String getAddressbookLastLockedReason (); + + /** + * Getter for last locked reason + *

+ * @param addressbookLastLockedReason Last locked reason + */ + void setAddressbookLastLockedReason (final String addressbookLastLockedReason); + @Override - boolean equals (final Object object); + boolean equals (final Object object); @Override - int hashCode (); + int hashCode (); } diff --git a/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java b/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java index 82dc36d..fe9a5c3 100644 --- a/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java +++ b/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java @@ -28,6 +28,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; +import javax.persistence.Lob; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToOne; @@ -97,47 +98,43 @@ public class UserAddressbook implements Addressbook, Comparable { @OneToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.MERGE) private User addressbookUser; + /** + * Last locked timestamp + */ + @Temporal (TemporalType.TIMESTAMP) + @Column (name = "addressbook_last_locked") + private Calendar addressbookLastLocked; + + /** + * Last locked timestamp + */ + @Lob + @Column (name = "addressbook_last_locked_reason") + private String addressbookLastLockedReason; + /** * Public constructor with address book name *

* @param addressbookName Address book name + * @param addressbookUser User instance + * @param addressbookCreated When this entry has been created */ - public UserAddressbook (final String addressbookName) { + public UserAddressbook (final String addressbookName, final User addressbookUser, final Calendar addressbookCreated) { // Call default constructor this(); - // Set name + // Set name, user instance and creation timestamp this.addressbookName = addressbookName; + this.addressbookUser = addressbookUser; + this.addressbookCreated = addressbookCreated; } /** * Default protected constructor */ protected UserAddressbook () { - } - - @Override - public int compareTo (final Addressbook addressbook) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public boolean equals (final Object object) { - if (object == null) { - return false; - } else if (getClass() != object.getClass()) { - return false; - } - - final Addressbook other = (Addressbook) object; - - if (!Objects.equals(this.getAddressbookName(), other.getAddressbookName())) { - return false; - } else if (!Objects.equals(this.getAddressbookUser(), other.getAddressbookUser())) { - return false; - } - - return true; + // Set status to UNLOCKED + this.addressbookStatus = AddressbokStatus.UNLOCKED; } @Override @@ -160,6 +157,26 @@ public class UserAddressbook implements Addressbook, Comparable { this.addressbookId = addressbookId; } + @Override + public Calendar getAddressbookLastLocked () { + return this.addressbookLastLocked; + } + + @Override + public void setAddressbookLastLocked (final Calendar addressbookLastLocked) { + this.addressbookLastLocked = addressbookLastLocked; + } + + @Override + public String getAddressbookLastLockedReason () { + return this.addressbookLastLockedReason; + } + + @Override + public void setAddressbookLastLockedReason (final String addressbookLastLockedReason) { + this.addressbookLastLockedReason = addressbookLastLockedReason; + } + @Override public String getAddressbookName () { return this.addressbookName; @@ -190,6 +207,30 @@ public class UserAddressbook implements Addressbook, Comparable { this.addressbookUser = addressbookUser; } + @Override + public int compareTo (final Addressbook addressbook) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + @Override + public boolean equals (final Object object) { + if (object == null) { + return false; + } else if (getClass() != object.getClass()) { + return false; + } + + final Addressbook other = (Addressbook) object; + + if (!Objects.equals(this.getAddressbookName(), other.getAddressbookName())) { + return false; + } else if (!Objects.equals(this.getAddressbookUser(), other.getAddressbookUser())) { + return false; + } + + return true; + } + @Override public int hashCode () { int hash = 7; -- 2.39.5