From 9cdc23051fa1be3603fbd70bf0f7e5967ee6a7ab Mon Sep 17 00:00:00 2001 From: FrozenCow Date: Wed, 29 Dec 2010 02:44:30 +0100 Subject: [PATCH] Reworked directory structure. --- dist/DynamicMap_Fescen9.rar | Bin 43881 -> 0 bytes doc/README | 3 - misc/CacheTest.java | 72 ------------------ Cache.java => src/Cache.java | 0 .../DMFlatFileSource.java | 0 DMMySQLSource.java => src/DMMySQLSource.java | 0 MapListener.java => src/MapListener.java | 0 MapManager.java => src/MapManager.java | 0 MapTile.java => src/MapTile.java | 0 TileUpdate.java => src/TileUpdate.java | 0 WebServer.java => src/WebServer.java | 0 .../WebServerRequest.java | 0 map.java => src/map.java | 0 13 files changed, 75 deletions(-) delete mode 100644 dist/DynamicMap_Fescen9.rar delete mode 100644 doc/README delete mode 100644 misc/CacheTest.java rename Cache.java => src/Cache.java (100%) rename DMFlatFileSource.java => src/DMFlatFileSource.java (100%) rename DMMySQLSource.java => src/DMMySQLSource.java (100%) rename MapListener.java => src/MapListener.java (100%) rename MapManager.java => src/MapManager.java (100%) rename MapTile.java => src/MapTile.java (100%) rename TileUpdate.java => src/TileUpdate.java (100%) rename WebServer.java => src/WebServer.java (100%) rename WebServerRequest.java => src/WebServerRequest.java (100%) rename map.java => src/map.java (100%) diff --git a/dist/DynamicMap_Fescen9.rar b/dist/DynamicMap_Fescen9.rar deleted file mode 100644 index 3ee06a16af5667527ddfb6ff1a7a50ccbed563d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43881 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 z zEP_1#rRnmL-WH(}3`@o-N%nNtH31OzvQbAde~4uivjgrjmc;U-ATlw6PzzFufeyhT zlholmAzBNwM+wwp#V}@NHH1@wNh%XbZR_%mF0+&7_GO^2;d4Rqm(8!%TM9FMD^tkO z5`OxojMp%EdN1Nj;h7l%H|Ulw%DAxUQ5QicTS_O@ytjVwZ;KRFew}3yLutEGPbcmO zk^}+g4^MJ;*_JsUj95~ux1SlHpr#xX8=yO~1U=0u;2dEYjV0Nrj_UBTdKS(2UZ~5j z&QDjBt01w;kq2f06lF%7(`SaBcadC1aXkTbm#*Vg64 z4RNFImG)!-9%Az|gGw1vWp{#=toV@kSl7Y&&q_T)LeEdN0^EDzKB8~z(bMn~Mok{| ztO>CFPJ7uSV##-BW`oQoIDS~tJ>PDp#gC+YI=Q_B6YH~I=qNsA>uu49W0ix=NQk~D zL?q#~&nIY~gJdB>oZkw&ZDV1DrAk>c)*=hszp}o%7?NqE5~(&>ZreW%CepW#13 zv!k2N4$!WV`=I(F)LDUVWZdoBNBQ1}b3yOIS zv6LW^5E7x-Ble%rhwZ@QUCoIOpoO0^tTpxyb$QLq@!p^wqu#G65XB1-pMq2vzV^Ep zc!j{qXS>X#Vn2|GLMR;mj$PcKmyAd!a{b#jkS3>Rt-$D{bd zWx)XjMNmyz&U+t3a*5*IHIUfrb^4LFbiXyJqZad|G#hmW?pTS*@tz@S|Cqff?icxM zK)r_;W1}f1XNZ+OLVJSQTUlLowj?zs|LxuAvt9hKI)_k}(#clXQ;jH0!`tRkq>0q$ zgWBzAP<{OS+yZ$4Sc%72MD#tilee+8rzSik%?>Fuh{bw>T?R!*BuZE!=|D~}`N1qC zA`*PZR~`=#K2h+EN>9rc4wwCDG*GmN&7GEYp~aee~2%9cU4KZ_4$dr#l^hrCe51Nz2h{rw}+1! zzt*%(>(`S-0TK>7e3h3ODU_%l++7a(G6Fb$89kp8Q>AVj_RnM~RpW@-T2>s#SW>** zn5AjxAfq_0SicFl5~t5ZHHZ2*$0Pwjb5jGExTxCWzsA;Jv@lS^o>ltHb@gP}l(Fgb z8jyaX(oS*rAN7_RGu$!-x>wNOp{*@pT;C#eJ=Y4TRdMpEl`#ZS-cV$11J6%dB;hJl2^&}N%7 zeKIP(v#xY!bFra(HEi<9f&D0)36?Vq&X+tQJ=( ziWQD(Q%$ zGQEv3DEA@}GIxKp$f|X<=BxbJ3a8#Z0kZ6_WCK0s1<4Q8)FPZTJ^jwD{p(i*6scHi zcZECNA3oyOv~^-`YRA#WxW5QynHIp4=mwSZqE6v9kAV=q`oZ8}R^O5f6{oD&A^)Q1#EaGI94@+diho|=;qPnVt z?xB5pXB2RQG?yZq&#(M(D<6q2k6@@--2E!NiR2PV`l#EnlhQtD%gt$xFnzx?aiVlT zNgFvlEW^HV=+?Wtzad%iAVe!>I_o)EylwSrp|RBIu@tbifwVFr!0WXB;v^n>!;&=SJ3R zwKo9W?LFF=m_a#a#6yv7>nqaT-UMfZDP@=5s|1J9D%KMzb1|uiCQJB~hT>5CCLIqA zMb)V5WAvp{LXHSa&Qf&XFjFPQct-^DXU&9q4^AKj^CBkb++Jm{d8vB<0UUbZkme#T z`MRjk%8+vnm{yJdqh>CyCA}4qsJ)Vm9gO1fuZR_> zPG`7#t6s+tA*$jj;mhbrE?&maA7-S_fa;|M*!AU{^k;>MC>v>}ceCv&`pP%Xz$9FF;SfdtM_mp=dN%py$BdIOd zrsnB(6c_#YZia!9Dz4KYP8STQG)}W}$vFg%+K{D+B>^8y@y7_r_6@i*Sj`v|jBF_O z#gZ4S&d;JbcuK;kMlK`4NIL6N0#RCP5ibOCJG;#|ylp{gE%0nKdAb(-GAeNuE(Giw zY+lsDAe)-DdWUl;@wE$dp&4hB2I(~E1B`OnDR z-=Bsu<%`2sj=WpC=Mo_OH%=Y4xWdEtZKoCk9ufmEs7d25wwabxB_3~fv9+er74a!~ zqpr8mxLwW$u>A0s+&a(^rbJLs_$AxLy3>}P546Ea@>`Lfjmspj&_fWu`GHR+o!u8k zc3O9$!!B`rmBwXR5+V+vtvs45-(FDnqfCUYeVog*M7cv*whbIXE0r2GSYeC%nWY%{ zu=C6BIs5tA&yNJR+>w^d7Y+wUPSX3x3ALNjjNBMGH9>Vu!Y}^X+2_2r&3A}cJ91_y z;}k8MJggfuDmY$HDlKsx6G&UW|#MxfSnTzZ| z!>UEg+%ukWzh;^Np4(Ll<6zs8b%7oV3v~v)qr!i%17Gl9^HG_cM$mPn+!WrEvk=1A3wTcDn zc%#u%ODh{@V<^Y6s4z*3Dvf>mCd)rg{QQ(n9ej0#eln1p@FB@FbAS7fe6am2u5gl*0%02hRj6d;JOt{z3}YPnH42?@~&x5L2b@3c%C zKJ7P%;SR4?ku5&=rbGr1TOwlS_F)W7pT_|LoC?X}htXKJho(H~{*P8*kbJc2ShY@c z9n;{~%wv3PcXT!uZNAl-kQS#*W#eESSrV`Pbums6)`#%CWMzERlqs{dsr4p*|MU0m z1LL-#3Md)Lk_!)F0cXxFxFWxT1hx!CGqUC#c{|%s1 zShAOpJHr<_JZ++}ZLP-?uG?8Pob&>G(PrDe;Xb`(Uar=xkcP>pHk^JomLlWq2!nIo zC_&W+`YL|e@^u;Votp&ScBIk!mO$uU;f0LmellCxk?}36Ij05X%CT)2O341tnMK~o zil-I#x#8MBkE_INxc3>v+d~d!L{5-92^6`o9uyl^&5dn-;E1s9WJ?vF5*m#KMl#=L zdQ12o!D*!J;6i!l_`ALe(ls*SX?mQHJa3b@(!d;UDN!wE7zvebLgrg8R*&&_#q}RI z!4sFQ0(s-Y0fK_l$Pt0H>N&&QO!VNe#{RpD9~k2w8l(PW7m zG79?S9{p)a=$(r01y@zh)jp;WGDcjAb<{kH?8r$OrHmuIYh>MQRc)nk90j+kn&y&3 z-1dENddNKM9LxH%@7Gr;3KU0}$&c1J_?>@?Uj!S>YyoEYhirxW5TxEH9tLVt(w-{U zLLRHFz86>+tE@)z-I1hi=9T#2uT8-`G<)9WCXqo-R$Y7|$AH_K(;xgF;^{EqZ+}bc7JdODm8zvwGC`^1f$ZvfJfH_ZDBs6m;l4iEq$(3(z zkSF&{#wh*q7Iv9f0rZdGk;gZ&Yt+Ohnq2=Rd|d7HPT*jYH|ODqJkhsS-ufdILVA=5 z@hlrwL+?eJSEntmT=__(;K?&_0$=^K*_vT3<{>fflN9~LF)oF>l-7JH`N{TO$=&%7 z&)6YWA1j2BFNLZY#OHMF|XXV_!S8^xsSir6m9tbb2<8~cYw$g~a& zL0Bv97e4A2r~`?5*4I*($RJES3iUQ}p`I7pc5p6N%dPfr-{sOdC+qTceT~@-+oE&c zf@p9m{nv)~jB@P>QNrzFQK}(}#mRlU5b8;<+!*=GbPtO%>bW7= zomV+Kj@Bm%`Kk16v_Rsc)F{dZn+)Cu)9706|Pdes9Y ze)(`aPc;R>wSrDT`YQkG3* z|HTx;2bwwffBTgV2wRE3%zyPOf#pmTUU$H^e`3&ZK(8MT4Fr(>>#ul)f5L@usIYM4 zQ(L?6z@q<&UkNh&H>)wckz6Z5Dvuu04TC3wDGyzc+JlLD3(h*u5Wm_tH8;hUdQ>BG zm3XoXH&XQ5WaVC8tQPqv@Ff5}w6&|X0ViXyumb+r6Abor>-&q#aq1mRyn;!hf}^X# zi5j}Bhj<2H(ZkCCRn&ug4Avbhnhl0~9K^s)B7Qnx9~Bq~n>40MNJy9_b%_ISbK(-J zrDX)(ibmHH3k+Xm z#QagW8`IL_4I#QI3jV5*PZrPJ@3VFgI{9VpDZL~kgH2kgCLV=uh8*&<^Ueo!&RIKc zBUC>Y*zf-b&FcDFrr&@?e^SxyPL#zHvjowqH!ncO% zA&eW^W59jJjPGuxLF{gYEQrLIQT2RW)-y+n3;`2TM{-J;MoM}NCku4@kZHwdQK1lk zblSB^0@!eofQjiSPx$)z{45RL6q0O7_tVb(&rZ4Z(z@HKp7R43hod=~PPHF4Wq?Td z;uo#b>+hoL>bK&px*4Qe!}0fy&!SKaqD{1d%tM(Hqbb2b}mVszI)~rT&gO8{+tb+D}R2 z|DX^rzqH?m;ILL`I4}%(#VCe&VSdtk6kI2`Vr_}3G4lI2;$?D69oMfk)WsQ-D2qxzN5ele4u zgS!a*S?TGZ0O5Rj$#|7=md%Xjj*dtj)X=IkWN_lzy1H9h0pwr(JJ@UijT#7mZHHDG zamt9k`+H`RIB4KSoiwJqXz?)k^6~;TYt|qN>X%2k>Cu^W$Ue1B0x)Y{^Va<~!yE-f zmV*R|&o3{dm(L#TMdUjG+o@@3vpj@I@uOt8QINP%Ln8s5e=b&-9KAC1?J|txBno3C z3hl1W5IRtiWT%DanMdj(Wr_{k-AdMib>{&9SU<4%0TclMKt@L9i#TeV238TO^n4EG zShqrri&M~e9X#MSg}4_sEW(8Q`x^}N!@$e;$G!sx|046C4C%kFw&L;*S$VfhCym2Z z@?3M=aADB9MQY3}UY7S~emx^P7{G=NRvsmgO%KSU91o(6=$i`btE0)@9ARoC101(S zyR;+3K z@9J7w!o1l(TD69Dc8FP7S!tRF0n+oS+1W(66hN%|vWy_Oa{15rks2RzOh#{bcz7H* z5CaEGDf}AlHt!YeNj8YeTFd&c=u!kgvssbF$-I`^Zc?Y_2j01;dO`}#taXlI%t zrlzqzg(JI7jU2>JU+rY9ud$ssoA3Qh7HJ+x{JYVLhf&Nmg)Kw}q|kpnhX(iSfAsBx zPcu}2cP!%AR$;(4FTt7U{@I_$!-fz*o{1NJd)v-BY456g88m%fRPMjz`tuELxr>7@ z&ByAur7q@WBuU(XA$V)-wero>Q3yRp+M(x>+T$PBfS^jk>|auMd~a$^%X?cxOH(>S zh~aB{wdWSe5+C2*5U8N^t{pRw<^O%4hjsov(6fM~Q!X&14Rj2xv6(CWFOufJ40I=V zD`PrCM<7h&ryp62ZH9>4q8}!P&XB&~L9qI{MUGn#&Z(e%qWQxV$v<~`6?hyRrnzD+ zs<%&Rkl&x6p$w%QbtG`m#LWyA9%VL%wW1gOwo*M60Bf_)8cVhk`cD@uneTjFtGG*Y zqfXv`x)nFz+%OteWPU0cek)M-KW)qRZ@;eW;QPgv5OP5JOm+Zf` zj;VFVrRZV2m~1yLuDU!7L0@d#E^TbN1l~vY&LjGOx8b4ZwH}Pwx~Xc z7(K@G?9G&#XO8w7z09BuRoxQ9p$iU=WQQ~vCvK2YO$cxy#Df1H6Zl_i97nBxUk>F+=@ert zqU#V-Iyt@QWXy1T57zmtbb%kbs-<@K)` z>kb2J%n$euRASO!iz=12yNpR2FJO)F{-eguc3MWpCi>36J-hTB?c4x0L#Hl4e)qWO z+psEvc5yQ1+jdi?sBRx6?^|J45_w`-SaMsV04uuYS+Oh21JsI!mw*xl0nG<)#KkOq zg=vRVD9q$b8C6GV^e*%ZAT)fCCT4~fGoA$ojJaWT&#MRZUW}-}6@_sG`-pOWoEWus z7a#Fv+39z1dvBF>?zlbZp`=6QD>Uy{<=0>?&3D>z?K?#w{lStXZg+O0+Q;BkwF-XZ z*R$W-_sz@W80V?XB%5ydiJ~_;Bt>?1j)ddgritGM=uf^CE$mB-+C5OqKxz zU!X!3WwKGuX5HiWjJzrqmVr(NY1GL@dU@)oe2COoBOqgMGT333$GZbd~G`WGL690pC zet~!?D-ym+)o{BwxJfhy+U?#;rES<>2A_M8>Nv*|vnHcPyaYEU5Yz$9>#K$2=eHP_ z80CW8UsbEP%CC1f|F@Xo!htpA02BfzsJ{}Zf-uae(EkVBchz^W`)3rJPRRdYF#>M& zkHtt*lBQLHG4`FKQ zv$g285YOVF?gaD?N_{b(zzn2Aw3iai)s#SJtRYOUGA;~ld`HxYb#B-q-)r^QJo3&u zdiuzI;##PMcWjUHwrM^&TXiFm@7jGj+Vauqv?)c%kX|!pw$K3KCM<5w&lgETLoC)n z3-{dwK^FO%AQ9e$70{wJG);i$jnuQ*NpQZ^t)0Zg>0vuQA$3l|&-x9*W_^SXwzM1p zI-sbsbK~tUSID-psoApv!1h-DJbxvJ;i*-Bei03b6)TV^mdQkd2y`5_z)+?_0hiYF z?(99gVeiDWWU4E|@spbBQxc4ETNcSym-c9mK#<8xS^74dlyQyfmQth7Xnh_>bZ%xF68(|deO505yd z;z93DF}?a&>04uX25s{sc>epx(I3ycpZ>W|REG)tgz8ss+vDrIHMAZCpV8B*yg zq5U=%HEg$(Rrw6XAg42C2rb&*U7VtnFkCtrqlM9yL#)FNxZ@S}^=Tq{&H7KA3>lww zQALb3(9@Pcm|0I`C#w zZ^#9O==MHqc9Nl1;iXXj%YFmK#bM_(uI%^XS?3#XlPSjm4cu<`)@ZP$#mF@y@p#)G z_n*QaBFPkTiQ)?36#Gml6DrF;g(@(4pj_FQnAyeH@rg6kT9DK?qw~l>Mue*qA_F(g zz;ZU5;sak@W_HDh$HR{VobJzU^v{=JhWdn*JtO9nZkTGfQr%-KDuNp=PgcC4)w{y; zq)Leo>L$)B!pNxj5yf%$=chfMudjE~Nh4J|6yM(y$BV`^s_BWv1Nn0w*Wo0La7f~y zC?yb6#wSk~5l>Gel}GD3wwoKU%N{XAMCG%Pf!^{YuR1;`12^|TIt!wQ=LV$&w1_;x zXa(<({(HGyjy_PQZl>&42!Sv!bNhi zU>=>7(&dYI3Z-PFN~nQ5C+y(8kzZ1kqa+IrjG5Dh&GViDE5`8D1N;x!RRu<;+mCZ2^G#yq(3msBgVwXiV-l8)M2Issa@% z7liHF*OzO}wZ3QU><|(Y11quWD_~@iLMr zWkW2sX_5Qik{n`0MK9~D*Ptpin?VA1@O$;rQa za_rcBM~+Ia0!--M!U+~gGJJ-PKS|5}q!#0(g*2$W9WC^jSo0;eJ$@b6X8FH cache; - - void add(String key, Integer val) - { - Integer old = cache.put(key, val); - if(old == null) { - System.out.println("cache.put(" + key + ", " + val + ") == null"); - } else { - System.out.println("cache.put(" + key + ", " + val + ") == " + old); - } - } - - void get(String key) - { - Integer v = cache.get(key); - if(v == null) { - System.out.println("cache.get(" + key + ") == null"); - } else { - System.out.println("cache.get(" + key + ") == " + v); - } - } - - public void test() - { - cache = new Cache(5); - - add("a", 1); - add("b", 2); - add("c", 3); - add("d", 4); - add("e", 5); - add("f", 6); - add("g", 7); - add("h", 8); - add("i", 9); - add("j", 10); - - get("a"); - get("b"); - get("c"); - get("d"); - get("e"); - get("f"); - get("g"); - get("h"); - get("i"); - get("j"); - - add("g", 11); - add("i", 12); - - get("f"); - get("g"); - get("h"); - get("i"); - get("j"); - - add("k", 13); - add("l", 14); - add("m", 15); - add("n", 16); - add("o", 17); - } - - public static void main(String[] args) - { - CacheTest k = new CacheTest(); - k.test(); - } -} diff --git a/Cache.java b/src/Cache.java similarity index 100% rename from Cache.java rename to src/Cache.java diff --git a/DMFlatFileSource.java b/src/DMFlatFileSource.java similarity index 100% rename from DMFlatFileSource.java rename to src/DMFlatFileSource.java diff --git a/DMMySQLSource.java b/src/DMMySQLSource.java similarity index 100% rename from DMMySQLSource.java rename to src/DMMySQLSource.java diff --git a/MapListener.java b/src/MapListener.java similarity index 100% rename from MapListener.java rename to src/MapListener.java diff --git a/MapManager.java b/src/MapManager.java similarity index 100% rename from MapManager.java rename to src/MapManager.java diff --git a/MapTile.java b/src/MapTile.java similarity index 100% rename from MapTile.java rename to src/MapTile.java diff --git a/TileUpdate.java b/src/TileUpdate.java similarity index 100% rename from TileUpdate.java rename to src/TileUpdate.java diff --git a/WebServer.java b/src/WebServer.java similarity index 100% rename from WebServer.java rename to src/WebServer.java diff --git a/WebServerRequest.java b/src/WebServerRequest.java similarity index 100% rename from WebServerRequest.java rename to src/WebServerRequest.java diff --git a/map.java b/src/map.java similarity index 100% rename from map.java rename to src/map.java