From 3b5bac52132c74dbd7f36450bfecd3e10e9618d3 Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Tue, 27 Aug 2013 16:35:18 +0200 Subject: [PATCH] Huge code improvment: add isAvailable method, add GenericPresenter class, add PresenterFactory class, add TranslatorPresenter class. --- .classpath | 1 + lib/README | 1 + lib/devinsy-utils-0.2.4-sources.zip | Bin 0 -> 52827 bytes lib/devinsy-utils-0.2.4.jar | Bin 0 -> 84520 bytes .../xidyn/presenters/DomPresenter.java | 22 ++ .../xidyn/presenters/FilePresenter.java | 22 ++ .../xidyn/presenters/GenericPresenter.java | 203 ++++++++++++++++++ .../devinsy/xidyn/presenters/Presenter.java | 15 +- .../xidyn/presenters/PresenterFactory.java | 100 +++++++++ .../xidyn/presenters/StringPresenter.java | 30 +++ .../xidyn/presenters/TranslatorPresenter.java | 194 +++++++++++++++++ .../xidyn/presenters/URLPresenter.java | 89 ++++++-- 12 files changed, 661 insertions(+), 16 deletions(-) create mode 100644 lib/devinsy-utils-0.2.4-sources.zip create mode 100644 lib/devinsy-utils-0.2.4.jar create mode 100644 src/fr/devinsy/xidyn/presenters/GenericPresenter.java create mode 100644 src/fr/devinsy/xidyn/presenters/PresenterFactory.java create mode 100644 src/fr/devinsy/xidyn/presenters/TranslatorPresenter.java diff --git a/.classpath b/.classpath index d4238a1..6980c66 100644 --- a/.classpath +++ b/.classpath @@ -22,5 +22,6 @@ + diff --git a/lib/README b/lib/README index 1e2e5da..479e0b5 100644 --- a/lib/README +++ b/lib/README @@ -1,5 +1,6 @@ Description of used libraries: - activation: STU +- devinsy-utils : useful tools (StringList...) - hamcrest-core: required by junit - junit: unit tests API - log4j: log API diff --git a/lib/devinsy-utils-0.2.4-sources.zip b/lib/devinsy-utils-0.2.4-sources.zip new file mode 100644 index 0000000000000000000000000000000000000000..ac88eb7b58400e7c35e7481622bc5bcdd02f18bd GIT binary patch literal 52827 zcmaHT18{9?(spdywsYd-#I~&y+qP}nwr$(C?GvBmB!BMAKQs4E-EVf)uG+h*d+oLM z`@G#xKizA|NdkjF0RTV%0F*gy3IP1+1^M+^T3CsnR$NAeUhdy!j@oowf3gAq{`z8U z|0jbq!@nK}`kw}dM$Tr|4sL%k9Cw2e{PU3z{%YvtXlD5*>)HQ0J&eDxHn1`@ay2se zA6}?`#sB&t%>T(Fovxuh)jeRkGl>e*ols}{Kl zb~_?&x^KMM2fTR$c{)wfwhNK0S>vgv(tKslSW#7P8Id7Y3g$BW>^xR&K`pWgQf*uq+dTRD{yka`1z~5GtFcXe=^?>}b&Ho_6bJ&WPuDM+TEn6hJ(5mVuwoH8%` z^J#90|DffD52?Obktj?>D?h~QsYt-=o(vVZ7Jr~Oj;8TUI~Z^b*>v8u*I?h=5ffcZ zyu_M82?AL?J~5S0Kux)0-gtEJcZHD58cdi^^MN|&BHm)N4rz6-UlI|DT$vA`QsE7q zRMT-cXZ3bAr&|-Z@=uALW~v%8J_D0?m+RexXZKuF2Ve;$_53MAkZba+W5s$_rt8C8 zCd%9s9Qutx>(pr?b8AlA)r?b_x;&QFxzo132&cRE-K1j<%|Z+ATdKt2{+(3Z*vVDpqQGOY+~F+&BYEn~PhJ%3;+gI)bx#qpgoeEw7@0 zJ?!*`AI0#cPMz|G8l1z@OxlraueQW`)vzF1v*ttycBpV64zoX29Z7zm+1EJD{nEU9 z57X(neHoiR-qJ9zcKlCKVDIn`+z+X2$ZYT- zcs2Lvr;~$+3lh&0%@JrIgof)B>SX__uNyJcG`YI2_G`So$?96&PUJ%@Uko9+yquoo zFqvMDWM$P~^#xu&btB!grE8ndgml%UrMg4eW(Lyh?CQ!$H^@2G;_s6Lxu-_tR}Shn zM9M?tkeGDZ9_l99_bB=s~kCY_O0D`P|)YM zUrfF8AEk|bm`qZh0<YS&r2gMCdx!U%Ar;ausqYuTQkX~ep*NOEuBAw>X zJFI-)XZPXZ_NTPGl5%#*jv3)PxHJ6bR>!rL_MMklAx;k!liwE8)6|g!n!8+pN^N zx5p~a$bhRc+|jlZ4iPDk=PE9tuGH1K7y&Ny1TUec8%!CVTFgd|$T_w9`7z#rOqeNx8!t8K!%&NqHtDWZeEo zmQ}HEUaX(m-!Nc8vMQ|821?J0TEMRxs~@ee*ZykdOL?cl6fe_(yajB$GF^KfsG%r-b-v7yv% z<6Un_(d@Dg_y53GbHfhg`g{#S_ZqWeGvrjU|mMe zCh`O_vRDuEK#fGc_ytg+{wB`HbyEZQ-Q~;tM^4K237?zGYH5GQU=r&Dl_Y(fn`uv` z`>DzOyzU0YAl#R@A#)-U9BD&@GG9A(bj3cGJ+Dc`^tUK4)d*N}evkqJp;?zOh&YTg zO)^CN>jDrKemRN~#Lzf5_A{?Q_`W7XdpPn@`FaGp{R@U$(=|c7ykStZKB*cJFFQ1!h^1nir+kq=#vhl~df5SVLHDNO~B=aFtcwT$rz)iG>kL&3Wg2lSJJ5nh~$8mF&eODrNHwS3pAnt^ZbV zMZ}ZsD&|Auhs`woThwu1jqZ~Rwo4B0TT{D^>x)=UM9(@K_N!XI&OA%+8LweIf(`$o zduJEu?lx=a1dK7|C_?SzC={qt?_wk>gQ}Mv{aNH7K}J5z_hG9Dj^#9A-SQvdP3A%A z#qpz(k^6FHw-O9MqR@O5px@yHk(lFAsSCQ6^;E7;`(vZ~FPnoLMVB3Q?k=(59d|g& zWUt+N*uGcwxy+7ka9jJdpS#pl&WiY@KgRH!3n91_>yP!-;hj%)T&WGJg=2Puq1{i1 zliw*x-IvIC+h#n?i_qK%uH zZlZ=+WT>8yMj>fBr+E~SaMMS`>Npuv<^!wrgP_FSQ)_wbm}3t{6lAZo<#+ds$K3DfM&5Bq_(5xr(Y>apE4F~EtXdz zV^v+k#tT%mY-MdX#-GuitP+zaeY`m{50_MIIc+t{pC|V=VH4y(FkxI$T z>d(oSvkPiNuHKD0@Uu%r!WQ)!rvL{hRb7^DbTTIo<2UA(|}S; zlb`F%Pg!`Uw2jD5ctD6saDqaD8iBHJ_F>10GeFvbDpa`}X-_2vqPk`^2!sNjSfaEC zBu*$l?=BsoL1mRn9g& z!ixmHVSS_NQW}sZZ6zjnqaTnOVOj*yg+DyOrdJ(ma6H)0*1DO_I<|YC@_d1& zHP1<}dfJ$Io^rSFazMsPMtXkZ>kk_EY*0r~uR_v*OBZIcIm?oXRn>^jJVjL2 z%fcFz{>@hg+!amOG*#0)C~90IsjTWQ4{@92?Hp)66D_Y|T7i3p4_3!2A%Vj-uBVTr&l%^+$D98^o?7=wfU}Vf<@$>#`+TVre_J1#nHV`Z{{PgRr7UT) z!H&Qq*`vQNSu~hzRB$$gox3KzfU#;AQOu3XF*`pxuR;VGA8ufIzvJ=}OWR^6zvwG% zX8baBk#YBcBETNhQn^qRd#g%GT|_;+r^4(XqnBN5Lw4_&j8!3PRFqq44&opoB$q#n zO@_#sT>zp@WSSTSB)^*S?2@y0V@{g3+3#^kp$?1RuB>fDG963J+}exMC{ivlsn^t` zS_Avx72`uY3cQfCdmE~d<^YGnaG+U=`Fc4N23nY7wpxEltw}7Le)yth*CfrUy%fPv znXV!R`&loVtVGmSoQOsbnbLXn(3L!zj{hL)1l1s;;-0aYuWTUJ1w5c3lWxKylYUL4C_2U zpJ`;$bwYS(rMRlDxbfQH1K@@*XXc z_&pgffS^8o&4=J<-oEn2@FMT?@m%_`}!g;L^)9YDALP5kgMtnqvspgTo@wh zi_oH~JkE%r*){kz8T$gLc=lNYOWZQHRLP)9lrCOwVXRBA2um)wv^Y5v&Mt_C^^_jJ ze?an^QrSIvh?dxLX-ek!FjHjkV<@eDt&2bQOLQlziA@Vqz6h3WVc67I=a0l#MP;oG z&qeK(N;!9rl-+V_DC|VPmU{Jcg$u57(U28;dHqlZihd- zOq+SZo6#B4I12HoP7jvr@AWpCK{}>kEZ;Q9v?V8iyIL3v5A?F{04E*Tr8Wp-J8%;{ zLiJaUxkbmT_1=k(234AD(rgk2T27fI)gkBhvRjd#wN-SME%6ck& z)HXzjWOGIx0blLcXj!@nB(#XSa)9-mTn9EoKe1_TP#y{h>H!d7^{su>?^Tl9p(N;| zd}>Hd_;?e?yC}@#`|Bm8xpU2ncCP)FhbNo8ot~Kq(}fZI<=$`HB!}VF{QcQ9nO=7mpg=0;9|}9 zZ?8MRW_!pkLp&1EC$~QT2^4<_NoAC)@>75S0K;Fw;_q1eA0m>Vjjh@L4;5AlebyTc zFx-;5eNTqqY4dPhply|6zB=uC!t~hT0(PfDSu~jOnKYXBHw7f*4gok)1BV_lF@>7y zzvC?e*TYb)lkPm`K#NK;D~g-wdNVd9@+#FRq822_z!#kNDA^OIhJLNk!2o!E!?MHZ zBetI7Kd}R~r%gh%2K|Uq3VFSO+Q_Zki=1Ro7L+$cn>7BxStaS}6GF5g(-vQg zI1>+pvH4q-su~{>sLHXv&sRn(MbRJcl>h2(^m_*cth9qjUW0%QxmoQ!liyXpFDuPs zG828PmuJziWgGm3yoC@x<|; zG}$v1yp8-=60s@DaUMqWZWEXc0kSP=9wZIWRrA-YW?sMyQS{C-pqE^cd&ZgWDfp?B z#jzhC+-f2Z0u?>y@Naf-@@5xxr$cb>gP|5ZLSf$1>|VJiz3}h&e?`I%*R022Pym4Q zFHw~6Z&=bFND%)@8G4R3|E%bi)U0HQ+5X^2PzmrQu%hUvU9-txkB+{9LXx28kHGr_ z@lHt3tj_IEWV3jmT}ka{MKU)Z&}bXk6zXTUV13tl*SH z{Ae(d7&A}`5Ikh@$u!hFa|+-3e7LyCfPZfFJ$t;_Y^Zywwrp>SPF~-4imdgFE{%qMrM9{zK#ZYdk5`S z#U#)GJ2eLGAX^M>!ckQSm_!{|r}>%9#^)r)1x zVQXyV%ym=U3~(~e3RV;8cJsY5g!Ld*brl&B02>K=&9#!S1a&GOu)auFUl-*sC@E0| zokdsplXopd+}}s+-0kePi|Sb9oa;bAcVTO_V5Nut=7Hp2sh|VA?O1V9W|>^H6^Kvh zAY?#_jAbZWx8bovqokd{IvYDW8X{F^V3{KbV?{8=uX^XRU7{9}^)6QEAB1bUsolWJ zWtrG7iQw4P=g=-kkOh}r5z@rJ8_5})lVoNInMmkv{60FXVU@kHN%MBZyqdN` zVP-Gi)l^T8(Up`5@(RZp@a&9?X7RmF3uN=>IKd0~8kvX_|McLb`T~|DC#r+HzD_p& zx=CU)((7>Ti{dha=M_#BhpJ-81gzU*_-T@egy(#Asi;@u4}}?TBzU}Eiil6`z}z(o zP1Iy^;=Vj|oyI}J9cD7n<)%mk8tq}y-)Z*(X%tb5Y>t|&^1x({$2rZx5@^q`D z2ZL|yD)Od~Zo-%fynJGd9{M5(pF?!-tW^mMSg-Z*WM zkBTkw@23z=%5VvJ%}A#L^9*y3)-PEE4Lco0OhO&%(<5ZP zvPvWa2L!00``K6oR5tq+k&uaINP^;RSc3eJ3}&cocDRpT$BvBojf})vLUc?TA0TurAUc57z}^k$)dDsbQAm+G|npg$o9% z0GBKp%XMJ^@0g8}R2{6Z`UM4Y_=NmX219N&KhA&* zBzY^!4FsKNEstN^#8H2}9`9;@)(vJTOny6rWlOFEWtp0G)tH%f?ro8oTMIc}Um8y$ z8oB{jGtar_-Vy1H1SBTpRbP=>E6(=ZsphO91ARXc%BDeKh-bh5;&Ppj;^7=-UUXsD zjPm;fhj#MXb5WX*lcO7LFgZ#XTH~`0m9*3|11&?CS`GT44_446xNCm*Cdsie|A)-b zoV~N8nySTP`4yNIrFIXILmpnUt>0?>Ss&ZltmWc-{{tX!dIR27`4TaVS2T5$f9cpG zO3i#mwwmb72KeQ$STWmc-t@o*PPjyK536;|aSx~WZ}~h%qM;8~I1R}|D0}OkgNloE zmt$%{E3_X^$fx|qnZ+(%@x_DiFqSg;+q^8kyxOBfaV#LL5u#n&{VB2*nr3lG;R)64 zlIj}%@|8o`1MlR5XD7Gt|3Or9F`6J_O{$K;7cId2Y9#+%%jFM5DcRUq{ zz$7Q%OX`ho;={|8s7bKr6OA~!tmhJu(zJ9U`>w#>-n1KI+D{==?fcjz(7&U98(~(j zCoK@AlXBP=#D|0D?Rv9)`5=~1Z`*%;6d()sz;DYrBSJTY;}JSfK=ud8n9!Vr1ZqK! zKJ+J;^`=C~xS-dSrJrNZv71yqrOpdH=tp9JZ5<5)} z;uai4B+Z=$+vf4`{sQU~lTt11%?&EBHO6t2bkNfHK^WWLpI9g0_<8M|Siu=y`Qf0X zADyzkuGmT9KJ}JX8(uQcggE5l7?;41%;r z^CoZ{nUKzreu9E-y+b)C7-jThB8ht68eHmhRar(zSq#FbBw9(=2dekCDS!8=c#Vkq6=2p0Qd?CtIE3&pW2Eq zY{s*6RCt!^_yOQ9goX_;DqqwjyDj46|kUq3_#*CFYFA*y=dfti``i?Kie;%nn)4MZr#lYX=Y?eh5F z*v^bI=BQmx$w+6@dq69FDiQ6i{ylKU?{5288+j2!}w4mrBBcc@#ho4o*8r zSlC-KbmeKqkeZ?MwXR2sr$NP-<_JukP;OK`L`j!ZO@9Kq5*esNRGM8~Y}H2=&)NvG zcYP4KI9d`(A+|*soixj5U<cQ&dVf{f#<}Q0vsXXYu&l=ztw|y2YJpSXk z{k~0`yFM3X3K0}PClcsn?r^R*1`!mh1T;PxS+PWLOgJthvvhEe!c2Zfm+1>Ge_ejBVO#*&jF5w+aR*3<`tj~y`UXv{{u6{!DaG_U5|l-;}vil z6zq{}*Y)zOCDy^~SbT&!){EB~{O2v7{~82gk{eF&{Yv<0|A){gVy|c5Xl7&m&p{C7 zjX$b)ujC$o28Q0TdG?EqSyT!J8ZY%0Kr3E8yHmAPqCcv4>~Xw6nRt7`6Lj6@@JJiWV7 zeG!z#bfxeN9{zPgieOcZM!<2TmBu~COy%~prJ9xTfng%BCY+-|RFh8uYxSVsr72C? zXuq{~syZl9fNLDRDpp07TTUtOvaWSS6D5CECikd6`2G8Rl@VSJEplaULgsfP=mv0D z3*c&GM*V&qmaZP>;0xMskLJXo%PkmnB>{!&ukl9xKiEvE&pd@Iy-9bSt83GX`-YT7 z_!T;wvt>J~_ZkbM;%8*qIH1KtAF0UybE?UEC@h3Z4?=E-Y_VLSNhN8yNrTPI17?q4*+0s%B(duKIqQm@k=aq3 z?aD|D;mvdNdCSFwtH7H#m?zUHi7qhkUf^4i`tY6x4JdvuZZ$Jq3B{i4cW*A{?i{G% zAJY;b_lcpogIYCAVRCnvZs$P!1zJ=H4qR>Tx0u@vWs`?sba4ff60KFmq!VMA#HyzI z0>wX!D$9E@rP!Wo(8)fsVtfc82p6PmTSdzz?=eE1huP$e1J9;{PbqYaURx~vgzVV| zJcgHy)y!06_FWI>opqwcb&MtYP)jIq9;;B`GaUL(Eak-`Fg`;I<|v|76ig>shX@g=zJ%J`}p ziCZ|=5g*Wc)fFb6-Yf#j$BMCQ zFY&C^%m$c5#IC z1P7OYo^{o1wTM<%T`xr^YT!HZg*68p*+Zmfb246+Vwm1U_?eu)mFM2 zF9cWM5L1aNlKy~Mo{A4AGE0Lx8 znyec+{Wz*|SfQC2=qBLXYJNAPpqUdQzHbotFEw?TfaNJ?Qf(pi<(bi(a=y2{+e54B z>!q&sl2S2C^{+S+3JdQ+B?-qsPxgjg%!iILaDo_JEW*I{Kux>v51msE+Uuc1~*0}!BS4yn;wwv--)jB{P zDv${_{>F98dx2=&?)TYrVHMc;)d$&h6yfyBNM|*UZ(kj9@MbGAuD)zq5DIdan7LLwd5F+PDKK-LS|>Atl=7J=zBbPds#8ar!>5gCD@L^&M-g91|K7 z9uFg)8%|InMl0;`4+ycfx7RnfhZoV?mMKQ{@BD<<$u5c2x(4U%Anb|SeQ_MiL@ew-dzm}<8q?YDzlML*yR{83Pz~R5X0u$LsKh8g+kQdX^=rQM?{tiRLR!$&-p1PIKZx#1`n3M)+K+t7WbX$uQ`XWM zR$h=fB@{O`E(oni7{UMO=iek{t;eNee)N07@uv0@M8K~tb?n#xBf}%*=D&iMjWSiomfTzeVk~en_w7^g+pY;QslUUW==r28{Np??sZJ_tk$pl~2Xa&VJ*W0aL(q{ULZPut%z_ z*m)f+kAe<%kZ1<`tQ1Q$B?6U3==Z+Uty=T8%_kmEM>tT1;)NA4Up&QBaiq=|gVlhZ zp#i~@09D>CYM!0f77WFbp6hmfCLweJ{dZz@ByhQrIG4(|2Y1Kb;HKkp#W~~!!5X}0J zZ$MFEj8X!Y@ZBKa70z92mNOl5cy)-~%^a%}oIedDXV(fvIPoI>Q`S8G7KyF8SnD;=4q%_>mfif%&yt)o+5$<8~(F>53>t8n@ie$&3%X{3J_ zh8@4g%N@V?xRI*8*}sCYRSduE00T_W%w5fG-4)?lkm3*^$+RFA(g{L6Wo%L0g{6|| zCvFKYsz3zFQ25UCWlGgsBY2F*{LKf-Jo{Nc;S<1KD!Bf8EqTR2ELQS}cCmiom@VlzFr!O#=pj+kojS*FjfzV(6i~0cyy>DoL%?_G= z-DmK(8Ozb$%-ZCO^BH_el-B?5I9;h~D{hGVBV$GB5(yG*#7db#W&!v`a-n>SWrj~Y zt1N2j;@@7nthU^Q`RsDxB~c%y!v`$6`WkMmx#sq`ZZqLs)X=OL!0IGT!-Il+6C6u4 z4jib_CwYN>Aw580UB9ZD4fMkK2I`e8$B+}RAeUc5E~GH(Dn)uq2r7Lf=6AY*e-p#o zhj<}QRC1ebPbCh7U$4_ogcD7ny0{A@ADb@EQposF%=$RHn{)IM0%Ssv4hd&KmGrs^ zU?}y1g5>XTJP>SJksW^;4?__TW58*wB|RY3VA!E!QlKOTt2>$+C>6Ms5Ks|X4CdPL zb22cbLm~bQQNllrmON>RKq6E@1OzBf3<*nJU+q3EITD`lp?f#gA96uZjxtIOpBhgd zg+qnVktK4JR2hsORiX}0q8#+$Tk>FN8BX{ZT3R!U2vJrrJ4cWoAFQ2uB>Jew;76ed zeSp#Z)w@@WA4;&&x-TULE^^+~g4ivD@_~%J{;S84mWx(Ub>?p(4A2tQ7g`lLvHM}r z-&&sMD>a;&H9ni3O-*atrVz5?wmbK<-_Hxy02piJJ6~cKD zKHH^&H|qTgDU-2VCGrX5p75bWiokVZNy^5N4$?HF3$z80M*N_mM@Ys_#d#^@(^;pB zez=kKMK@|VtC_?L?&A4id(f9M4QGuu@PKSb%sBg+i2Iwd)>KXm5Hd+xIRz`GKF)VdBlw?rG*U>UdHi>|Bf?U6?9_h>bblZ{}y_{cj zbPrPoii{~{#6YYfM0O?d}Z1udp!9w zGJnr)wBDNyD@J?5#ItX0;NTZh%hk>0EMn42yK4r&m6CPfu-gD;-ZxIojc$ynP^v^7 zgsoOn*HiySj}J$%bj06voy@>xA9~#ipKu0iSvB@qfjP#d$C`7npS0aUZkk)0St@(9 zHordOFM~4^rg68Ahw8LBh{~hf<|t%BGpsV)^gi&eI1&>@KiMENK&UU~oqqrOjvojB zqaQGWlZAdd;otxOhLnFl7oqr%2qk6a;P?+^WlKX{@k{siZuSu#k#!~*NLn;bNrj3n zSk?D~8apP;SjUPn`mXo=rvwv%P5ftfl>>7MW`K05msqa?zOIjXlg2mf82pw!#?FTY zLn%z0X!X&A*_b_e&b&L$_v~SiW;V7Q4}r_y?1v0c#6bJx#31arq$@ncvBQG>1enNT z5E-_)#IJi-W8my?;FBgyu9Euw?-0}T{3u}TII*e7dgz{Tij3nUh7bX1N?yd5IoNMD z6z;bPvBS2)80fq$fQWB*FhuxX>3V>U1>BDTlArzrVm4yc{i!pZ%#a0J&Rm&Nl#;s< zK1UvekI^!^KCq)o7~4}*kajjXj6TkhiMjj1`4aXBLOdt_AoxI7!X&Z149E9@L3g0D zedss`wzy;lyNXDG#F4H7v4@1uyA*z5KH{ylY(<$Nz=h0t3}OSOp{#B7M2%+YqZq)P zS#GD9y`aKyb1dVEgWQmxr2h1JlIN12#8$wBk&p>MObFjam=PNQqks)*RU&^O^%%=k zMTg4;5kmm{L>&sjp&_MTJj5fgKun9pIN-*4yUct~h-W9bvbl1$81JWk2r!*h^ld{X zehDQKl2JPq^(hyAvweX2b!%vGv9?fkGUL7F_RG`6!NcMtCF|-yTTfVT9CJ|=xC0RO z`D`XaaI|j)U_4&K(uwuHD1du6dl2pBNO+HgG6fJpg-RBIZ97Xir;e|*Ooc%jkYp7n z@FCiyM7K={dG99xL7auVvL&tOShl_u)Sm;Mgi;4iftY({iDHM#b?Hyl?-ZmZ1=ht? zL`qbxmID0ImX@P?Bu0#mOOAfa!KNY1s2dXQ*%2%ueG9Bmtw~AS_K4l);c|z5iBv`W z$fLB7R!K?`uy?+0$&be+yIeR4y9(79QjB+Z0KEa`e75&Uy<2-M134SVY-HipU`uK7 z^q>{f(9+o_X$z%IJapTV6s`BcCmKB6cn6Q!_bZ71R$9rh5Tp_6a8CI%wzh z{M%RG70jsvT|%(B?JZp>cd5ZwIyqJM7u>1AR~w;b0LN5g=F4(<{l-&DT*D0aV%0jE z>n}T|d_q&UYOrz=ZDYl4Fiq`G zwZ{}Xl~^G7rL*5RFB=YXcza~SYL!y~(+05VmHA(^w?v|hsmQEswJtAV^(A~qSQ-^; zr_oz(lbq1NZ)WxtAo=}E4(Fg=_E+5~8f6N29m#OxI18ix>uTbd^4e^em;SvtHGwV5 zO>b3yt7%adf;0c|vo%(BB6A0Op1INh1cUaHq_`xrn?hr`Z5f!&U3vkb^eHOGQv-PV zFE9;%lo`4$yvx1nsV&FEyv#}DRgLMYl1%XH4)j~cAKotbkw`hD7qPIrBIeG6dE7~8 z+E#+5tTk7~^%6!d08`AAjnSVl@4i}rb=$*jvC&i))^=y#oYZa5Ybw(GwCq6jHgkIm zZK+rN@hoXb-{4-j*$y|{dj~VoqYtWg=-(?T)_CY6LW1#XvZEGIB#=2OT8+`lpXt~nrPvpY9I>B^I3|R^-*7rHE>w1x+5A0 z=Okz47pEx0HE4EmLn(g`Cvu?K=4>YoG@)4BG3!k2c;HxT zYSIDKWIfhzs5RwtK-05!X4UqeD#mnVGW`AE6B0d=`^7D{qWGe43Jc;~e=6~Ah8GyO zHw&;?CM6d2N7Z+P==al zg1La}gfpR)kxHX!Flo6*FP>W)IO{t4z$DxeW=VPK>`*B`cLS!T+B6?(I!1QPf)An~V!;3SS zjE&&LZ|d8xi}E2V){Xn$8S0e8TzD?V)BRNLD{}|IUf&!Vbk5MAP zn%)+;O;9@ABa}*3yX|*}@ux%_P>X;#g*>(ko$sW*I{&bEgJ0Gh$AsJa7`zx+0C%!L zIu%9bXmaG#MJ!Zg2Xx*1OBP45^{-(3)6V%k>BT3qoS<03#^T zw$QY*h-dveeFbcm0^a1w;m~w4dv)85me!mWr`0!|*{2@Gc`E+KGFD*ZK71aSS=qRz zjX}v>%^&rw+)02=Y8wzfE1dYTZ)u#93Sr!-)qBmu5o;E-I^qkLID?p-vh2-XohQ^~ z*jd(>b3O$Xw>z3St6{%^{#tX7C)ahAeXTFkA2*`?&-MLN&7Bp;Z}Zg#3z}K3*`0%g zD!O37ko#d80eGd6i|dTx9Bb6Rd@Ke=Nj??)@hq>>UI-XY)}fXxd zUES>&WT6_D$D)-d`VDszR{5k7NAn>v3_3VZwq#QucFEncOX~d%{lh30lB|7KFKp0^ z8#vDL9gCBgNjExSHtjs>w-KJa&^cDh^t}fBoRdS*WQG_9z8 z>XTZS>SP8W1CBV=f?EC6FlK4a%mqi_mJwU$4Arso;W8^&KQHLUrfTV(36G>FjFz{6 z?oR+s*eOU$MYyR7tB?-}+WvXQ!xIYf^pNoTPciArPvwlXSi2DF^~D&$oF(1=taa+w zGZ4}tj`C5zCQ&ZF9)N)JH*5XJ6pDb2>p%E-k?NMs1}lP3@<(_DJ`{&tlJnL;ZJ}Vj zBP}P2Rb8R18QAR4F@5R;JaN)HpwAnw_)g+8|sXO$d6SFCYRDQX7>~XIc`+E8r7l@R*jem`hGE5!n69&mhk{#18 zKo_*8`j7!C;Ns)r4B7%PX4a3RDDbOL%ulC@p~n}>1SGVj_vR$=y_~(?>ypKe9ZB4| z=_$~A1MIn|+ro0tBVK9~`X{%w8A0VCF)96k0tqnB<3GMWx(b=O&6Y(~q;`z}LZ#k- z;#FRVHyMn}n}v`Xm{)N0V@j>g3}#!N6lS;=i6{J$7;OV2Hr^(h1;XRQP!l6NA#eyI z3tZ2pj7S%-=!$53Qe5u5a6}*dSqnLVb42t7$>KAiRlwqtlg4dvM4#Ad%%ohEDWmduwSHA1z3&Om9J zNUkhBP#cpeDHAKI&o#@5)`b+voSSkTHM-EDl3v6hp;N$2&Sh$bD7OH05u__T3~4Ic znQia4wl_C7*eF#^2oPozsTZNpzO)!-#)D&*1xgqz_YFy4YZanswv)t2QO3{B5%H&2ZBQs!dXmA&TM-lSSgA61*M;${h36nT7N4>*Anpuw6q2r9MZ8{HUmS4*{%6HoT z9U7BWy0o1ld6yIJFZOHK4$UG#9%7{ws;j&d-!#kjAvg)ud(sP~X{)J&sHnVZal}pS zq~O>-rS}Z8C5o+!#Be1HR%rpWC>Y92aSpn#!a}0XXmGuh8{0UvSq?EM-bJb{sp{9t z98b7!Z2PC5A3gwoZM$+^du_%zYbLO-Srz~-K390K-M3r|u1D;L%4bfV^(mh*7~HUY z>7OA=9X{~Q#w+!nW*t?nDja~aO$ifWy1%MCkkR@~db-EsD5?)6` z|6C8iG0Oc>7gRPLI}fw)ob;LO&%5@nm9r>5A~Vb4otZS_F~>lrwe~pk=6B@DA9?7G zeCGAla3ITmqxV#Xp*a=(+tP7n{e!{xXiqiRrfvauD|$&G*UXT65>je3;jl>4c7ASf@DU` z8_f9?5t!bU`B##zKW3HFFV?K(>8!yrHZ>QVa!z>9E?6_5I%zc#J=I-|a;3d}JeGds z7+X_zA3d$ZWi<7puV39cWLvXfa;=?pJXeu6Mt=hTGoAi1iBTok{?+ugF>L)J`xF10 zbo!qrF#=YGLSJSvf2Gw6RgJH-iu^U^04*nLH9HtUm&G?*YfNQ;UQZ*GS_X{9GfZu2 z6wl+8ck*ZY^g6mGl&i~F32Qdyg&Ig2>A%u+qaN!&c3>?w915WLKs4E9CpXLhkz+4Z zVPrpb-eWY;L>xNu6E)^}M|mGQbQp_SvdRdKGkkAjUk&_?@0Kwsqly|7Z%hCWZ1s6E zPwghoEf!kkK+2t}VO7pgd}N*$_-PlORZ4HQE# zM<01Wu@`8pK%7Nag#ZJv!eKI!z)W4 zQBO;tE)swI87(Gtq$^#heGMa>BkPf)OLinVCpt$F#vpdAMD+=g;E&tNvBnsPQfHNF z-=J8$MfQR7E|9a~2Z-oe0~|bz2f(b%1*#!$KU04E3Wvs%>D6Ic0X;pfaX{Y?yxaS3!LFBa5X5M6 zK@9H@nV!N7hy~AdTUm$`)!o>sO!7>M>haE!@jg;Y<*Lk53dt@SATZUa=4k+2KUhkR z7-m+Hk4F$PCPW34@GEfyCrZjwYVL5z`8PWD$S+craqQ(~hbs9SU{#f}Y!rKrMWwba z&4;!&bPc!(*0Tx)sP#zdGrvm@-f7VHpgc!Ah4 z8+4h>|J0N4*lvvzd91*`-jCw4dNPhj;GW~2tTY3zj~o{vcGP!T?m*5&DizfSHa z7bsLU^25Bbcoy1VKN2F{OGJ$B)zhxAV~OeFo^hL26V$^8&=EuzqR)xe42Cd2OFvgn zhYv<3&`orY!m5%3<~yKK(^du*gmw%wG>WSLHgBdVNCRKyYqfw~sJ6Su2*Dk3s9!Bp zrQe@Zp*FRz<&eVB=~kw%90-Z;m(&ESJzT8A$3wg~bZhw9r1nOFABGIXV~w{bXs|u* ztbjcUlOy$RF%Y7w$p_?FBaP)Yz}h;shVBTz{7z^Kcdr34h^y8K`z$d2XFRc4 zC1T#HRN$-DaF$;4ZuSw4wkg{f1MQ+QK7eK_R13?(x7i7ErvhPThLh2$(ME3aAVYMP z`Xq+HFx-~V`a=A|HWy}ztl~|wND{^gT5ertZqj;M1XkhlZ@Swu=)a7aa<2BGA^pit zMa?E$h2OzG#^t;4b5}K~GvG^7p33aQ&B$k%+C3hL>ZwR`nWJ2o%S^^Tb-`@ViBl&w58=(7C64@Ug6Pz?vdJ zi7^jk$%Xp!A?y-IR<#@P!OKs-mJ45@tos`8)I%+Aw-NFbBaYP)98RA@wcoiWxw3YX z^p`kwGWY=LXlkgEK*X;Gza0cjk2)!H!RqqJInunVKnzDaTNXzp`xKp04*Pag8@-N^ za7X|8y9#-cg z$H_0S&HwSy@*bQmcEm@6w?Q$*Je?^p6Ih3*>1Y`(d^lW-yJ(1z{p2`eJ&A9^!b0&6 zDY|%RZ@;>%pQdni|FWoQ)x)3;szdpn8B3*Q=o)jv8aLN%Xi`|Oy78?g= z&=%w#V^D}Ki7-gf-h#mJIj>kD4D5O{cZ}-S#Aw|fXf z2XoC%LZna*UBnUE$cUv0O?vqdh6s+Z5{xJ-Y(gag2=={7Lv5wSUpj_x^A_TJCa2s6 zC+m2Y+gD-j?GiF``bZ)~dV2@GRGNe}2J}dc@giY*50oaoEC-HL0!w`kc4-j^2EOG54o z+SfnT4SpA(&``YMp_$Dj2{Sb^29)N?7|DBb3UE_btQ9 z`M%!b@=lz74rnHnX6kAXK-&^q&{dO2C_e9 z2^+TT)GQDJE0j&zGAL=>Obv<&N)cU6sS{dmG?n;7^fO96Z7=E&p&@x<0v5`ym|Zu8 zKXgGM4MSmw3YWLWLWs?=hImeFwH+CX1@~7yS1KqDS2MxFRWqJXtLUVFlXX;8^n=b9 z8r*-&$xsyY>eKGup7+h-Ub_aZ=mYhltu#Kn%gb3#+Lnm)F6q^#hFk5!g3_?dkLN4B zOw^t|(B!LHPwxn;v5uA>(_#-PxI+Zz-#g@;yP82;TRPc@+M#F~zK)ySk$idcFj&|+ zLe(yfWEr*|Ltk1Vy|cWpZ-9T3Q`uo{%DZ8 z_1nlUnnqGKlQq9VA_M)nAV|?hR&!3IjE@s(#}fbTA@Uu=gGI`WAOt<&;>GoD6U$BZ zwfGdqQLf3@eScMFT&Lq#|w*8ndu!$&7uwaZRwnUe3qC z6m5&NNc(fd$BsFVKOAoM5;@-XEGhk#7cA#?tq0V#KD$r9(<`@n0$c?b&9+bE5ln(t z5#P;Fz%;|C2$~rlrs(*nHy5~rAtzuMJ%eb9s$5S=+Q@E7rGkyfsv<9pA}fq%a-MRD zxRBRdgua``BZvzyBCm2FY@0P088RYtum(@Bc7(ohBxT8kuY#KEhg}kQJ(6Lc7;L?x zvUd6KIH6rbaAp==i5=7*Z3MYi$nw&dB7U6UTj5O5dITL(pRKFEzA!qok4p6T=+F(7)%53b~_{G|a zK6kgfF_5CY+K+^b&s$z*dwK09T4I`NpS=FfAnFeaq-Uc2@xC}*v|mlezeB-aev$%z z92yP(h=~4bFd7vl{-A(cqgy{dfd#oWWOD+S-vv0x5h)GkUKv@#Inn$_{xEayxzCm8 zt-*yOq~FrY%EaD0%hp7T(V&d7LkZ)L7j4GFAolOXPEoE?kO=L{W>7Mg(ZiD9R^j6BE?b5YHS$l^(HqzWnqC+YH}v-A;B!ZQ>oNH(PLi zsTpSyK&B;3PCgDlOdgy9S9EWAzcdZSysa-DICm0``o#|DQXMv`pQjF{3HB2Ue#76h zfJ72+IAq40ivxnmKow;%Ypm<2=@7(KXJkS@aO`EV3}MH1E5!8Fpt~FV))SZl{y<0! zpJhqz%*h?q(GL8*;du{L4(N>>8b?f*%Zr!$!5#DXgEfsP%4j&`QU6e`9i!B*(*&es zPKy`jot?5bztwK;wG2^??=^fA@r%`G9GFNPEYRR?4({2)*Z~KTgU};#qvO|u&2mqg z<%(LF$OB~{)pji+R6^X8VPBafJQ zkE|C$OJfwD>yNINX^kHh7r|n989V@m)8!t=@fJ6s5M-Q*fjJ94aqnY+80_6sk*=39 z^=eN+9r{rwE(fVCJSo%f(w_Eo3O$D-baa*QqiRAs3=z5+D~Mxa%(0H}D(#VC(@SIb zDnDc5#RttZ&9a`OX$;~coxz8<>H$MNq3@;?C6AyXm|`~q10mn-YPBMJTm zFd;_+5qlda+y8>t+T*HZF*WyRcn#uQb{mkQ<%^%PqTUPE7ElY zod8g~P+t-V?72Klwf97nzF)>9)QNWE6%XPjm2xrj#By*_R$T9~P@|7ms?Te4;@<9Q zyid~!MV<3yzWfqL+kI#%P1flWg$UQP`4l)Aqr14{Q;F}=f>{A~a|)sci~R0mRgnwV zrB##-IWKfj(U$FrT1!UCxh4W@G6_KwNQ5MWm%bojw{yr4478O?^MZ^`j|IRI5ZbV1 z*T(?tYCwHSPdIO(C&UQE0xeAhq-1Qbgm4gK1AGuZ)tW=0>xt#Q8zF~z8;gy?W;rEM zDFciL^1ocmB|(L`btRje8;;d4ILh>Sv*a74#0IHWGlJbAm_i&cdJG|G0KN(5wX`n4 zavXkdi`{hLL?>8}h3;VWw`Ln9(AiQ4rWlrFj(;+R1@Uvo7^K|Gl{Z2jE3d|9aNf

hk#YyOMLorm{boDycyy5@e2%Z%?t(7GdcVxX z0`dc?H_FqP!jYyL!f12U;pi&eY;pV^G47w!P)Rp*Ih>rhOHaMe^M=Qn zS-J(oEp*1>b}fC*Ik*#(8*#F!D1O?Nvo(7@nQ79^eSypa^tfH~qDJ|J?qdzMk-@b* z<6(B6UP9M<%+Rza-8lU8KIXU~eYza&Am?Ggg06;xjm+p-o`-jtSYcKf=x{%=jJ5>* zp;+{+0DlxDB5HGxf9q%epk;u7383zW*2@$2jv?vy-pV$wS zr)R_$3qDE;Wi87+kkDEpD#h2}(cbG3O3)kp&d52-mIgX681aMh+G#NeGXn7h;nrW} zhi7Nr`Q)Q4x=)fpV*xn01&lGYoFbOYI(&1eSaTp)p*%vzXmXvQOte*(;}S*&ye#Y^ zplcd2e8gHbAu;;PLFEFDlDvQ+UzTz%u0gN=PA+?M$pFf46C<%LDaj#hw$Y1t_d9?! zJ=M^|DwVnV!6PB+3=X0EzHJZOFUKznIUGP{eJF!erBqs zTX_!%q?BB|6r<6?$L=7^K0je|C86pdSdTLmUW*;ywB)|FC#+ND9Auf6nfS!;?=zV? zL7UiQY{FdHQ1+Aoq^Ui{2jmlPV(4?25*TyhB{r;R+?Ug{qrYyA#8c0v0YgGk$C4$I z1sNxqDz2LNb^X^jdMf?x5{pDI3*e{p^PoM%2KHPR##l$VBIVrJhMMOOo_s2V4_S4h zA=~>3_uV)i$+(ll87V!*a<<@<6_RZUjthBdni^kavb+EL^skDzPmAOWvt3^tC$j$q zv$A>)4le(!&x1<;r4)Yg2+ps#I;noL+NwUWDhZRk61xISZ82m=>JMxS$m{>fpJZ z%{M=Cp?8&FH-sT0jIt2?CW3-hr_GsUT9tBEDR#~t8(er z9Dvk`ad116+N_;o+sck?*dt8ETq2Nm5aO6t4Kq%OwXI=IDwSa#Q z#Nd0aR2Pz~Gp6XX%nyA^-EKm=YtqNB#Y&d`ns9!pp#}-r6=qZW+1U?uVxhw2gCqF92mem+X1&jbmMYozS%a;s zR`7|)zh|h^$*jb)-t_70WQ#p5?8M&ozApY?;3@Oi zHaH9Hc_y;WxJ_uvZ~%^)p6~S@v*&(&ilh)w<9Ey5`Wut(PnG89ImgufLfY0>cKq@G zg|z>k9v!|~Zm#ie{%7JR{5v__U|6(ZFm{D+0>zr_Y!Dt7B}&9GUm6w1*DWyAf|P*Ttj*A*?YV0igJr*0O`Y_ul%Xm^SB_sSmSqeErST z!8gtEFjk4S(OIvD;M`YhmC`q|fAZsm?t!?gX7vL9tYSjh{j;bGqbnRY=n4{(n_~G4 z1f=v=e(XdM&#J;!4FSqCQsSEd7ej!uR^+Z3wf_29{^(E6QBS-C1i_Dtzh<=

iuJ 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 literal 0 HcmV?d00001 diff --git a/lib/devinsy-utils-0.2.4.jar b/lib/devinsy-utils-0.2.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..802aefad9b1a32631f0c60f535936cb0e73ddd81 GIT binary patch literal 84520 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

|&32LzhpHi%=ka#O$+qJ)#}3EI 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�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 Gh4_D$_EI_k literal 0 HcmV?d00001 diff --git a/src/fr/devinsy/xidyn/presenters/DomPresenter.java b/src/fr/devinsy/xidyn/presenters/DomPresenter.java index e315d2f..85e4ea1 100644 --- a/src/fr/devinsy/xidyn/presenters/DomPresenter.java +++ b/src/fr/devinsy/xidyn/presenters/DomPresenter.java @@ -116,6 +116,27 @@ public class DomPresenter implements Presenter return (result); } + /** + * {@inheritDoc} + */ + @Override + public boolean isAvailable() + { + boolean result; + + if (this.dom == null) + { + result = false; + } + else + { + result = true; + } + + // + return result; + } + /** * {@inheritDoc} */ @@ -153,6 +174,7 @@ public class DomPresenter implements Presenter * * @throws Exception */ + @Override public void update() throws Exception { diff --git a/src/fr/devinsy/xidyn/presenters/FilePresenter.java b/src/fr/devinsy/xidyn/presenters/FilePresenter.java index be6e421..93136ee 100644 --- a/src/fr/devinsy/xidyn/presenters/FilePresenter.java +++ b/src/fr/devinsy/xidyn/presenters/FilePresenter.java @@ -112,6 +112,27 @@ public class FilePresenter extends StringPresenter return (result); } + /** + * {@inheritDoc} + */ + @Override + public boolean isAvailable() + { + boolean result; + + if ((this.source == null) || (!this.source.exists())) + { + result = false; + } + else + { + result = true; + } + + // + return result; + } + /** * {@inheritDoc} */ @@ -197,6 +218,7 @@ public class FilePresenter extends StringPresenter /** * @throws Exception */ + @Override public void update() throws Exception { // diff --git a/src/fr/devinsy/xidyn/presenters/GenericPresenter.java b/src/fr/devinsy/xidyn/presenters/GenericPresenter.java new file mode 100644 index 0000000..1d65b8a --- /dev/null +++ b/src/fr/devinsy/xidyn/presenters/GenericPresenter.java @@ -0,0 +1,203 @@ +package fr.devinsy.xidyn.presenters; + +import java.io.File; +import java.net.URL; + +import fr.devinsy.xidyn.data.TagDataManager; + +/** + * + */ +public class GenericPresenter implements Presenter +{ + private static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(GenericPresenter.class); + private Presenter presenter; + + /** + * + */ + public GenericPresenter(final File source) + { + if (source == null) + { + throw new NullPointerException("source is null"); + } + else + { + this.presenter = PresenterFactory.get(source); + } + } + + /** + * + */ + public GenericPresenter(final String source) + { + if (source == null) + { + throw new NullPointerException("source is null"); + } + else + { + this.presenter = PresenterFactory.get(source); + } + } + + /** + * + */ + public GenericPresenter(final URL source) + { + if (source == null) + { + throw new NullPointerException("source is null"); + } + else + { + this.presenter = PresenterFactory.get(source); + } + } + + /** + * + */ + @Override + public StringBuffer dynamize() throws Exception + { + StringBuffer result; + + result = this.presenter.dynamize(); + + // + return result; + } + + /** + * + */ + @Override + public StringBuffer dynamize(final TagDataManager datas) throws Exception + { + StringBuffer result; + + result = this.presenter.dynamize(datas); + + // + return result; + } + + /** + * + */ + @Override + public Object getSource() + { + Object result; + + result = this.presenter.getSource(); + + // + return result; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean isAvailable() + { + boolean result; + + result = this.presenter.isAvailable(); + + // + return result; + } + + /** + * + */ + @Override + public boolean isOutdated() throws Exception + { + boolean result; + + result = this.presenter.isOutdated(); + + // + return result; + } + + /** + * + * @param source + */ + public void setSource(final File source) + { + if (source == null) + { + throw new NullPointerException("source is null"); + } + else + { + this.presenter = PresenterFactory.get(source); + } + } + + /** + * + * @param source + */ + public void setSource(final String source) + { + if (source == null) + { + throw new NullPointerException("source is null"); + } + else + { + this.presenter = PresenterFactory.get(source); + } + } + + /** + * + * @param source + */ + public void setSource(final URL source) + { + if (source == null) + { + throw new NullPointerException("source is null"); + } + else + { + this.presenter = PresenterFactory.get(source); + } + } + + /** + * + */ + public String toString(final String language) throws Exception + { + String result; + + result = this.presenter.toString(); + + // + return result; + } + + /** + * + */ + @Override + public void update() throws Exception + { + this.presenter.update(); + + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/xidyn/presenters/Presenter.java b/src/fr/devinsy/xidyn/presenters/Presenter.java index 109a514..7306ab1 100644 --- a/src/fr/devinsy/xidyn/presenters/Presenter.java +++ b/src/fr/devinsy/xidyn/presenters/Presenter.java @@ -10,7 +10,8 @@ import fr.devinsy.xidyn.data.TagDataManager; *

  • be aware to avoid copy action (performance) * */ -public interface Presenter { +public interface Presenter +{ /** * @@ -34,9 +35,21 @@ public interface Presenter { */ public Object getSource(); + /** + * This method check if the source exists and it is readable. + * + * @return + */ + public boolean isAvailable(); + /** * * @return */ public boolean isOutdated() throws Exception; + + /** + * + */ + public void update() throws Exception; } diff --git a/src/fr/devinsy/xidyn/presenters/PresenterFactory.java b/src/fr/devinsy/xidyn/presenters/PresenterFactory.java new file mode 100644 index 0000000..0aa2ffc --- /dev/null +++ b/src/fr/devinsy/xidyn/presenters/PresenterFactory.java @@ -0,0 +1,100 @@ +package fr.devinsy.xidyn.presenters; + +import java.io.File; +import java.net.URL; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + */ +public class PresenterFactory +{ + static private Logger logger = LoggerFactory.getLogger(PresenterFactory.class); + + /** + * + * @param source + * @return + */ + public static Presenter get(final File source) + { + Presenter result; + + if (source == null) + { + result = null; + } + else + { + result = new FilePresenter(source); + } + + // + return result; + } + + /** + * + * @param source + * @return + */ + public static Presenter get(final String source) + { + Presenter result; + + if (source == null) + { + result = null; + } + else if (source.startsWith("file://")) + { + result = new FilePresenter(source); + } + else if (source.matches(".+://.+")) + { + result = new URLPresenter(source); + } + else if (source.startsWith("/")) + { + if (new File(source).exists()) + { + result = new FilePresenter(source); + } + else + { + result = new URLPresenter(source); + } + } + else + { + result = new StringPresenter(source); + } + + // + return result; + } + + /** + * + * @param source + * @return + */ + public static Presenter get(final URL source) + { + Presenter result; + + if (source == null) + { + result = null; + } + else + { + result = new URLPresenter(source); + } + + // + return result; + } +} diff --git a/src/fr/devinsy/xidyn/presenters/StringPresenter.java b/src/fr/devinsy/xidyn/presenters/StringPresenter.java index 8b744ea..2497455 100644 --- a/src/fr/devinsy/xidyn/presenters/StringPresenter.java +++ b/src/fr/devinsy/xidyn/presenters/StringPresenter.java @@ -154,6 +154,27 @@ public class StringPresenter implements Presenter return (result); } + /** + * {@inheritDoc} + */ + @Override + public boolean isAvailable() + { + boolean result; + + if (this.source == null) + { + result = false; + } + else + { + result = true; + } + + // + return result; + } + /** * {@inheritDoc} */ @@ -185,6 +206,15 @@ public class StringPresenter implements Presenter this.dom = null; } + /** + * + */ + @Override + public void update() throws Exception + { + // Nothing to do. + } + /** * Dynamize a string with HTML in. */ diff --git a/src/fr/devinsy/xidyn/presenters/TranslatorPresenter.java b/src/fr/devinsy/xidyn/presenters/TranslatorPresenter.java new file mode 100644 index 0000000..725cfb1 --- /dev/null +++ b/src/fr/devinsy/xidyn/presenters/TranslatorPresenter.java @@ -0,0 +1,194 @@ +package fr.devinsy.xidyn.presenters; + +import java.util.HashMap; + +import fr.devinsy.util.FileTools; +import fr.devinsy.xidyn.data.TagDataManager; + +/** + * + */ +public class TranslatorPresenter implements Presenter +{ + private static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TranslatorPresenter.class); + private String defaultSource; + private HashMap presenters; + + /** + * + */ + public TranslatorPresenter(final String defaultSource) + { + + if (defaultSource == null) + { + throw new NullPointerException("defaultSource is null"); + } + else + { + this.defaultSource = defaultSource; + this.presenters = new HashMap(); + } + } + + /** + * + */ + @Override + public StringBuffer dynamize() throws Exception + { + StringBuffer result; + + Presenter presenter = getPresenter(null); + if (presenter == null) + { + result = null; + } + else + { + result = presenter.dynamize(); + } + + // + return result; + } + + /** + * + */ + @Override + public StringBuffer dynamize(final TagDataManager datas) throws Exception + { + StringBuffer result; + + Presenter presenter = getPresenter(null); + if (presenter == null) + { + result = null; + } + else + { + result = presenter.dynamize(datas); + } + + // + return result; + } + + /** + * + */ + public Presenter getPresenter(final String language) throws Exception + { + Presenter result; + + // + result = this.presenters.get(language); + + // + if (result == null) + { + // + if (language == null) + { + // + result = PresenterFactory.get(this.defaultSource); + + if (result.isAvailable()) + { + this.presenters.put(language, result); + } + else + { + throw new Exception("Undefined default language file."); + } + } + else + { + String adaptedSource = FileTools.addBeforeExtension(defaultSource, "-" + language); + result = PresenterFactory.get(adaptedSource); + + if (result.isAvailable()) + { + this.presenters.put(language, result); + } + else + { + result = getPresenter(null); + } + } + } + + // + return result; + } + + /** + * + */ + @Override + public Object getSource() + { + String result; + + result = this.defaultSource; + + // + return result; + } + + @Override + public boolean isAvailable() + { + boolean result; + + try + { + result = getPresenter(null).isAvailable(); + } + catch (Exception exception) + { + result = false; + } + + // + return result; + } + + /** + * + */ + @Override + public boolean isOutdated() throws Exception + { + return false; + } + + /** + * + */ + public String toString(final String language) throws Exception + { + String result; + + Presenter presenter = getPresenter(language); + if (presenter == null) + { + result = null; + } + else + { + result = presenter.toString(); + } + + // + return result; + } + + @Override + public void update() throws Exception + { + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/xidyn/presenters/URLPresenter.java b/src/fr/devinsy/xidyn/presenters/URLPresenter.java index 105ff7d..db76b31 100644 --- a/src/fr/devinsy/xidyn/presenters/URLPresenter.java +++ b/src/fr/devinsy/xidyn/presenters/URLPresenter.java @@ -94,14 +94,7 @@ public class URLPresenter extends StringPresenter { String result; - if (this.source == null) - { - result = null; - } - else - { - result = this.source.toString(); - } + result = this.sourcePathname; // return (result); @@ -120,6 +113,55 @@ public class URLPresenter extends StringPresenter return (result); } + /** + * {@inheritDoc} + */ + @Override + public boolean isAvailable() + { + boolean result; + + if (this.source == null) + { + result = false; + } + else if (sourcePathname.startsWith("/")) + { + /* + * In case of Jar resources, if resource does not exist then + * this.source is null. So, if we are here in the code then + * this.source is not null and so resource is available. + */ + result = true; + } + else + { + /* + * The source is an URL with protocol. Open a stream is the only way to test if the resource is available. + */ + try + { + this.source.openStream(); + result = true; + } + catch (final IOException exception) + { + /* + * On URL.openStream: + *
      + *
    • If host does not exist then a java.net.UnknownHostException is throwed.
    • + *
    • If host exists but not the file does not exist then a java.io.FileNotFoundException is throwed.
    • + *
    + * These exceptions are IOException. + */ + result = false; + } + } + + // + return result; + } + /** * {@inheritDoc} * @@ -220,7 +262,7 @@ public class URLPresenter extends StringPresenter // result = super.getSource(); } - catch (final IOException exception) + catch (final Exception exception) { result = null; } @@ -232,9 +274,10 @@ public class URLPresenter extends StringPresenter /** * No need to be synchronized. * - * @throws IOException + * @throws Exception */ - public void update() throws IOException + @Override + public void update() throws Exception { // if (this.source == null) @@ -245,11 +288,27 @@ public class URLPresenter extends StringPresenter } else { - long currentSourceTime = this.source.openConnection().getLastModified(); - if ((super.getSource() == null) || (this.sourceTime != currentSourceTime)) + try { - super.setSource(XidynUtils.load(this.source)); - this.sourceTime = currentSourceTime; + long currentSourceTime = this.source.openConnection().getLastModified(); + if ((super.getSource() == null) || (this.sourceTime != currentSourceTime)) + { + super.setSource(XidynUtils.load(this.source)); + this.sourceTime = currentSourceTime; + } + } + catch (final IOException exception) + { + /* On URL.openStream: + *
      + *
    • If host does not exist then a java.net.UnknownHostException is throwed.
    • + *
    • If host exists but not the file does not exist then a java.io.FileNotFoundException is throwed.
    • + *
    + * These exceptions are IOException. + */ + String errorMessage = "source file defined but not readable (" + this.source.toString() + ")"; + logger.error(errorMessage); + throw new Exception(errorMessage); } } }