From ff46c66f50d0162cdd810554a4d67885b18309c4 Mon Sep 17 00:00:00 2001 From: administrateur Date: Thu, 25 Jan 2007 23:53:43 +0100 Subject: [PATCH] Move of TagsData in TagsDataByIndex and Split of TagsDataById in TagsData and TagsDataById. --- build/classes/xid/Presenter.class | Bin 18333 -> 18347 bytes build/classes/xid/TagsData.class | Bin 361 -> 3657 bytes build_test/classes/xid/test/Test.class | Bin 5627 -> 5615 bytes dist/test.jar | Bin 29032 -> 29029 bytes dist/xid.jar | Bin 40290 -> 42615 bytes src/xid/Presenter.java | 6 +- src/xid/TagsData.java | 207 ++++++++++++++++++++++++- src/xid/TagsDataById.java | 195 +---------------------- test/xid/test/Test.java | 26 ++-- test/xid/test/Test.java~ | 122 ++++----------- 10 files changed, 258 insertions(+), 298 deletions(-) diff --git a/build/classes/xid/Presenter.class b/build/classes/xid/Presenter.class index dfcf48fc206359c84c586dea7a368b2411a08e25..5eff7e24ad7d84c314ec9a66c6ea7425a625cd91 100644 GIT binary patch delta 1545 zcmZvbd2kL^6vfZE_eB$l5ZPoZ)}(|iNGc=*K}amIBvng7kSeur4I-bdp-oBnsuHS7 z?R$KdsHL=)4r;4dVx1akb*e3cQHs9l-~H#k`|i7Q@9&&9Z)G936mn-nPk;aJIU|Qh zrDctn)G2FnR^qhevBR@-T+KaSd-(bO-%VTpbph2P5W^^RV+49L#`R~@+T!R04|YX0 zrl1D9!I#}phdoiBsR&^oM6;hQ&A>orB9mEok3&(wY;5I7?BHmWaUu?IEDmuzj&lNj zMV0@j=Cz2^Op7^eE1WBSZ?XAB9Rs7!W(#(H!bBY4C5V);$4j6 zJxpXJrtm&y^LG^SFBJ13*77lS@u?+!j&i=hRldR`&0 zVKb@8R^rEY4hdkA1hSU|F+<+uNU6gKQkOHO0T)RKH%VibN*H%bI1fq`&q@p4mT3Mg zE%`v=_(bA`(ndTaLA)eUYDp)FlFkwja(q#@ZWG;$iK8j@lzLrn0 zQ9ebfEW|fbh-0!CXQUW+WjQKk75K#g?*%39^?d zvX6bFjOi(I*xGP}*>cp{@ExbgG3LrC&XdzzE@!w>E^?h*;x;Mge!0w}a>ZJ5jhCf@ zx8w#Zwl8_+IPbgf_%E4aFsGgd5rzx3wvL z(Fi=$D7tF|y|o1cG@1=GhD|gc6|VfaQaVy#w1)-h32#k>ul7PM?Q4Php`i{yxMm<) z2P000AWes1pk`y3j=&hr!+0Hq2|5}d>lhU2SQP6xEVucUIssqmBnvkghja>#>r|Yy z`BR#M(>fh@bq0RZTs+d5cq}^GS=Q!x@FMu>=LpmyJAMh8sS~mK8QSSmbkGv#xwhYi zt%I9xKy}?@D>kEnZn1D%5u@9YpgYi2ccPb;VzBOV?n`*p<1j>zSXoCAq9@Q?Puj{e zh}W~|r00>O7m%!%&|Ax`tSjiRS20v8Fj{Y5n%=}ry@gr!oUeDRyt__m|99s{)~Ls* zqEBqsXZF>eqmI5nBYlY|eT6h57-$rk#vR$l1MeGej5F0S(fHYpFW@k>FwX=#+jqFs zI}B=?qN)jpw~2(0iGrVLfdCVYAQOZ7=52(UScIF_h%|9%ZsHMR5|CipA=z}WlM?Zc z>4^R&34=^B2Adwv?8G(x1K?o>!PjIW*bG64jhmQkXYG#ZZsXx@Cb_0|tRjv)8_uyK z=c2Cp$d1TIdmAU20;HIQ=w%9#ZWbfUIPrm5iVw{)%~pDvZS*%gSl^T~&bT}Hw;e65gY5n66^MjRt b%5t2xlFwP#3wX<1M3^Z@thwf_*`?rLs4R4L delta 1531 zcmY+DdsGi*7{|Zg=XpyhB?^s9h@(WQt=ubCM98#*$P#nQCCsR{A6q)J7TJ%9a~j9x z%$@vb?zXuMbH8@VnB}rL2h(scX7Aa5`|Ew)=X}ree7@iJyqgxWY!SD&^78TNKYPNM zjzcoX&FGyuGt(98_1d$Z_y1b`0@gLE7lvqtqaVYN%1*9VVa>#m08b{O9{Zp^`=TL} z(VYDe%oMcdAVe|EO4E_f5y;>ue8Bfn#4K#)IBerY?B+D=V>S+O3XXCrPICs%aTcmM z8@HK@`^>`==HnS16c*BrpRx`M=*#(R%mr-GoJ9;_F*|S}V_Cw1_Dtha=5m>pE_YUR zc;)7TFDqQTJ64M0jHNvXKb}V*FIu`QNMI$BScRdiwv^Y9#p{^Jo0!TPOy@0p$h(-w zdnn-pl=30gvKBk|*pfcOWj;qGU*cE3My&`{lO&R|ZP543-obE~zqF2BQkVN%+ILFzSU{2D~KG zRUG}UI3~eEvf(Y0QD1TpC^Hcxv(Qy?5ij{jleriv^H3u5Q7VO4BcEfve1UQ)!d@xH z5m|&&@-=Ft6nCTy4`d~t$|_P;+Zfi`2-dNgtY?^PVh1Vb+u~vm*~w(t#lcd+v}DrmMa>&N;J?F@e%$MUVkP}=XCs`)vxK1u`i(KR$xx^pjvW?^_uSg}YOBL@(HUE$r zK9XC`4KdYj53RFWXK{2_*OAy%I$pw4Uc*m;AXS8@L8!W;vw9#&Juy)0VuX5OjCvza zeX&^muv{Bpl?GtF)os-`P@zq+PlIq+o8y=Uy1+lXl0j2^lLeRL}Z={Ahg?are;{z=&n(Sz33A+**bh}5H2c@kaq6ng6!BSb*{M(Mt35+= zeU7&JH#+J|3^72uAu^0R#+o`9Z@e+p)WdYsz)pM)hiQZY)6_X2{!(gNsA-3~CKNuV zJ^V~K{7nQJnMeehP6#$p2r+M=y@^2w6N^aG8PTR2dYJC$YkJyEad^+fW0>iU5he+v zOh4z0gw+8<;c14Wp&5Z7lY!Q@4mDZM&|Yb7Q{Z88Tm`+{#gT8zxpw6|ylFnOD+&;2 z>qN5v$)*T{Ofk~TB4nDym}H#z$Sg&nS%y-x9B0f5oHu2-ZC2uUvl=hWTD&$J>18%C zz-(c#*~TuWoOxykKQX&lVZP%Yv-iKRoeOWYhd;xeo{3L`4@1l`YyY_AIAJZHwy R#+*Yta}hD-s(Z4x*Zc+dM diff --git a/build/classes/xid/TagsData.class b/build/classes/xid/TagsData.class index 16fcd7f9a91d4e757b949c3cea2912482895a554..d065714def7395887df680c08b03750d22f8646d 100644 GIT binary patch literal 3657 zcmb_d-*XdH6#ll^?6&E)rD+ljR;36u^amBh0&PXwVxd}!QlL~SuxXYOCTy7|LCTwB z_0iEsN1q%=9u*(L45;IagX5Ee*P>se>@jGZlTB|fvVWEala zt9hCGi+bs5zNn#n=2kv8bjDsT9j(<#mqYtwGd zxkc)xo0SmmIM4_nOtBu)SXwERue%zW1<$h}UJsTdQdiL_O_!WiyOdvX>5IMWteH5k zq4SZ|lC!*~!J2kmXLYh*7mLDetO2)r3=y<5lxkF}+*~A_m$-M6VJs^7POi8m$7MBo z8xaVVPq56TYD|RAYsfT+oNiz%Lq|5ZwQ;aTy5l9bTee(c2OMsYD;yYJ5ed`o~b3&cX#OvdL;srr+fj-o!-3%vo>18uG*=O7;Zz}H@qV>?5?%)RQ8&)RO02Z(MbLhx8Epp`=JKg z!@C&rnN1!j zseH0lPW5W!dKjW1tvqX&>el<(bWVX8K4C+H45i(Un`-Am|$F*U#U5UzzQva3lE*y$7ag9J?G zTJT|v5k0Lx#5SQ|kb+r5L4B*Bc{rMk4jW0MTfh7%wx;!@5zuW}H?%u{|C!diD~M6f z?BE9JKKde-#c%)}?EP*W!frPEAYQ~_yoBR?p2Q^PF{Ol@AhCViwTrt9p%_S7@FmGw zFTXZ1rb&s5F#9QFu!ph+F@QdPjVi(Yo?vZ1zce%3dLTHOj{d7)eiOkIJ8ULRUvM;O zK0qtY(JE+JHUpKrNVPgTO$$pOBoTbuvGQU6# zi}dCqy;-C;S)50X_s11nXnppJ@9Hh@M_)nO1=)TB_hn!qg>O8 zdt12{CE~nt%^=nQXM0%%4MVEcrDHGAX`RoGs(-VC0~NGyG=ID5zqd$ejiPQVdVO9< zK&m4k)xlGusHAq%~WCchT+pUNB z4E_%D9C%10K2n}@Ia8FyN_I-^SjG_8`|O<$DCz-ncAeaVChHo`bl!Rkuj zs1IAFG1A+ege6{lgbkPGu@3=%M29}+mGX%KKH>!hz@350&Y;Mhevz46QP7#8Sy7M! zF~-B@T|ot3d0crc!Yk++AeltH)1Oho=gfAeMtnTr5Dz%SaYQ){#Cfcx(M;AyJQwj} zsEWVEFCsqSd#(;!*PsvxVShpHchQBfYV;=p>_mW_2=pfu3%OhqiiI3|t49A(U;jE; z$&pD_OJJl8I*``o=!baRr;A@BiEk7SxuO^u@JIzbQUQ-tP=}OaB!?%Z7)6<@O))aa zW&FP@lB}=D_r!n5iu~}uDl)N|iiEI#qMtvrBELMQicDZr6$$b9l`j6qiv0eVE7HWj VBKf~PhW&iTSfS_Gt^1Cq{{h^wn}h%W delta 240 zcmX>p^O8y8)W2Q(7#J7~8AP}km>C4v83frGgxDE`Cl-V|a|UOo=Ovbu7Ns&WnE7NS zmL=+!mSpDWhovT$;ha{%EB$gyP=NF|~+gW1>O%`R5_h)5bV`SigsxAg8 zXJimSH;$2kAI&@lMFu9In;02bfDU8?LZCT7l6`U@o0u^NP>c&G&%hu6low>+1hRO5 XvJ5~~TnyYmnhD4Uk-Q9iV45EQIAAh$ diff --git a/build_test/classes/xid/test/Test.class b/build_test/classes/xid/test/Test.class index 36e80eff19c0677d5bcc9c20a2c5c72ee8e7d825..1da341f40075bc7d5cc6db1a5f971d6bc3e45cff 100644 GIT binary patch delta 573 zcmY+BT};h!9L7K2?{Bv9k}Sv0h(ggcJH~}Em0AiluV>|*!>LxI^rF0W7ISjM**b@l zw?!z$nqIVN3L$i1XRY%>TxPn`h6Sx0~lz;+Mn@hekwXA1rh`oUVfM zbXSEdn5uyZ%~mF#8}MV3-V7Kh2EhIRN@PdyvCgp+1+XeXB*Hqp;!2CddB zw(^#3d|($NxcF?Xd}9y4aZ8woJc%M-rco$y6p4eqvY366La}60B5T<%xs=LI%A|mD zDWO8DI3OM>rIsr3b3{TMl}3(9E7j74NBTG}gPf4poRoKXWtdtS<&=EICqFo?P^V#> z(MZm!$BtiP2(xScG(g9j^h&Fx0ZGF!j9ps$viL_ z^qDpEn;agR9XvAmJT}D)m`a|QYMvS|&y1fz6XLmPbEzDwlUz;`T@Ly$mlAg7 zbS#93q0m+mqFgp1TULl7)(f^?*cfk&G5?n~Z=OBR_j$grK3`&g#WuJ!B4TM_c7`j- zla)8$v%}*qT9gq=)QS<||6ThvFg7Z~-sCwGoxaQh=f6KqmiakUqMQ7~KN-u7gB66c zl1NrDo+M&O#zhJVtj5h67PHoF*V!(W4WzM&bhfh|KORcRq#Q3nHc~}47uifbTWDr0 zZTM&>hfcQ9LoWU7${hB|LiWpY4oC{6 zl1`aqaZqw7mjVun#bGJqhy*w)l?0`l3aKR|*EuGw9G7-ZNEcPo%PAS)vyE&JTYNBHKXV-(L6I#=$vb& z^W4m)%PgSVEaQbq=A}vFmGRPJe7rXKyfMY}no{~qfVZZSccz+tbBXt+o)4j@(G~Mz sP$n~kSi+cU!*nr*X+$xD3CyyacsnK7NMIOZZ{x_afnodIwkmu60ugqg=>Px# diff --git a/dist/test.jar b/dist/test.jar index 9a8e9dbd290694042dbc3b6e77f0fc7aaa86ce7f..54295a7555dc76b234d220be80efe8191ad27a3c 100644 GIT binary patch delta 2661 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 delta 2657 zcmV-n3ZC`l;sNO50Sr(}0|W{H00000rU;P?DFUSku{R0^4W1-*phQXyaO!DU_)3;E?7 zS9tLQT*>i6j;lB}a9quC4ac<{KN7*N6CT%d+`w_82yzq0%^bIQaVs`*+{SS`$0qS~ z2gjWpKjyfL<8F?7IPT@RkK=w3-~sXTAjf8ohd6%1@i500j;%uc2*;xwk8xxw5xwXlFV8eY}8{h)u?3{5z>;H879;6ie(J0dOfN# zjBM1BYEvfBsv0dyYn&whMm?g$mnnuOo*kjfY}eAldbJh}nrhk%w$KknbtM!n$uOq; zw8oW6hZ2k{$yl)2G_+)_)=HxoF>)MLK+WKeDyEVaDMi>8C6+#p1a+MaQBr@(ra~PR z=Tt%?^0k|ZIK$X};p#GNZC0N?)i88pk(y2`F{+%0B5|j2Z?m2;BI*K7bW|i7s1{Lt z(6G{jKlt!R{E7TeP~&kuuv|Cd(IY(g#D_oQFAODpOJq2pM`@I(Ig?V2gp%~(ufoBV zR1&HWpW<%>PvL4A#)qO>M?imz&MgzxWnm>CXecP8R52~-&wThCe<#bSgZz=&f-*2S zkW^O%dX^a|uOLuH6PS6W(Ao0wB(F}ZX1$&?)ub6HFU@sPD%6KrQL9rKp%ImpP6?1l zMXgY>Dh6q8Sm5)8==mQElWqH60UfvAfs2|`TGT=7pZJoNLfY&UV>y4QRf(J(GxSU{ zS`%oEXVh8`{^i5JMf8$3-B5EnLluj}9f>PxT0uo3OTFNI_>ZvV#G69MFsU2koJ`;> z_}*a86y$|u^%#j=uGJsnrjUrD9ZWVB}pt5Xr8U#nJ_ z`fnPhFDh1)!}||5hq!;GpU`u%xn6os_sC(O78Zl~N+A9fLsfy<_Xyl4|2*5ee_K6W zhCnL(jbikJiQ(w(k_Ync9(V6iyI1K(l$M=aiKp5XvG~8HhgL)B&>1|DcEyNms@UJu zxY!z8YNVYMa+|)Ip)8b%hrNM7D6U!XTA>8Cf(ZrVTG$&3k_mrV7C_Xprh=wXO;&QN zp1~}q3;aZ7mSx2tmNP`dcI`t(ok_Mj1@RWhG6`>?DkndV&-us)<%>F8k@=OBt#qmFK5u3hqUELZ>6EsJ`9M(x#>m z?`bjgB%PUbM%aH+JtZCzAyXWG*0fB+DkGPvEF3bU;iRrnEyU1+y^HIKvT!CDAlgfA zmtd)E*4741LrmMw!Z5u6I=O_-%*jNyCfz|)B|$KaDj+8CQsOC2@5Siy!nZnaekhb8B~r}pX=)c#+h0=AU*xp8 z#8A_!08DI~`pFvIui6V_?|)M)U^Bqouwvj#COCvhY^<515jLZ~1l#FR>;JZ!kB#tlDozNhij6E$?We}aEv z76FGnBFC2czm>(2RsKnRnw~tYrpp{!?$8Q{Rywq*PsLLP17nh?^)NxLQm5M75e{b+ zT0PtXgASeM(CH4H@l6VvDf?$-aTGBw|Is$%_8((2BmA>%#^ax3Gu&T8OuoR{K?{Ej zIdrZ=!wx;xq2G4sygmijIkeuP#|_rNeA&Oie|#1vSZss;M4NSybYYHd@Hg75o1}|! zY=ggv*nBgK2W@7FLr-$(QinD>w8f#{>C?}X$9lF3m$9|DoLzz|*p;}7U55>9Bd&jD_u?A1 z71y#IxSs9A4eS-%#NNTpY%gwM`*17!6dT!>xJ?3XmpC>_CAdQxi#w%>xJN3(z0x$? zC(XhAQXL+U7UDsv1)HTa@UYZ|Ez&u7MC!z&(mFgQtw&bcfNj!^=#n2d6kp2d^WE<7c@il?P_@r-}87tc%kuv7XRFG&0GqFjWR!7GH{t{NZhR)*Xbkgc{i-ygO<056Ww4Zk=$^)X(ca2G(4Wjo9U9vV~nZ zr3A000009;p*T diff --git a/dist/xid.jar b/dist/xid.jar index 873386b6b4219c72c4c377930733b60e5d16471d..c7592778ec97ec8c14866c9c27996f8d4315088e 100644 GIT binary patch delta 13484 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�V#$;A~r^!_sO6n`_a8# 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 Y@Bzz}Q=nr(VL{2kK|#S~{m implements TagDataCore +public class TagsData extends TagsDataById { /** * @@ -15,4 +15,209 @@ public class TagsData extends Vector implements TagDataCore { super (); } + + + /** + * + */ + public TagData getTagData (String id) + { + TagData result; + + // Be sure that TagData is existing and get item. + result = (TagData) this.get (id); + + if (result == null) + { + this.put (id, new TagData ()); + + result = (TagData) this.get (id); + } + + + // + return (result); + } + + + /** + * + */ + public TagData getTagData (String id, int line) + { + TagData result; + + // Be sure that TagsData are existing. + TagsDataByIndex tags = (TagsDataByIndex) this.get (id); + if (tags == null) + { + this.put (id, new TagsDataByIndex ()); + + tags = (TagsDataByIndex) this.get (id); + } + + // Be sure that lines are existing. + int nbLines = tags.size (); + for (int nLine = nbLines; nLine < line + 1; nLine++) + { + tags.add (nLine, new TagData ()); + } + + // Get item. + result = (TagData) tags.elementAt (line); + + // + return (result); + } + + + /** + * + */ + public TagData getTagData (String id, int line, String column) + { + TagData result; + + // Be sure that TagsData are existing. + TagsDataByIndex tags = (TagsDataByIndex) this.get (id); + if (tags == null) + { + this.put (id, new TagsDataByIndex ()); + + tags = (TagsDataByIndex) this.get (id); + } + + // Be sure that lines are existing. + int nbLines = tags.size (); + for (int nLine = nbLines; nLine < line + 1; nLine++) + { + tags.add (nLine, new TagsDataById ()); + } + + // Get item. + TagsDataById lineData = (TagsDataById) tags.elementAt (line); + + result = (TagData) lineData.get (column); + + if (result == null) + { + lineData.put (column, new TagData ()); + + result = (TagData) lineData.get (column); + } + + // + return (result); + } + + + /** + * + */ + public void setIterationStragey (String id, TagsDataByIndex.IterationStrategy strategy) + { + TagsDataByIndex tags = (TagsDataByIndex) this.get (id); + + tags.setIterationStrategy (strategy); + } + + + + /** + * + */ + public void setContent (String id, String content) + { + TagData tag = this.getTagData (id); + + tag.setContent (content); + } + + + /** + * + */ + public void setContent (String id, int line, String content) + { + TagData tag = this.getTagData (id, line); + + tag.setContent (content); + } + + + /** + * + */ + public void setContent (String id, int line, String column, String content) + { + TagData tag = this.getTagData (id, line, column); + + tag.setContent (content); + } + + + /** + * + */ + public void setAttribute (String id, String label, String value) + { + TagData tag = this.getTagData (id); + + tag.getAttributes ().setAttribute (label, value); + } + + + /** + * + */ + public void setAttribute (String id, int line, String label, String value) + { + TagData tag = this.getTagData (id, line); + + tag.getAttributes ().setAttribute (label, value); + } + + + /** + * + */ + public void setAttribute (String id, int line, String column, String label, String value) + { + TagData tag = this.getTagData (id, line, column); + + tag.getAttributes ().setAttribute (label, value); + } + + + /** + * + */ + public void appendAttribute (String id, String label, String value) + { + TagData tag = this.getTagData (id); + + tag.getAttributes ().appendAttribute (label, value); + } + + + /** + * + */ + public void appendContent (String id, int line, String label, String value) + { + TagData tag = this.getTagData (id, line); + + tag.getAttributes ().appendAttribute (label, value); + } + + + /** + * + */ + public void appendContent (String id, int line, String column, String label, String value) + { + TagData tag = this.getTagData (id, line, column); + + tag.getAttributes ().appendAttribute (label, value); + } } diff --git a/src/xid/TagsDataById.java b/src/xid/TagsDataById.java index a763259..4af3708 100644 --- a/src/xid/TagsDataById.java +++ b/src/xid/TagsDataById.java @@ -8,7 +8,7 @@ import java.io.*; */ public class TagsDataById extends HashMap implements TagDataCore { - /** + /* * */ public TagsDataById () @@ -36,197 +36,4 @@ public class TagsDataById extends HashMap implements TagDat // return (result); } - - /* ------------------- Helpers ------------ */ - /** - * - */ - public TagData getTagData (String id) - { - TagData result; - - // Be sure that TagData is existing and get item. - result = (TagData) this.get (id); - - if (result == null) - { - this.put (id, new TagData ()); - - result = (TagData) this.get (id); - } - - - // - return (result); - } - - - /** - * - */ - public TagData getTagData (String id, int line) - { - TagData result; - - // Be sure that TagsData are existing. - TagsData tags = (TagsData) this.get (id); - if (tags == null) - { - this.put (id, new TagsData ()); - - tags = (TagsData) this.get (id); - } - - // Be sure that lines are existing. - int nbLines = tags.size (); - for (int nLine = nbLines; nLine < line + 1; nLine++) - { - tags.add (nLine, new TagData ()); - } - - // Get item. - result = (TagData) tags.elementAt (line); - - // - return (result); - } - - - /** - * - */ - public TagData getTagData (String id, int line, String column) - { - TagData result; - - // Be sure that TagsData are existing. - TagsData tags = (TagsData) this.get (id); - if (tags == null) - { - this.put (id, new TagsData ()); - - tags = (TagsData) this.get (id); - } - - // Be sure that lines are existing. - int nbLines = tags.size (); - for (int nLine = nbLines; nLine < line + 1; nLine++) - { - tags.add (nLine, new TagsDataById ()); - } - - // Get item. - TagsDataById lineData = (TagsDataById) tags.elementAt (line); - - result = (TagData) lineData.get (column); - - if (result == null) - { - lineData.put (column, new TagData ()); - - result = (TagData) lineData.get (column); - } - - // - return (result); - } - - - /** - * - */ - public void setContent (String id, String content) - { - TagData tag = this.getTagData (id); - - tag.setContent (content); - } - - - /** - * - */ - public void setContent (String id, int line, String content) - { - TagData tag = this.getTagData (id, line); - - tag.setContent (content); - } - - - /** - * - */ - public void setContent (String id, int line, String column, String content) - { - TagData tag = this.getTagData (id, line, column); - - tag.setContent (content); - } - - - /** - * - */ - public void setAttribute (String id, String label, String value) - { - TagData tag = this.getTagData (id); - - tag.getAttributes ().setAttribute (label, value); - } - - - /** - * - */ - public void setAttribute (String id, int line, String label, String value) - { - TagData tag = this.getTagData (id, line); - - tag.getAttributes ().setAttribute (label, value); - } - - - /** - * - */ - public void setAttribute (String id, int line, String column, String label, String value) - { - TagData tag = this.getTagData (id, line, column); - - tag.getAttributes ().setAttribute (label, value); - } - - - /** - * - */ - public void appendAttribute (String id, String label, String value) - { - TagData tag = this.getTagData (id); - - tag.getAttributes ().appendAttribute (label, value); - } - - - /** - * - */ - public void appendContent (String id, int line, String label, String value) - { - TagData tag = this.getTagData (id, line); - - tag.getAttributes ().appendAttribute (label, value); - } - - - /** - * - */ - public void appendContent (String id, int line, String column, String label, String value) - { - TagData tag = this.getTagData (id, line, column); - - tag.getAttributes ().appendAttribute (label, value); - } } diff --git a/test/xid/test/Test.java b/test/xid/test/Test.java index 16aba38..00fa03d 100644 --- a/test/xid/test/Test.java +++ b/test/xid/test/Test.java @@ -47,7 +47,7 @@ class Test //test (); // - TagsDataById datas; + TagsData datas; TagData tag; @@ -57,7 +57,7 @@ class Test StringBuffer errorMessage; // Populate attributes of Test 03. - datas = new TagsDataById (); + datas = new TagsData (); tag = new TagData (); tag.setContent ("Superman"); datas.put ("name", tag); @@ -66,7 +66,7 @@ class Test html = Presenter.doXid ("
a name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas = new TagsData ();"); System.out.println ("tag = new TagData ();"); System.out.println ("tag.setContent (\"Superman\");"); System.out.println ("datas.put (\"name\", tag););"); @@ -77,14 +77,14 @@ class Test // Populate attributes of Test 03. - datas = new TagsDataById (); + datas = new TagsData (); datas.setContent ("name", "Superman"); errorMessage = new StringBuffer (); html = Presenter.doXid ("
a name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas = new TagsData ();"); System.out.println ("datas.setContent (\"name\", \"Superman\");"); System.out.println ("+"); System.out.println ("
a name
"); @@ -93,7 +93,7 @@ class Test // Populate attributes of Test 03. - datas = new TagsDataById (); + datas = new TagsData (); tag = new TagData (); tag.setContent ("Spiderman"); tag.getAttributes ().appendAttribute ("style", "background: blue;"); @@ -106,7 +106,7 @@ class Test html = Presenter.doXid ("
a last name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas = new TagsData ();"); System.out.println ("tag = new TagData ();"); System.out.println ("tag.getAttributes ().setAttribute (\"class\", \"lastnameClass\");"); System.out.println ("tag.getAttributes ().appendAttribute (\"style\", \"background: blue;\");"); @@ -120,7 +120,7 @@ class Test // Populate attributes of Test 03. - datas = new TagsDataById (); + datas = new TagsData (); datas.setContent ("lastname", "Spiderman"); datas.appendAttribute ("lastname", "style", "background: blue;"); datas.appendAttribute ("lastname", "style", "foreground: red;"); @@ -131,7 +131,7 @@ class Test html = Presenter.doXid ("
a last name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas = new TagsData ();"); System.out.println ("datas.setContent (\"lastname\", \"Spiderman\");"); System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"background: blue;\");"); System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"foreground: red;\""); @@ -143,7 +143,7 @@ class Test // Populate attributes of Test 03. - datas = new TagsDataById (); + datas = new TagsData (); datas.setContent ("words", 0, "alpha"); datas.setContent ("words", 1, "bravo"); datas.setContent ("words", 2, "charlie"); @@ -156,7 +156,7 @@ class Test html = Presenter.doXid ("
    \n
  • a word
  • \n
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas = new TagsData ();"); System.out.println ("datas.setContent (\"words\", 0, \"alpha\");"); System.out.println ("datas.setContent (\"words\", 1, \"bravo\");"); System.out.println ("datas.setContent (\"words\", 2, \"charlie\");"); @@ -172,7 +172,7 @@ class Test // Populate attributes of Test 03. - datas = new TagsDataById (); + datas = new TagsData (); datas.setContent ("identity", 0, "nom", "Jemba"); datas.setContent ("identity", 0, "prenom", "Epo"); datas.setContent ("identity", 1, "nom", "Momon"); @@ -185,7 +185,7 @@ class Test html = Presenter.doXid ("\n \n
noidun nomun prenom
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas = new TagsData ();"); System.out.println ("datas.setContent (\"identity\", 0, \"nom\", \"Jemba\");"); System.out.println ("datas.setContent (\"identity\", 0, \"prenom\", \"Epo\");"); System.out.println ("datas.setContent (\"identity\", 1, \"nom\", \"Momon\");"); diff --git a/test/xid/test/Test.java~ b/test/xid/test/Test.java~ index 2d03921..16aba38 100644 --- a/test/xid/test/Test.java~ +++ b/test/xid/test/Test.java~ @@ -4,93 +4,11 @@ import java.util.*; import java.io.*; import xid.*; -interface TTagDataCore -{ -} - -class TTagData implements TTagDataCore -{ - public String a; -} - -class TTagsDataById extends HashMap implements TTagDataCore -{ -} - -class TTagsData extends Vector implements TTagDataCore -{ -} - -class TTagsMatrix extends TTagsDataById -{ -} - /** * */ class Test { - - public static void test () - { - System.out.println ("doing a test"); - - - TTagsDataById tags = new TTagsDataById (); - - TTagData tag = new TTagData (); - tag.a = "label a1"; - tags.put ("id1", tag); - - tag = new TTagData (); - tag.a = "label a2"; - tags.put ("id2", tag); - - TTagsData tag2 = new TTagsData (); - tags.put ("id3", tag2); - - TTagsDataById tag3 = new TTagsDataById (); - tags.put ("id4", tag3); - - TTagsMatrix tag4 = new TTagsMatrix (); - tags.put ("id5", tag4); - - System.out.println ("tags=" + tags); - - Set keys = tags.keySet (); - Iterator it = keys.iterator (); - while (it.hasNext ()) - { - String key = (String) it.next (); - Object obj = tags.get (key); - - StringBuffer comment = new StringBuffer (); - comment.append ("(" + key + "=> " + obj + "-> "); - - if (obj instanceof TTagData) - { - comment.append ("class TTagData"); - } - else if (obj instanceof TTagsData) - { - comment.append ("class TTagsData"); - } - else if (obj instanceof TTagsDataById) - { - comment.append ("class TTagsDataById"); - } - - if (obj instanceof TTagDataCore) - { - comment.append (" TTagDataCore"); - } - - comment.append (")"); - System.out.println (comment); - } - } - - static private org.apache.log4j.Logger log; static @@ -148,7 +66,7 @@ class Test html = Presenter.doXid ("
a name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas = new TagsDataById ();"); System.out.println ("tag = new TagData ();"); System.out.println ("tag.setContent (\"Superman\");"); System.out.println ("datas.put (\"name\", tag););"); @@ -166,7 +84,7 @@ class Test html = Presenter.doXid ("
a name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas = new TagsDataById ();"); System.out.println ("datas.setContent (\"name\", \"Superman\");"); System.out.println ("+"); System.out.println ("
a name
"); @@ -188,7 +106,7 @@ class Test html = Presenter.doXid ("
a last name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas = new TagsDataById ();"); System.out.println ("tag = new TagData ();"); System.out.println ("tag.getAttributes ().setAttribute (\"class\", \"lastnameClass\");"); System.out.println ("tag.getAttributes ().appendAttribute (\"style\", \"background: blue;\");"); @@ -213,9 +131,9 @@ class Test html = Presenter.doXid ("
a last name
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas = new TagsDataById ();"); System.out.println ("datas.setContent (\"lastname\", \"Spiderman\");"); - System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"foreground: red;\");"); + System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"background: blue;\");"); System.out.println ("datas.appendAttribute (\"lastname\", \"style\", \"foreground: red;\""); System.out.println ("datas.setAttribute (\"lastname\", \"class\", \"nameClass\");"); System.out.println ("+"); @@ -238,7 +156,7 @@ class Test html = Presenter.doXid ("
    \n
  • a word
  • \n
", datas, "", errorMessage); System.out.println ("----------------------------"); - System.out.println ("datas = new TagsDataId ();"); + System.out.println ("datas = new TagsDataById ();"); System.out.println ("datas.setContent (\"words\", 0, \"alpha\");"); System.out.println ("datas.setContent (\"words\", 1, \"bravo\");"); System.out.println ("datas.setContent (\"words\", 2, \"charlie\");"); @@ -251,6 +169,34 @@ class Test System.out.println (""); System.out.println ("=>"); System.out.println (html); + + + // Populate attributes of Test 03. + datas = new TagsDataById (); + datas.setContent ("identity", 0, "nom", "Jemba"); + datas.setContent ("identity", 0, "prenom", "Epo"); + datas.setContent ("identity", 1, "nom", "Momon"); + datas.setContent ("identity", 1, "prenom", "Christian"); + datas.setContent ("identity", 2, "nom", "Tronche"); + datas.setContent ("identity", 2, "prenom", "Christophe"); + + + errorMessage = new StringBuffer (); + html = Presenter.doXid ("\n \n
noidun nomun prenom
", datas, "", errorMessage); + System.out.println ("----------------------------"); + System.out.println ("datas = new TagsDataById ();"); + System.out.println ("datas.setContent (\"identity\", 0, \"nom\", \"Jemba\");"); + System.out.println ("datas.setContent (\"identity\", 0, \"prenom\", \"Epo\");"); + System.out.println ("datas.setContent (\"identity\", 1, \"nom\", \"Momon\");"); + System.out.println ("datas.setContent (\"identity\", 1, \"prenom\", \"Christian\");"); + System.out.println ("datas.setContent (\"identity\", 2, \"nom\", \"Tronche\");"); + System.out.println ("datas.setContent (\"identity\", 2, \"prenom\", \"Christophe\");"); + System.out.println ("+"); + System.out.println (""); + System.out.println (" "); + System.out.println ("
un nomun prenom
"); + System.out.println ("=>"); + System.out.println (html); } }