From 7689afeef94b629bef4218eee53492501cc898ae Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Sun, 15 Oct 2023 11:41:24 +0200 Subject: [PATCH] Base parsing on processor --- .classpath | 2 +- PeerAtCodeParser.jar | Bin 96645 -> 97306 bytes src/dev/peerat/mapping/TreasureCache.java | 4 + src/dev/peerat/mapping/TreasureProcessor.java | 130 +++++++++++------- 4 files changed, 84 insertions(+), 52 deletions(-) diff --git a/.classpath b/.classpath index c280ec5..63fd6b8 100644 --- a/.classpath +++ b/.classpath @@ -2,6 +2,6 @@ - + diff --git a/PeerAtCodeParser.jar b/PeerAtCodeParser.jar index 5aace668f3a90c002b6229cfc4fdeaf090c73b5e..fc3a34b13f6e037972147f595568dbdaa3e42f38 100644 GIT binary patch delta 38450 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

LWGOh^&NO-^QYyds99ASeC_eo$R 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 z zr7GOTYc!?`bI+z|Kc$Z5uRJgd;I-e|FCRH~v&J}3gD%XR4^DLPFxJzu@O+$2QLx}v zpjkH&hwVrMny#jlnpmfWAR|3iLX{XHH=D^$vdbluKq$r4p62xpv&^PGhxBOj0J zwaB649G_F|B$dNOeZ*@7Bpd#UuDc_3WkMrgo2|XCdGk<%`kTQs0a(j+l;hur@B z^yGcj?!}~`c_VM!i97FzBL1V4I(HTA?tQ{3kmZ`3IHC&UY+#9DHmr{3f zJXM{=k7ls`8Lqr{?#ul@0Z{qE8F^#ZZdwA7-dZ>5b=dbia%d3J}s9V?HlgVY{s&$Ihf^O zTr9W4L1Ig1fp}~GpC?l(T1FWL7aaFV6Jz9!+e*m&JG)g3l@BI9-|H7QmqSs>$DAuW zsBJs1r*AuN0QV}}4^-+=ge}G5vSSG=w2IPm$H^K;*N?(!c$e1lqIYRu_4YrAd~4V` z7?s<1fK)r^++XT)J4Z$9@KVychW1s9RHf)<(e=~1>K2VOOF@;Nuan1jH7Q7}?pc?= zs#Ul`Mn44*t5hR)j)=!LG+hc`u(`AUPI{2PVIHe*m-4=U-!ZsRqXX zprQ1aSTjxfDn|GYspxUf2yL!oVaB|TkRUh9bMc?ob8h=h3ErL7KKjqdG7N9$W2J0!0Ub- zv>1#5E9SSWFoJqn!6vSdAo=fSgIELrw-o{~kasjPkXZcL_4X1|F!b+4uIP5g$fsFO zie$zbn517aXo# zO9*Lo^eZQ|@?C@PY3tmYbSN>u{(iAkG9mKg`6~+2%iJ}t!^&{osm{!Af(DArf1i2u z4E&aEp2@(yv~Bk%W#yZyi!POPf#WMcxa`KQc*I3pp zEuGJ?mSb^UKNW|Zd6{wQblFCPlPzi@qL1=%3?>_d z{1Ft>v&cJc{y6FQz)*(BQn_2ifwx&u9+D1pZ7Vm&>F>jVXP{u+m}W29|J*Rt}we9`hSW4`HA-OfO@0KS;XAE|0~1r}Uc-n8bCF4u*53$$9< z*uUfv3*-Vcly|J|)-K0e%^te+aD3Tr-FQ1DO0zN3u4XCY z1%gjbRN*+sGx{&QqUX*;hU*$!h!bg!{U#~)-k&^1+RM*}7sBor@sf|qElbqyesftN z>1#Z%nO$Uau6#=R>{GeuMwxfV1EwyR(I|}wW=iBKe>z5M`{IZcm%HdCnOGO$2E(rj zB_Hlt(nu7l^DaD9(iN8J2%H#^0|Dq~lp{mZ0`ZQnG3= z>;|!w`?YeR{Zx5E8ygnwin2TR(_r@ia>uI{DtT~Jr+n!3PU;J%A)Ru$9z3;i%I@u> z8X^5tRFTtA4He-XuB8SZ94-96629aKI=12Qw^Yv4Nziv8&0KcpAMiOZh_gJ1vW@B@ zy=&TV_3D(zPIFSx>>2A#RBP6U`T~>$S9wDm&M$I}Fj4 zPb@^xqXTpOX3u~aIn6(}Az!OsV4(xFsI^895wJS}wxxGGLB7E(h6Is-yZj*f>V76D zlpp1vl!RE(G}Ug>kTvapl$ZWd9)oWaAkJztdFT-qRkA2UmeiasYEUxO`f&(~p<2<} z5P@3Tx*qfzExY=)Dbz>B3Qt0U3|JjIQ@Fz((m{p`vpYccsNv@T;ZS4nA4Js=az~LI zN5~2_)*T^d)Nnon*`mgiGms5x@HjyZs1fP}xnWg6ifJe4><(a9Z8qhwjWc8|2+~?v z3^FxK&|ol(+b|f7-@0uKrtTs9+8HuHWAWi29vYKM1dxNz;~;KSJAG7jn>WzP&|xr& zTeO_j(}GQaVFO_>hFh3ZwdAsDW7x|TVn#EaaRHfx>Hw$+m%2dg zs63=0vuGK}t^v8)7CHGZkVq0{J`3?7{XQ&x7RVPLBjCpSfW2sJLEyAPAH^F_VwEjn z#GY&@cEIW$pl0wew(8w`F{mD}EI?BIE$knSfGrK1xA*9c z4h{wrf(~=S71SB^0?7)CyFp?oXyyjMvNjY1XPXxt``yc*X-mK)YlBJN8hm#r%3ODY zxKTN`JCI9sk)M4~f<4?JVPu!Wi3n)fjeumny#BpW< zWixw%&4C;-X-@z$zePcCk5NNpA)x*{Gz9kTp3OnrGs@XN2Z{&pVE?uL`BP{JcP}u< zNZfcY5Q2UN1;@M~adh2+H4U7R`6UDS);W0j9%b6#H|F3H9?XFR9Oez?;3XasKx2Le zAWh^PT9(!<=Vn=N#e(CIxQQU{)|CMN3Fg@ceUyoY81e=oZZ4o9Oy}8QO&_rNkUe4K z101r8a2OLLMV?q-g;{+!JY|SyVTJ0+`nG%1!|x06V2^{PnlyzZlYaf?xrTVm>8KvK z#~0d%CRs(`i0vD&G6Tek1`|RSIONn%6=!}7ChQyrb7IT>_|Ad~Opt4O7s}n&AH{&2 zdw#H&Y_@Pmr8l_d{ty?M)5{;^{3MIQ4zQd&!~{=BL%U?mj362g4E1{uNdAOIcaKg!j^BTYVM%5s8*uj5eZn**h zA@a!YgsecYGZFDq#JA(v@4jE!5bJ*m9}NF`360 zU=Y{F0(H6kXE-+yue>$tHHO!MAvqco2UsQqQW3UxgfOx`e%|NL;s|C&+vt#7hr!1~ M9&jO^0n35;9|-t1wg3PC delta 37841 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
d6r-wM>H8Gp^psI z5^+EhPTt6`_g_yvi_EXD#?^!6x80=q&oK(fZt}IY_^;E__zH4J)~58#RuIAk`IFgW zs_g3sy}&ai_WJ<4LF`c1LH|(sL7z^MvW!}F@tj(1)1RWHx!t1Wxg(-wt{ZF>7Gv6K ztjHpO&h&KCeF65&9$#CsrJBI1$Fm;O_W~LnVUKBn;*Y|mRi5oMi(ry2<2}V6`31y=gt(3%KZ`=575^-anL|5{^Obd$t`tg}~8?e@zW5fF+ ziuq0(V^m&JD5Z!hf-el|lFYFMDuxnCF#|C#ov4dd%nY7o_{D7J&A`sp_5iM%a`L!P zrw+x(#&_1T^E&)|2dex~H-U0Z@`$O;n4eP=u~ts%y~m9(IbNldMiXF4!w(j;S%C z_$gkZ-#eM{Ip?2y;penUZZ~el()XeDLie7*((D-(T^vT`z;mOrBhp{C*q*M+Ce@?; z#J?PbNL>Wx`d_O>O2UOjs*Vv9$~W}iU*QJ_3NRd6##Uw|TZN&v`+=ccCZrKYZk zMF{YaIXJkIZrSgXZQ1={9UW^?w@5xoZsA*V^7QQcyb4dy?k%H!6?(IP3x^re58 z+}K`(d_iC#_OoDntc$>HoQq)e>)@;w9`D@Qd~r>S0#jB$Tca3S0hiv&XD$2|!+H?HR$qId<^Zp85-a^h-%QD;AgPD`A(aEAG$oclk~7cPYMb#)eUWglZRjL6=M`yT5j`rb*OVGv3P3 zJ#J=}Jq706i}aL?i;fg}Qe`0ukp^pBW(pVA^*%G|L~FXlzIyo*wdzby)#`!?A(3fE z3R;`S1WjSH-c5j}#wJ~PVOF5T(iL4=TVVdzD4#?R51&LIkFZ4V7ZHhHel(WWZ)q%T z#;Bv}-zNI+dzU~jYjmI84nPMsm7V-%w^Qf@1MQoCIJ_t^_RIG)@%uFKqP=;7EvRln zG^lZcH>jAOFDQi{+CEB^+c8L$(=kJp(J@DrA0i?>CaetDzOqUfUbIRW>>QxVyASiU zz0~i^+VAL_-6u>qnUkR=^=jegXY0+%B^54T7ZNGoY~;6J_Yt<=Ort`0A+Htx3x_m* zHU~Jrs6(4>zTiSuroIDLzxZfnzxY(;Xlr-nz??hRz?|FkrewmHN@82CL*h-YaiX30 zZNi555V@||s&=m<5%+<=F8c!^ zOD)3x^qEs`6FuASo_5dghMaxxT7R|D$p*hAegp^~b38Nh+B1QlU3TG3VV0pAUkZ^;r;fELAPPH^bhW}HgwL_^APhv5Jq60YCZ(WvG-_=aBp=Lr*-oT=k)*z z?8ELu2Lpf#dwNK=%ZZE*+M>{w-4C6(;}!A$us`V0yh=g9u+t{5d&Nm3-|1m$ub&gK z0ZwgTZ)wTB%}5FB208;tgG>^=C*}CF<0W3hjM=0^YqG^_TS{x(wTm&;N zzP{0Qw)xs0C?}-+sYaY*k7MFVncwDqHTNn}+Wf~~_S~eJy1TDKv+ZK-p}vjf%g;PM z=&`xD_#`;K({tF1aBOpo)uU{e3QRSE`ZoRNU=*vMyKCQ7kj-dTGW~a_pkBREjvW}A zgY%m=DzPsGh%$4`7a0&ar$6L6Ch1u@`rS}WpqBYNy4+Ar5SJCF%{Yz4XhF#0OqI7t_L|^h4wBnA%FFIsb@yA^H_|>W*9b%a|C- z7FP^gI>`&C*}gG0n2;4uiw1kzh66Dr)4ahdrHW)l(=vB%k+IhMOQ66`kHV1G6lFMLzz!cw*+y-cKe^lfI7KPMjQ{KHyV4mvb`N?a+CC zQ!MoC`Gw5{VHxo_(*?!^Ls`nW_ysXPN|`Pn_k{&NQQ1VDMAJ(=`JEWm_G2K`nh&O; zycwxY8C@d8sz>*d?R}w;h?jXw1y$T+OMk?QyEPSTZK|04C~gI+sroU;E1&A!WKUzJ zUQTQZR1>C681h`XNJzXxZQGEari^`urRYTuF;r6%5SZ3_7CYH^Zmgi$LzPxu0T96` zZFF-|7;|fT#nSBU*TpSsH~(LBo7pE7Z{LLiBB{S6UUK56H=k4XCVT-Q)5u z&q|twSG$Z@S);<5Oy6cJ6{D54RsS0PV9f}-F!jh5w@xyb?TXoe(iMY9BN zjC;jmRMg0`CDv*1EOGKCSMZw46Awn~MZb~PQxDC{LL|Ld6-(0^Y?`CA7KYJ!(<1)s zIf1$j=6&a(aM6(vZ_cS9Wh?Z79kLoR&J_P0Y0a!Vv8J;ouZX+Yt`J3xJ(V_C;4~FAm>dTwdPQg}4}&`*Jxe7Fro;a9 zgUthM5|f%71OdQ~qQY0UJz92F*9_kOI-hN376Zbb|AOUyae3~#d){0R|A}1{Z|@EG z7lW(f6PRW9mxm|+n~H^me0QE-{Lpa#3yTMBKzob5*H(14jjN5;*56eLjkb4izrfw# z9o96zSo1H|A6gT$`{+Gyp}hAz+W%R;>})5C5kK6W-T*{AYhROYU{t6T$o+fmltBHq z-e8SB!{*Nr4eh@og>MDELiE<2Ys5xwl7ku4N%b}fzvj%=aJ~-s!`=Av?YC&h#vP{U zI;!HZdKIpQe<%lhb{h8Mc7km5@MFn4O)g*}eo3CjuPWZ>a6~24`YAms`$a-fE^7F^V5j`xh zc}uTR>VfCjBnGm?#L3SzVxHPVB1jZS>Gtm9(Z*>nq;uNXa1h@ z`1iG#r4Io~Ecs2BMw*!L-6spfN!oD3DI*LXzTv7c{Snd@q3grzTu!wAy53+=hIdVW z1n$zMdzkQ<6uuJjD}+!-?WjC_BTS77&Pb%jTh%M>d1wA^;kZ~WMpjnFRvwRf=%$u=U%l-&5f*eanEI=}lzNT|J0c>+SxdX;k8d$2)D^!I^|7Xu z3Mj0^pDCMKN5ntZT8Es{Nv5(qCn7_^fdkAxSm|ytf9@4~lfX2Tdre@|=Z4Rm@`d2h zCIrQ`vXObEg0;Q0VY-aUBnjSrPrHltP2U%BVGdgBnJy}ta*ckd7mBMdE$tQfNPkbP z?Z~uXj#HD_Z5PYJAEnONzcLb6HKc6#Po#?H#UMOl@RVQ>PHH!xWJev8oI?bar%uK2}3^A~Lc&t1`C-lY8@g>yxt*P{z{4Qx%`dr5t+t4_x%3Y%B zOFv*B`cuJD_btsA+0b9tw6J-O(ND%}lf<59Bt7gCPU*>HTd*G0!PJ6LV~ok;E^2a; zWtdl)tZEo19jP8Bxn2gVEhMA;k{s@v1)V6(;fmX>$uuYjwa?u z!(LBs3*m5Qv6#Q~_xM|g4U3xc9qLk+*((;#z;qLh!?8?0mh7?~Yi{)xn8EUHpQ1t7 z9)@}-ThH&c-Ctiwp8d>VZlm`J`W_KEs#{x@;*t1?(dc~1qrZm9`0_W-4`+Aa%*Fjo z^o<%@>XPR)S?p!ir_prnq}IRXPFk|m;}b2;k0Qn5xtag6@Ym-rxt)@a`hDLpr{>KK zli7cTD4O=%UouU2uyqwgyQp$Gd~eD;#`zCQAv#vqoVDMBO_G;5u{aSq^Wtk!M+rM@ zGC{e4j>YNFzS?UV5LgkSp!SymSZt;D`{?}ymzZL|+#pnpL$L8HS-1=H9A#_ZM5po5 z$lqK zBM!X2gmm*IomL&2-%=%Br{jg+d^xqYDb)`p5GfJ~ZpytzivI+qrgG_7#8xJp zf>=_rWTZ%@XcIpXa+h}j<5@SLJ1sgnv@-cYh|xiZ5gktC)u+%eYta8ZCm9#q9}ha< zEd-B;4xFhedJiz?Q0g%9PDWbDMSY8e;}xY?D5=mF=8qH&3O5-W#2BD_R#||(&+2&#R>1i^ZJi^ zFx`B-v=~Y2&NNAe1Vm_GPnvxAG>l351<&x0oCS-0Jf!@|zx=a1Zujtg)z>1#;v|Va zWGs3jk;)P@EYu3jDLU}_f$Zl-mwa+-I{a%+)?^05k&xa>dTZ8V>&1%L30;1MLP)A3 z1QRAO$Ff7u%&rWmmiK7L(uY^DWCK=6QZ}Okj zt42S&p8!l>ZNp8b$lEdPZU(K))NMEt1ws-9YP_>%rm_YLHI@oBXrGmPIB9I?lppDo zClXAt(&z`IISCFn_FB!uY^q`e+`O|Tda|Apmmk^uH{kl@ak!d#Ls^!`?c_(rR150#JJ331braQRfMGWu1qdAYWnGSERTXOl>6V8OOw|gN??R_S z({{pso`bhh%t0R_yPLmOHxYdXq;?XK0(5>^AI7tsOEgq;%WVjzJZbbT({`Q=`b=8g zr1lvQ+TGyVNo?@tmGl2r$sR4#aG)#q7AnVtP6eb5nC@-xOlHv(Yh>z_4-rg})95p& z0XrOnJ|k8)AN!`C*tLBS`1>ZyeKISjSfg2|e1Tw!jz-@*ZHK3Cy;`aIX@gKX1y!oI zfM|D*xP}~!zIqyaq(Bs1Id72kD7 zA#pcdafv}&F%8zlPw0cTts0~@?}Q;5e!xD=Bx;!}jDZn~F>cGs`@__xtB5$4`%;`R zv%m1Hc9?SL51y0QSHaey;BYmo0_#(RwqWm^yN2CYT>Z?0{O8qH@Y3g`$!DZW0Tw}XkgwDB6%L`71=l}->6Zj7OXq|4`z%(YA4}uu zLjlTzXM9OMvv-XIw-WPKxDZc;>&<%)XddZ4F(ZbP{Gw768BD$(n~*U|mr==4eo-Nc zOjEu;h+ckDhjB-Uky)3K8mh)m0}MdZO8wz^ZjCAqobTe;)kp;~$@Mv6r$1b%x;YuB zQs*RlRwg&7VN-80mOkSsmDKF_H&De$D`iTwWrFDqusDsixJ3ULJoy#zgQI?jwsk0W z)Lg$`Bin=|qJ{zUbKBAsWCd<8k{$hdDM&3&`rkvc)tr+?)_qJ0w#cmZIG}ETpVnIb z(;~i4GL>(PX}Ex7GdnVXe$ZkeukTg7)U>uaUG)^t-={P2Mr%BT(o~i`n&u3ye6gi~ zWu08#;A>`hKS1tLSCBdog4&wEWgC|)6ED-H?ag-GI6L@dz;>Cifb3oNu-7 z@ot5QyFN_JUX-SW{9L!{vg4>*Vu92bzu-6ap^Os<{~IAivg=S>aIT@@lCN5aKXK1R z6U=LNOgph0)c#{E2IEyXr~hRqzXv0~2MfOkGe4khy{P57_8~G$y@fyXjSbHm?O_Zk z|G#U8Vh73}Usv%2;Xc4#XT7i#+O5*ZGU|8tC30fsVYPS!w%O@FwoJ>t{6(e&g8c2? zK!>Vv32L9+yp00t_lwehi1ssJQg{*sf0X?)f4Uqqm~y_KvYkaO9IHE!MV&6yARxy2 zUCf8n#QyYe0AFzNTo~Nmk8Pljw@3Df2{TYsKjQCCABTSeA+sUCu*-UvO5H>_9P`7R zy>gp^v#qPD+Hjr8Tf%0F&HSo)|-pIZYpyv6TS4276r}#W#l!fQU zT?HbgqBsf}8;dgUd#G!Tgt;yfI`QBz%|GQIzi2b=npo~pFe-!)u zn6|WB-1TG84yM1Y2ApaB%zuYFM+wtK`ZbUx!Y^s)za-2Bf051G|s9EanRNi2iQi%Vp z4u3qn?$cXI*IjFaev+Kz_R8e40lTQXANPn;77lxAC5ExBk=|YUp zIBdyb4LQo;GuBW3D}=n7Q0;~en5C_|(BLG&tJRrm!&P4X$2O;{nDpTkpJp7>Ojdwq zycs(1R)~b01(?gSRm@RQ{HVkK(aCyz5WbuN$>~3KEUu|cb`xS`qLWmPp z{;I#><*;SYROK<~uT{fVyC7;{AomJmg%EPAH$x)VfeRupBJ$H0n%HK$BzMd>j2M!U z&*Y|a)j zR*|*VRF7?;^(bUQx>ss`i;H9ZnWn0mLH{)*GVPSe3zgg}g|!rqW1R%%m94Bt!O{v> z6xxskid*BJwknhAp^~4zC6VU{#BTlYv{jB&kDAJudIXsHB z6oUhT!7>124!~v^$XNH8Jbjo_gTCNk#nRN^G|(7@=-t+-IC~e#>p97flceh$LLwzs z8Nmw+;nh@qVW8RxiER8w1ZN=E3u9g9H|R%KyG;Ehb)zO{puw1v^`SDWTg|o%K&TkS z70Sm=M*7G_6$;}qn&B%fv!_9rV;$Q974`AR^>SHDUvNCBd4)Z(ONl0>1J_gYOUtLH zV|n>Ax$ZRs2kEOi!t}DPF?7Nn^f3Xi!pvXcA<)E$_!wvCs5m7-S&fE`dcq_rCa2IkXA=B% zvR6pm`nlFQRg5E!dW=yw$rTFusSb%eYXG)W>{BNtQUMI|(>EmY<$>5vK;ly;1yTWg z@>5m#{W^0}=%k2Rev*{`e34vJ1%@yweib_G6q;x&0z0LGor)#e62K<;2O5VjRMpuG zG#qlMd=RDMq|kv>A^0^^EfW%W=s+*^kKI7kIETpRSK0WK8n)>+W2rfO1kqm-kgp~` zWKGEZccS#Xkj0KYCoLaP!@izWz&5KVFE(_=$S9E?uaT4wafEQ{z&q7M#$ZXCa?NMh z7ZtIlQE}8^aJ8fR{y-l6ULNjb zbTXY=%YRzf9Z%MsDx`YzM|0ERh&s~Q9)4T1NmlFcNB;DOl zd%TzhjT|KhRONMToQ3*v9GgF??)kNkyZ`HaQT(g#X$fa(Z#(V|hq8RxUsu-5vsdGu z%lDacPyQmNa12neF8TCc^TxU}=u02F$VZa@*(nS+@6V=py9ch6D?gPQdhpG~bQ0EC zcZ}{lxshxAI*Vp8qpJ zF0{|Qm-`+!Bu3;w$ZV=ONG(cQUafpeRjUvpr~^-Og0Sh5G{X56KilHv%BzjT`iN@a z{BLMjZ}(Zmd?@?B+fDwgO;-PI z$m+68lRf%Huoq2~gf)ECT_moZRPJHCSfgFGo2{rfn-gfuvwW_wtxUl^v_CD2=?8dqVM-xOeo;DffCIeO&8Id??BJv^TN_q+rMpPJfwp~zp!mp!4!*Dm zUz6Na^Qny+mr(gHFy{+V74F~9OzZoG#Ki}OKcaM5!BR59SSjYKF~+YFjgt{GfJ(I$oH^7~S_3-9n<^m7!~rm#j~VetR&QUC?I6J)KLBO#VZUeBR)4 zJd#X4YG27xMQYHIW1m0gvIrhprY65vDt~(fjNsoMb(sqBix#0ju5T7lW+`+P$rDUQ zmX^qeY8R&nNYd;O8uT;fBwJS||IB`={f0+Jq;-@ob`e`V^BXgDHVvnQjyfNSaZY`U z01lll!YqU^)bTYE=w|bHH_DEmAplr=5zYcFPoM!@JsKjEaRh&{4AT&vC&~KPS z^euA7j3m)uswCy1&#xKZQpK-%W0zHjv3=padm;bd(%#6-hd=Ua?o+DAlMIc6T#BCs z)^c7$tXO0BMLGb#pIoevXN5RUAD*tj0ispi8&YN5-`$P!!UQ$*IMJy=)BOPk2a(JJ z|5|7M9eG{3YvbCr$d6lqU!|FE`*qoum?;svq*6C z6yof}J>^dYQ>{q8>M)9Es)`z@QZ#oZ#&l61+{EBHyy~6}kVjB+Gl#xbVU14#j-ly$ zT3pJ6tXTi0viC@-AEpPfnBbq+Y*+pcyM6K_AS;8J!~{ZY=g4oFWu)=zLiy*=d$?^y zN}=!bm1mt_5ch{b9{!d_Xe8k&)ym0WTV!1B8|S-LPqAhdB?8e%Xwcl+oF^4`F78&D zohLL$$!D$LO(=M4t|8X4USl`}43j(~-0w)s-R^$kD?~x+PqgdkGItJ`7GqWssDAKxCa2^isclTlEG<6es%@=BCW{=E+a5 zqZF6lsscSKd>q$KZ%U|BX@A;o^a-?Lj}9d|oO+V>j~Dcpl3L{6arJ6i16AI!c6h!d zHzvtA>zXX6X&Oug*-vS@%O2dG{X9WyIypIL>9)&#KGX+aPDt_^#o8b({vsROCNweh zrXab}0bc2lQYpizJI16t#;Q98p0MbS*`FpCT(@4^>fK5*4gzjtc4E4$y1ISb$1x3h zEnW#FsMkBesp((2EbNqkmU*EYcG_6dj~IeqUi27JtqT8%Sl>+T+O7^Fhb1)_#nXd- z=U{49uc-m~&s7=vm5Wb?vby9?P@x6z-T^atQ6QPU9}i}t#JNrnHSU+v;SshFw21Hd zBxu^*gl=y0*>Pv|tb1RBh+>GMel(o=`oGzBMVD0v)Nr~L-#YE6= z75je#Tf-`2N`i7GIVD_%)oV0}l`--^ooVc`?xsFP>EQ6i1;~FG4^oM-X$~Y4@oO12x2Tv2U zGccg)Zwv12Xa^@FfWApmhq(_8=f(BseWrfJTp>4MMy#HFIZD7z0#fuH`r`cgAZrJ5+hz*{`jXj)F4xUzxJ$PZ-1tj(f;5oF0 zHGI>u2|#yfjcNF{aTe%AqT5lg2{O^zQLEcfM9%YyB#x*2Lh83SVKp=owiVb`qYDQGux?!$j`5hT-D+;5bB@qUmOfsGqPkA$6%x{AX0IfBW>t0xOI9 zUPrT~+jO*yANTb2oD3!z(*NEj+6)!KDaIk(ijee^u7jKLx}#T0~F z4w8PBd|oydP$$XZM6EgLrKlG`sKyy$|A~pi2_V;;bXL?;B2;^IolDMH1fRLV!*jUK zp_r9`)WPWAg(##pqGlRUr=QblPGTzR*%7MIhQO-AVe^WqjnpXyy$X{?1^C9~>5Yl3 zJ3)$ihJ@!Vg#BX0PE)T$+=XihA+4>Typ%hJ_=xL^bXSu^P7&B#Ir* zL~NnQX#kf^C6j|RohCzWhV@(w;EJgbX1H09s@^?!k)1>_Cy&}$a~P1kvaWc-EzE5+ngP_uu1tL#wSQ7k$vr8=&8*L_aK0STi8pp>gZEV?HJ$GJx^)Td zo}$Z~-rvK_T?(PumHBL!xdheMx-r|(Z9&b5aUt@XM%eY3vGXTZG+x_+_os6f4{tsJewcX%L8JIdj zv>``>0jZYW&+!g}UcGdv5F~jKG4LaFm@JOYkb>@a)L&goF_9`3R)@OI7gc4zuA2uR z$%OvID=U;2xQRg3Bn3V4*N8kAPquokM~0Kbr=l~s*}B53SBZQ6?! zxeLu=e4@1@{f9>U=Nrx!tE$5(ULfje)rxnRhoY(TjmD^MT3N=&+`0PjOT82CpofrY zW1u4ZulO(<-6EmGW5}%WdGPF7DRcg7p-V{Xn}>mQD?pn+YHmtnU{+jpLd$ee)1AFp zpW@rr_uBBQcdt_Br5*MVj@$n1kPhn65-#5mKb*#Mh~AikqGPK{X{UC^3+PaUG;>>g zgV1pW%M`z?XU6-7%~=hHs~%ID>yJ}tj;QLT^LdBbM7-0o=vZT~W5z5RyX^B;Qo)$pYwXq(ldCMMOPaJG73rx*-AzMP3O9d9i% zT<10&v&~F11;J=X6iw~NmA8J04Y`86tu}R@H^`?*0cB+q#(c~LH?BL^&>`0X?!?Z1 z>g+Y|CtOOVj_D8YI>d&&((LlbM9khb4F8)`{;ZQR7W|d?VL$Jt4Ye$BrkD%YaZV}* zu`g>%ag%`UaNX^o*seoymxpzezK%WEKxH{s8C~t#&kU9cQG!i&a58d*Fg%! zy*R*y0SbAFrWx0+mHN;juY#$cPHA>g+MJ1;4C~Il6^Cr<9c>Lb2fMHCkhRW`_uhEr2%9G9vHs*C=UBt@_dsg<97@&d+7)NVKm`%r#$s#1q5+eI6nY?tMf5w5$fZ1KiB*FM$S|C|o(bFqsp& z{uH?Rv7|9jbi}Vx=^>(PqNkfd*JvKg;F%#0UY~T zvG_Wo>_lZJ+G$QI9I>2~kaRul&XyK+ zgGR~H?k{(ZQ!sZB*N}TI-nHzz1l;7l3IuQ8&HYgBM45dlrFd*!yp8vTTooZ7`Z9Gh z1f_3>bU-f$ZCTfHlHJ(#KJRwEU&>kIH;eD4$7p-%F)U_ut$*AD);Su~PE`Ryb)S)? zHBtiJln2_2I;?srOHys|Uder5W1US(s%4}22Q>7|t3OmB?^fP_t`{NwYh;#~ai^^r zZR7gDEp$R=@SD7PiS%>C_?vAbWaS!)wdB=-#(3GCzYOtr}`^6V?p9ewLk4c%Z{p5NF~j8|&U@ z0Vo?AxW|Mj9Q~9l@o2EM_>*4L^kwxkJCyVd&SP>^!`08HzflagTuz!$f3NJF5u!PN z7v21b;yl>A%z!ox_ZVqLJ;z?kKSJ5o?POlU(Q)X+eIzUVawi!4R#xf?cp2;=8*=q< zha!u9y>+#P+VP!mjbw_DTiX zO>)8L7|J=nO#CC+xN9iA48yp?o%{o?Z2VQ(U1nIu3Foz8n9-TbbuDVmn&|No+RcZh zVGq>C^v8Eg1ddpbf?cHJ0Ph`rC~slN9qNOqEY`Kcot3Q0)!H47EZepIos+D?)!7|} zEaf%louTZ1SG0GUvdvfRXlu{kk%!A;>zEKdAx?%=hGVKya-o{N>SwYgZ9pGnEPdLF zx`$ZW$-mVOvov!Y!_SvQWC7{{nICQt$^rQ$E*8o?>mB1WG#?W&)@N8g@>l9&7~73+w8RLv z!{3;;plw&Zv1~!zE`OuaviCfNSezdl3OOxCQ6(eS#VCy}cLY!ydaJEPWaoMA2L_%o6AXo$#M{%F^|+^{}D(5*JXkqXsJPvrFSvX3iS#V^wyE zsXoKo7C%usVF6?ndW?IFQ9D>Wc{)+IHBabHEM=K{bXOf^ZF){tpU9H-s;%0}>i0OU zs)Uut7sLpnj*x7{c%zPx%1~0Gm_d0cGEvMpcqolg%-FvWccC>JS@4FUJ4UqV{(0hv zXwkf*A17Q*TGb8ciifV!RRZvaSQZns=jTu~P4ubQ4bD?D3e zIT0x2TwPlAl@;w-Sf!JFTNc(MuKE;49E$}}Z74<2V^I)5HPwqtBi9jOuSmnysY){* z#DaDi=x{u#tV?4pLmy0rsj{G^!v|p-DCwCTYU!wkDOKviD8JKoRee!^r_!k6qYA@w zU?V8PnSdFr21SZXim3@>S}V{X5N~`<&tV5gRvTtnR)Ol98mKCTD#dw`a)Y+ZhM$Is zO2gIhyaRii#i{cAX`yl1%H&?yV)A0fBI@}UAw3!l$3`J78bZhL^LIixfR_L>C&mvSdFq~5N^yyMKe}zETB=|jJpQ)JiSrNjBuNF=YO^@4ZM{ z*$eGY6};4CYt}_hnZxD>>DEU!Vudhr$k@ZacNM|3TN$Zf*X9rSmEvOp<8) z`E|fGhAi(O?~np&2NPjxGv_zU1P=u}m^Q%ww4{=;y6>QQxq~t*_Mss0%kvIRb>sI<>mSE-X34xrP+VY)qX}%Q|e}o+<&d znd_fVg=K*u(GBx3cg}=v2~`{@BMTn1I416is*#WqmM!!v9787#Zi)I>v2NhSx%`;+ z4Tg$wSD>fEUL5wQKbdCz^h%~IQqK$o(hNDEAOM3IA_2=!WgxH%y&yjZVCZG_Xb;*> zRgF5|AKAInXF$^iF;Lb4iU9^Yl^`g=X-Nix#v9b2c~W5qX}*EpgXTfm4RKIA4Hr-Z zo8TF~)CV(uri&s=3xn8TNkEUf1jPH;Ns$`XAQ=)b5nkU`|ay>!G&LG1(d z7qXYyMjFV8m*g6Qft2Z-$R;^n3SizJy~C>IM*|~#@Hkz^Q3;-_85$k~RbR|Fu4IJc zb2Kr4$BIoIeNc0z7w&rcpdBL1T^;_YA74cc5=|{;FpS5F4Bes6U_hKRIr&|InP$x= z5ODc?VQ>uWMmRHr+PtFM7f@r+V=(&h_{nYB59y7#X#w*NN~Mu_fnNJ3Fye3*fh;x8 zYlE=_I#{2Vfye2s-PYXJ@*@yfCg)Vg#s!8K0v{w7BzrQf83_`TV^GME(l*h4{j0h~iXOWR$S!q(8X%vq^N8dtetRRe@IX^gdudpUybd3C=|FRzV=m@{ zHm=h*@JK4Gg#K9Jl=JD`-o(AN;8kyIEfg+By z;DYAu-9Cc-Z{==vLGHf#0J-p>##hJ^>cLwO_fvgQ1>zrE0OacQ=S`8?%l1-G`vN!u z$XwcaH>7AxxV`*%UPwRj<8ddPXK(q@$57Pg7-%c2K`BhuL!SeM*xWtuA zM_qn-#N(9UISKNcw3kL$j}@8!aqfULN1!iAztpcS0fD_8d@v`Fx#JVTgSN+)=4mj2 za4%^ay#1Z~-IRdld(RF8SOfHqszAPdM+)R`5P=L}#-cVuC8%NT@gk?lJTF4xh9NCT zTmdi#TXua;LME16c!H&n@P~I`sh}D_x@0D0X26o*#T>HqhiY{pTk`Jxhva>50xr;Jxkw2uuspBQ^X) zR-~4Fk_>W=c8&a?=9WkRYHR!@si5ZH?LP?Ol5RetU`Z-*5sBCGe+M-@Kp-C}^3w3q zg8hvXtdKU}HEwXulMg5Ppqt7rK^P>~690kI^g(Q@KrPFDm=Dwns0wI6mv~<=5^p_; z0!t>Y!A@b1f*G`*@j#qr%>^vgFJ8@n&0K}PA{Xh_=ZC~g>Zd>r*cZ4&X1q#VLh?s_ zR$$F@TFeT}co5P;4u$B$KxzXm&PYwf9f>cn+Jrv}qTBaBd2~?Lm;jH1<@TV0KPB?x zF`M1qkMyn}durGXl+JQ6G>!p#IYbQ3!y-@R(_A;0{Z+{PBj{2Yz67;1T|^1U?YsK%gPi4v12UZuk%`o7 zE|FgJku6Z$#N8wUn}|;bkAM*bqDw+x$>Sq4vZU&r0OHRaw1faqWXRG-iqV@sAb(vi zJ_PckB3sBo$A+W8mfk6?)1by9Xq*FTzc-~egI{&hh{X8hgWXWoV7C8p@o+U_J?Ivb6Uyy1*7GRkF-78zC3 zGyq1q)ps_7wuPDkaPAo`muAp5?{a|Dx=aD2>*owVi2HWm41svw*HPqBaA)k0+V3`Z zFy7tlE$9`o@fNv~d0~479?cucY3~YZ=F0IO#=ag@1IR*q-Vo-a!`9ccx#h=wG(ScV zuc^PnkzuYM_pQjTF3NDcTh8) zcR_MyK^Y|Eg9Q)b+m38ED<#&r)FO$03+5h(U zG%lBqU(?pWMs*KN$n@x;Y7r`2X9GR^$gPRj!LOQ_=wyCv(Ie zl{!_kZ4v20@U(mU&yFbkW{!&94k`~F0{=TnmFgAG40S{$07i^0^%s=Mq+DomX;-Ks z)GX#9rCQEC;4VodBo>oT{I3@kCvJ9ATG*3@<>v-LZ{2)zzh7}#PfPpWG(c1vX}XU!HN{bf+1eb5y(71@ z+m=!MB$0x9!7GzGe|;um2uIr6`QvH3{9n&VPq|-Dc=T4h^cVQ~EG9iM)vWA%6PQ@4 zIVJj%t;O_oUO8T||jRR*72Il)@p0H=PB+kF80{t zZ#2uSiu73>KonR1v~QXh2ZX5HH*dsUzK!gn(yizbkU~mq21$wVJMWp< zPtESn=Yz-h`99z0Ip;m+c_02DeEe>?d+2(FO8+Fcgl?tT>@11_hf&7VxY6EZb9}9l z+0}qpC-cJhWv4cb^r>|0Vlk9FOA69_4wEYVOS=w8zDqHSH*Fj9l=|t#lLnH>L7&=X zIv4e3B`mCn$HkI#k4+~GX)m!nrn3G?zT@MpV9M;lrqDLeiN`}G-IMXDmmN4WyKAd! zpW0T9ZgV<4t{V?Ua19k!TQy3UEDd-nRzdET-n z!(=n2L)yZ?MHLQI%RpPIWssYJ(@azOz=~~h^|is8`x6y6nQ{6Y{)$txSG@1gb=&sV zvB8{D+2mE~Y`OG~YXh?9_MW!wh$c-KgzdaLZ*9As&Z@6X$*c1B6`^X0G3Ua5nwPH& zl5Q*>*z+k)p1EUug#!NNa6B!EB+)C=G#Q~vT;+c!~D^5b*35DMQ_bx@x1Y}_CfXGEmu-S^Ulw8K3uO-3C45fq(f!; zN93f<>z5{#9(9Vb@X)L^U7;4A+#T(~RpMb?U%qNJ*A9 zORq+?GdAY)+{P!Jv0LZo2J7|^&Z)^J>SZWZuakDVV*GjGXyRaFqs?wHEY`7Ld5ZBN z(`vHhlwnBw{h$xbgw5BqYMN==Kfep-$eybHB%5e>gZRS(MtADt4Q+QO;%!@rugzX? z^?ZYd12~2{x&8+qh+EMcU$F0UB8SG_KKwhg>s@~)S!0Q51eJKBL3;9XNs_y2LSXk7 z_va^4yS~DI3r0K7FlauwGQR%inh`}S)9dzxv^rOZ?vEXdRTP-lYc4LH^S!e*VQqlv zY5i=DUXo%%)wUZ25A_OY$`?{zJ_{33RP=1uJ4&pvZZ58y<|s$yXX=(Cua>;-@DER`NtAgKQZ|F;oL`?ukR`=f?B=2x^}mp ztuZCqwRC>)XnX0CwVEkETOJY~+cI`&)uOnEVIg6$6+u*;KFx4eUsHIvYTLp+j=3pP z`3)4J^U1cjR*GUHX=DA02$|?|onZRUUo0n!qkh?8=Y3LrJM}ChcR|Opug+Wgs}{^* zHX5P!1Ji^Ln_gQORdCc;rMbjER6HELSq;0W+b&&uAE$2jn?X_!lM^0Sxc7Qs(!eTu z{|ebzi<-#AE|iz_ODV*J-6z+cH;O;Q2((o*NgW;21N8c)s(o1rl;=6A%j%Baj_?pC z=?2avpU+=AZmGO`D~FNn=zNe7wf$D(aU%8E?aN;ni^)Ob8M-#-;&%t#Bgih$dy~4Ry`DJ{g|6{)%(Ie`X#YlBtXyi z$|c(@CP{tFzFM`q>rCtVLe;+PjhvbrUc)r6J@5OfL&fh|v;uOcKXJw}Y!)cGeaWQPNFhGjw>SXjLx>v*RzJ(c< z(UE>e?4Ci+F3t9a1yqCd^OQ`w{kb6h%a*5T8nJVUU|(3cgvWW z*_q#bshF|XecWMYUrjsteZRi`=CO)uvqw_JZ?%&9C}UCL5;5J$1zxBP=(dHAHwhC6 zmlu8C2H-$~rXMuJz%Q0~Kd`RS!X5+y66?*M9cW~!Z15Hm{uJ$qk1TADW)5#onyWBj z9T^cn7X*G}pZTkWH|Ee*`3d*JS6RJE37#fD6msG zhk22boo{%$IJukw$&N2*JlCC``^d#+^cM0E#eNeWvU32ARru7#uLhe9h2;?6F68m# z2Wxq5n2)V8q`*UshuwHa+TU!R8_#LKAIRrk9^rX%xEQaR$_67$PZv&uS_gm>`^0#J zD4OeLraZ-PqhL1x3vr{wO9bdHK-O7t5Fv~#QAyCNf~?`yKne+#d|dIe1I1+WPHIs;W(Hg)))9mLc{gj5RP$ufg8Rzn4KR`5(+9} z>6hrTMA(v;gg+pvL5J(o_i^4{fIyIi=hp0>BZ|Jy-o@G29E?N~%KlKIt{8%3EChxl z@GuT$massX0~YMd*VJD6URVNZj=;~g0-8@tA=8i*RxX0IF!&PGeNe)x4C-pLIv>bL zZL(rW zBY5vMP^o7xNoTo1Sps}Y)&jCsEs#jY4h4ZFh^cc=zWps^WI(o+05j<+F3Exo1MR&k z{`Bjf`x;q5W}Xm%U?afp#Wn>2V~iRMRM8H`1>;q<;}UpNQAgl74hDB1(2@a`BaqI3 zpi3tLVUJNm;7c5o>PDb$2tXGW+ZF=B#vUAG74`DULhMJl6^r*FeqX27D;f!fI6yTYD+`vI~aNa%4`;p$QVRbL=Ve-tC^|kp0x=w3t&Qu0DJTu z((MT6Z|8J4OqM^4K-ejHI~TGao|AbjCmfKms{Q<(>xH1uc`kNmExZ)4Ybv3-Y8ed{ z6QTsd9uk3IE|AIn6OWpDfPbKx;2FJ0{5SRf9FIB!spw&-Mc@rU7+^UTKpP8) z080^^io;w{KHMM<6fkB4{|HaxKEEH3&k^&B1ac@OHWI?N+I*Oz10;05zwG#dY*)7S zy9*Ebh93xoSb-%_SEIN;I0j1z07N7) zDw!VK3imf#fSxK1l!XKW7fSdDNYpwZ zu9x8&pJ3X71OMK`s^wCJmtf!=4BRddn7tDPI$&pGfu2z5Zmc>M7z@>SVAHXHBvRoC HPbuMl(*|Z1 diff --git a/src/dev/peerat/mapping/TreasureCache.java b/src/dev/peerat/mapping/TreasureCache.java index 971aaa7..c95107a 100644 --- a/src/dev/peerat/mapping/TreasureCache.java +++ b/src/dev/peerat/mapping/TreasureCache.java @@ -6,6 +6,10 @@ import java.util.function.Function; public class TreasureCache { + public static void main(String[] args) { + + } + /** * Badge b = Badge.load("myTest"); * Badge b = new Badge("test"); diff --git a/src/dev/peerat/mapping/TreasureProcessor.java b/src/dev/peerat/mapping/TreasureProcessor.java index 8fd56cf..b2c9187 100644 --- a/src/dev/peerat/mapping/TreasureProcessor.java +++ b/src/dev/peerat/mapping/TreasureProcessor.java @@ -1,76 +1,104 @@ package dev.peerat.mapping; -import java.io.IOException; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; import javax.annotation.processing.AbstractProcessor; -import javax.annotation.processing.Messager; import javax.annotation.processing.RoundEnvironment; import javax.lang.model.SourceVersion; -import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic.Kind; +import javax.tools.FileObject; import javax.tools.StandardLocation; +import be.jeffcheasey88.peeratcode.parser.Parser; +import be.jeffcheasey88.peeratcode.parser.TokenValidator; +import be.jeffcheasey88.peeratcode.parser.java.JavaElement; +import be.jeffcheasey88.peeratcode.parser.java.JavaFile; +import be.jeffcheasey88.peeratcode.parser.java.JavaParser; + public class TreasureProcessor extends AbstractProcessor{ @Override public boolean process(Set annotations, RoundEnvironment roundEnv){ - Messager messager = processingEnv.getMessager(); + String[] sources = processingEnv.getOptions().get("treasure.source").split(";"); - for(TypeElement annotation : annotations){ - for(Element element : roundEnv.getElementsAnnotatedWith(annotation)){ - -// for(Entry opt : processingEnv.getOptions().entrySet()){ -// messager.printMessage(Kind.WARNING, opt.getKey()+" -> "+opt.getValue(), element); -// } - -// File file = null; -// try { -// FileObject resource = processingEnv.getFiler().getResource(StandardLocation.SOURCE_OUTPUT, "", ""); -// File clazz = new File(resource.toUri().toString().substring(6)+"/be/jeffcheasey88/peeratcode/model/Badge.class"); -// if(clazz.exists()){ -// messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] I was created it", element); -// return true; -// } -// -// file = new File(resource.toUri().toString().substring(6)+"/be/jeffcheasey88/peeratcode/model/Badge.java"); -// if(!file.exists()){ -// File parent = file.getParentFile(); -// if(!parent.exists()) parent.mkdirs(); -// file.createNewFile(); -// } -// -// Writer writer = new FileWriter(file); -// writer.append("package be.jeffcheasey88.peeratcode.model;\n\n"); -// writer.append("public class Badge extends TreasureInABottle{\n"); -// writer.append("public Badge(){}\n"); -// writer.append("public static int getBadge(int player){ return context; }\n"); -// writer.append("}\n"); -// writer.flush(); -// writer.close(); -// -// Process p = Runtime.getRuntime().exec("javac be/jeffcheasey88/peeratcode/model/Badge.java", new String[0], new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\.generated")); -// p.waitFor(); -// -// file.delete(); -// -// messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] We created it !", element); -// } catch (Exception e) { -// e.printStackTrace(); -// messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] We not created it ! ("+file+") "+e.getMessage(), element); -// } - } - } - + List workingDir = new ArrayList<>(); + File output; + + try{ + FileObject resource = processingEnv.getFiler().getResource(StandardLocation.SOURCE_OUTPUT, "", ""); + output = new File(resource.toUri()); + + for(String source : sources){ + File given = new File(source); + if(given.equals(output)) continue; + workingDir.add(given); + } + }catch(Exception e){ + return false; + } + + for(File workingDirectory : workingDir){ + try { + parseClazz(workingDirectory, output, workingDirectory); + }catch(Exception ex){ + annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, ex.getMessage(), e))); + } + } return true; } - private void rework(){ - + private static final Parser PARSER = new JavaParser(); + + private void parseClazz(File source, File output, File file) throws Exception{ + if(file.isDirectory()){ + for(File child : file.listFiles()) parseClazz(source, output, child); + return; + } + if(!file.getName().endsWith(".java")) return; + BufferedReader reader = new BufferedReader(new FileReader(file)); + try { + JavaFile javaFile = new JavaFile(); + TokenValidator.TOKENS = 0; + TokenValidator.MAX_VALIDATE = 0; + PARSER.parse(reader, javaFile); + process(source, output, file, javaFile); + }catch(Exception ex){ + error(source, output, file, ex); + } + } + + private void process(File source, File output, File clazz, JavaFile file) throws Exception{ + File out = new File(output, clazz.getAbsolutePath().substring(source.getAbsolutePath().length())); + File parent = out.getParentFile(); + if(!parent.exists()) parent.mkdirs(); + if(!out.exists()) out.createNewFile(); + BufferedWriter writer = new BufferedWriter(new FileWriter(out)); + PARSER.build(writer); + } + + private void error(File source, File output, File clazz, Exception e) throws Exception{ + File out = new File(output, clazz.getAbsolutePath().substring(source.getAbsolutePath().length())); + File parent = out.getParentFile(); + if(!parent.exists()) parent.mkdirs(); + if(!out.exists()) out.createNewFile(); + BufferedWriter writer = new BufferedWriter(new FileWriter(out)); + writer.write(e.getMessage()+"\n"); + for(StackTraceElement trace : e.getStackTrace()){ + writer.write(trace+"\n"); + } + writer.flush(); + writer.close(); } @Override