From e4dd9ee62d35983637a5a3a1680a51b6d8abd2d8 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Fri, 7 Aug 2015 14:46:22 +0000 Subject: [PATCH] Added Configurator class --- Zutil.jar | Bin 6164565 -> 6169928 bytes src/zutil/db/bean/Configurator.java | 162 ++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 src/zutil/db/bean/Configurator.java diff --git a/Zutil.jar b/Zutil.jar index 9d7194d6fe08660224287baab85f430b42e3bc1b..94905a2732dc3eb3e7b2e63c3c4f7dc515a1c8d5 100644 GIT binary patch delta 13171 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 delta 7763 zcmai32UrzH*M?a-_wL>WycaHAxzT`%C5jcXDO2BRq|Q4>q> z#NHBH6cl2vy`aWe5MtMeqQ=-2j9sJuJG(cCU!LdBeV)VY`<|IOXU?1{yZpTWAv?C{ zAv1UBBzXk6`S|#_*#>${H*1n8hQ{bccC;vFZq2l`D(Wi6C z1rs;4+mc}-B-Sif>aJz1d32QC3$(?G{)A?&dWt6zI_J$?a|0iNNVIo0+hBeeq*qHQ zG?%tBy6UstY^Phnvf^wLBnSKJ>b{ZkZvDv^TJtzLK<_2;qH3c}^<|6m!#LTuiq4G~ zD@RhqF>ax!7SCD%+%3$v!|1a6b62Jl$Jw3`3zbWvuMu z%o!?o@_1on(pcG|C&-H^!%%gaHd6L<_8BP$7>ZcT_Jl~Y;;2#)k=ZeP^PHPugjG84HseRqqx7!*l1uki^;jRj^)Xq z3eLG_uBC2;U%^gwvt_(P*9teCt4l5U=D(b9et65W`=CHhWcVpPsb*$6Y&7Vi>gQ~J zM(ri(%Gu}CPmL#J!VP_;>KQW8;S&G}gakpVK&%iOBp4C`u|q;3VUTc01SAp?1&M}K zg;ayYKpc=)Ak`r?Ag@AVA#sqJkXn%1ka$QPNL@%hNPWm_kOq*3kOW90NMlG7NK;5N zNOMRcqy;1i(h|}N(i+kR(iYMV(jL+Q(h-sj=>$oEbcUotUWasnbcJ+-bcghS^n|2A z(jjj^dO`jL=?&@QbolVR>H0*Rp3U_nq^LRkHJwSH!|Un~XTIg3v}_LFq@&>rc&Kyi zTrM*muDu22s`-4EKu#!ky6gO=L#X!pBA#kgE6)eqyo4tj+Lk$JW&4&F=&fKN+2CP3 zl-exgA$lKb0nnIbJc3eI;E!_|51^r^{6i>v1&?Kgduiti-i>AN6J-e1UdbD<76$~d z(wLRJ4(srn0m@c!3msX>>#^4_Rbpzb;?3BJ-(P0Dso!INE9I<$1@&fyE=lVB%%7rc zCL0y0CU1J9kejH~$vr6Jdv2E&yPFJU_V)d`dk(F{oOkVWFQ*$+J zy_(xu#~|vvn)hIFR#Aph@oM;Ojv%&%w_z#K)IpT*IOt21QneZ;8rRemLbukyJI^?> z=WrwOMLgMu^-0U&&Do0jG(U%@v)K*leh%+0{ocq#T{BEp>Xl+L(a>D@RM5mlt;@x1 z2e)#eXSqB87pY zjit}KxzNM@Xnadl*xu7c)y?A#rR;PU8kdL3tI5fk$6K?Led%c)@5DSasAE1)k``x} z=-Im%!02x=k$L%u+r&Y1D4*+_1Bu*XOGlFY17-qQNO3=aC>%-U>yZiC4~W%s7g+QI zZ^BM|U}!o{G1XMmjbyd~TBnE*Xm%ohf!{m5IfnNtn0;YXgx zY|{)d%!!P!I}!iSzph}Ku@C1M;QAVqO7p52lOMt41qMBCohd^2V4|cAJc4y!V$h>D z@D^jYm6lp(TPon%%CEQ-ok_E z^aWE8)wuv`oi-!b?TZENpedVqBR24e05#~=W?q+FJ}LlbHA{>dYsyS!nzI=V3$~!) zno>dA>ERY+wf`jnf+%q-#&+_u0cLLHud({~3{bKa>G#?r6HPanqsi|eqS9{*mRN^v z7;^2WChETp*%0q$rYV8uDB2&PS?DBmY?4BExA7DyCdf?VtDCFR_nWvW3aQZEto2_-)!#?E(aUczYVL2MIf_0JVFh zRse50R={hsucJ2-opaxysjcL_}7$9*Efd4Q72D7h5in1};enR!Rql_AnUzkml z`4cR5`A{&`saUAr_)GvR?I*KLO*dmAyWGJhleV7Zk@2KB?957M)vE090EH*%4t=v)pyeO&|jWWgh+Is+_K3ZVt9v;Af z6kH^Ll~NA!`m9T_0R7m#!=j9$-4R-Vu_i(a(Xib)qhWF(7G|ST1I#Yu?b(dq4DdjJ zj5`MCc?hF<>yZJL9OA~MS)9~Tp_@z@LAb2mIfP(&xa+7kbuI#OlXT>ug+;ucG{I9x z)#yQyYxPXOk3k2RD83jQW?Q|qQC2aJs5r!n2Ed<+enBD(4;M^tmKG&SI~}YqE0xlTz_A6@j8+E@ z^CV_=7{GCaC$J%}7@)MV9B8z{{_9C|j_?q+wT7XqeH6BuHN)k7+%K4_$4Ag(R$PTH zTpwQQQ4GFOErb2^D7K6dE`WEAB$g0wXufYHM_2ML{TR2q*P3-0SvC0>PLxM=sOT8) zD4lyvre+=FIJ$NO7SoPn-|L^CQz10vI7XeAO52Wez2b{!qGQt3}PGPm?oJ2Zy z;JOxsaevq6DYvg6ga5Yv^k7^xl=|xtEjk6a!usje1!JQpg0W;&FupYPUD-@$z5luw z^*;@l(+7$Qjb4N}X0Xws{4_$$U7*RYI7H93%MCSzk$w!swXJ5&_bom(q+@=KH z4jWrZH?9O>`{LtD%-IqgD~oWg5Wc{WFEu}loX*AFqB3KmAJ1Znf1X@Hw_xdC8esoo zq~VscF!favj#hkW#GSe=n42M;=~qvFn&< zM=9+@jP}1TON%%&ui%M(Kj>4M%s3sHr z^a6R&`xkf}>63jfYTE_gL>jwaN5K?$5f{u62VCg)v*=;qIk=!7>=P~`!3P$)lxIt2 zAG*qLs2>shwo2FV{s(ybwt}9?P`OtW+WUWd!pxpz~%Wh6Y}SLo=T0$WCi7!@@x?Mdf?{YaBeRj;(2u&W5pa+QXmq;QAgZ%lJ>wB|`Y zu3}4T8YXmU>}0qoL#XsB@5m-PDu5RyU&GkSYbcc3OsPr>ufb4MoQ^{2@-@8FSZnFX zP7SWRu8w+sG)|xa*LnEgEw=ge9(iN&R7?U@**tKiubyoLLsC=vvNat@M3TF&tqb|dhAS15&dtb-fNST$I zUe!jKw=r4KgIp*(Q&B3t>HQ(9emz)MI%ujlGQ4dW#xr_6Wt8z0W}QgUe;_(h<=Azn z%~8yBx(soeIH`h8V%M__@KHH$%>Fgm0L2TG0Q%-G^7@Z*^yi#n(6tuf^G=gnia?x}cNUjv4f}D8E}s8~@;)rO8V$nhi=AIqvdS z(*30_G|XvOkChgDr&Cp_h7DtTa2LZ}vRt9(o0MRxc@IN*YX!Y=4=ESBik9BPXT*S9 zg@zRioCeGMO?~LT-StQBQu8l?T(-)oSaW1?sMbt)i?R3`BZ)%8|$9?Ff>#L zZ?Z8?K{{yk1MH~k76HO(pAL2!)jvCm0o8uUW8Lde*?n9(mYzZ|J_Et*g+`UBrHYNt z3Z~lO3dV;PTvEI!{t@W4rw#g@M_m6DM&d}8B1;rnSB9Z)M;)n$fnK42$7pf5loB5! z5atV%^%(D!M=wz6W1c3>xTH|s`$`1mJjO?kflshMe}0{^o?x$i<+eh{pYU3L+x1?~ z^qu7j#XQB1asv;2pYl%9$;S$@q>!5R;(nJ6rQbWK{VwVMm1bK2UGDgTmTom z`q#4;1vj?@h}Sd|z5X0V>o(9;6QARtDQt%42r79FyPhrZoXTu%voo~r>}osODQOYe zN3}YvO9%a#_V>2P#)8s4YUQrk*~iI-?jv`t5z9+4K+S#@vvKn&7j>?r8gv}f5?Qsb z2AKaJiyzgT|JU%AGE}VF-O!aVts$%3(*P^pLLBrDHoDbr5-P4pGjvlVtv>73OMqVN ztKRTDg!Vqg+_m@6BG}6R&;Sput#rG;h03PkOKi~ui!T*>5z@eSU3?2K&5tfmv{>n^2NsyWmu8n9zyCtnTzY%Vi!OX=p_kT7nwhCn z;V&OeEMpQ?_eM0PPolm)n6!_*5x%U+1~|9K;!P*L5&6MWD;U)XXlow~|C8y0uJaGO z?&{@~>!UShCzjJSA1y`7TVWw(i={q=<8y^^^nc`wF}$;!1ZPF50;;;0PNoy}nIcK4(cP!D=TowD939di7 zg!}m;OI_+z1yoNn{5pA!MwqpB(%qXD>gukBQ(OQ>tEbLo=%pd$7TV{bM$&u>_;?vJ z-0Pl&y2x5bX~<&>&66?S#?LHtUDncAnme^tv`%ccCrwkd&dlsX=M*i4CHYe=i`JFl z-Z0Jr-y#B38sku7=#~ZJIv=7^VlB0*@D!sAS4pi4Pv#0INre*$(JC!$s7BCXRjVhp zs-~kDdKv_m5(1FAr(!8R0Co@6qp?9+C~Xfw5a%=&Achw9P(3NKv+6~!24cp(XjX|< zx~Tq?CFq@rmFTm9$gjwj6^vEXvCx}Ah}cK11)a`Tw-se1C8(N}OjY3Kjue%``(Yf3 zVSi;zZ}2Rw3%y?jd&ROIv{#gS(#U4j+OsyjsGk+ld6Sd7O~YYe)ta!0NX~Zfnu!q@EVNZINla? zIREA4P6Fcj{z$fEdAEtw_Hpo5`WIDHeU)noU*7N9e$J%>WW zP;Q+^gTgTUWs50443k#&-K=oUcu~_o2>!90T7+v2n0*C}3fJ1OI;&`lC~K@H7J+g{ z4lRt(?9{M8RgLdyp8~S%JVEzlRW{Q72(1;{x|^CrYQ|fE`2Np|ex^?%wPx(kpJ_*= z7O$TQ;yVIMIY>$rHoi{}s#JPTZAeq2T=!z};wT+1QYrqT8bU{+(4AMYj%+mgBFvxO zg?&%IS~ZMD2J|_q(#FfGgFc8x4ErCavS{p9TcQz#cTNg`FSXYU^2DE*r0{&~5ARil z_Y-d$^b;0 conf = new ArrayList(); + + Field[] all = c.getDeclaredFields(); + for(Field f : all){ + if(f.isAnnotationPresent(Configurable.class) && + !Modifier.isStatic(f.getModifiers()) && !Modifier.isTransient(f.getModifiers())) { + try { + conf.add(new ConfigurationParam(f)); + } catch (IllegalAccessException e) { + log.log(Level.WARNING, null, e); + } + } + } + + ConfigurationParam[] list = conf.toArray(new ConfigurationParam[conf.size()]); + Arrays.sort(list); + return list; + } + + public void setConfiguration(){ + for(ConfigurationParam param : params){ + try { + param.set(); + } catch (IllegalAccessException e) { + log.log(Level.WARNING, null, e); + } + } + } + + + public class ConfigurationParam implements Comparable{ + protected Field field; + protected String name; + protected String niceName; + protected ConfigType type; + protected Object value; + protected int order; + + + protected ConfigurationParam(Field f) throws IllegalAccessException { + field = f; + field.setAccessible(true); + name = field.getName(); + niceName = field.getAnnotation(Configurable.class).value(); + order = field.getAnnotation(Configurable.class).order(); + value = field.get(obj); + + if (f.getType() == String.class) type = ConfigType.STRING; + else if(f.getType() == int.class) type = ConfigType.INT; + else if(f.getType() == boolean.class)type = ConfigType.BOOLEAN; + + } + + public String getName(){ return name;} + public String getNiceName(){ return niceName;} + public ConfigType getType(){ return type;} + public boolean isTypeString(){ return type == ConfigType.STRING;} + public boolean isTypeInt(){ return type == ConfigType.INT;} + public boolean isTypeBoolean(){return type == ConfigType.BOOLEAN;} + + public String getString(){ + if(value == null) + return null; + return value.toString();} + + public void setValue(String v){ + switch(type){ + case STRING: + value = v; break; + case INT: + value = Integer.parseInt(v); break; + case BOOLEAN: + value = Boolean.parseBoolean(v); break; + } + } + + protected void set() throws IllegalAccessException { + field.set(obj, value); + } + + + @Override + public int compareTo(ConfigurationParam configurationParam) { + return this.order - configurationParam.order; + } + } +}