From a8092ffc36cc202b7751b53ba420e6e5116fc754 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Wed, 20 Jan 2010 22:04:37 +0000 Subject: [PATCH] HBASE-1360 move up to Thrift 0.2.0 git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@901398 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 1 + lib/libthrift-0.2.0.jar | Bin 0 -> 187530 bytes lib/libthrift-r771587.jar | Bin 171994 -> 0 bytes .../hbase/thrift/generated/AlreadyExists.java | 183 +- .../hbase/thrift/generated/BatchMutation.java | 241 +- .../thrift/generated/ColumnDescriptor.java | 620 +- .../hadoop/hbase/thrift/generated/Hbase.java | 15748 ++++++++++++---- .../hbase/thrift/generated/IOError.java | 183 +- .../thrift/generated/IllegalArgument.java | 183 +- .../hbase/thrift/generated/Mutation.java | 285 +- .../hadoop/hbase/thrift/generated/TCell.java | 241 +- .../hbase/thrift/generated/TRegionInfo.java | 382 +- .../hbase/thrift/generated/TRowResult.java | 222 +- .../apache/hadoop/hbase/thrift/package.html | 24 +- 14 files changed, 13501 insertions(+), 4812 deletions(-) create mode 100644 lib/libthrift-0.2.0.jar delete mode 100644 lib/libthrift-r771587.jar diff --git a/CHANGES.txt b/CHANGES.txt index 8bcdfe4c242..2619fa4f2e9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -179,6 +179,7 @@ Release 0.21.0 - Unreleased (Kay Kay via Stack) HBASE-2139 findbugs task in build.xml (Kay Kay via Stack) HBASE-2147 run zookeeper in the same jvm as master during non-distributed mode + HBASE-1360 move up to Thrift 0.2.0 (Kay Kay and Lars Francke via Stack) IMPROVEMENTS HBASE-1760 Cleanup TODOs in HTable diff --git a/lib/libthrift-0.2.0.jar b/lib/libthrift-0.2.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..c2743536e1e6023d78ec686dbd804b52d029ad50 GIT binary patch literal 187530 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

A)bwbNUy6BtIK1SPHXXMuZ<5BQ*R+< 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

W+w}R4* z|Gmmn(VM_kpXXf#ASk20EBO)|XmY9uAmn>|2f#ypfEVlyg2cuFAa9)RZveSJe~0c+ z01!W<0^s*pG2V9sF(JAyhPf#m$ih?NACnrn4%Ts7XlQQuY?MgOM@qoG!qLczc zyKh;96sgQcsod#7adgc+qTUMVD3nuRN0lUHaWbli zUZD=5V;@GcFot((f4M(aw;jJs;uK4?g^8FZH#j0$Z4BYJbv*Szr7k+Xh_ggV5&c${ zT8C#@$6u9E$T~Tz@Nway(`q4#BKssuxK1FMhLxtZx!Q&gDkK{k07b6hvB!liKZZIe zJS@7(AIcwcd>upyJo2uz7zg-tW=k9sO{#Hfj3YrGiN+h>JG(w{>`ckDy|$CDiQ5mO zfA4!%CgF-}v2<_lpwFgVB!$Y0v*2ha=2=UAL~oL?SacXHuoseHIBlo>OssI5Ugt`j zYdjw@^<0;>WI+-Adz^nEXAJeHKc5hPM!~2efE}j}4U5BKtb}zO>SsEvF2c_rsATo` zh1(!czxE~B6?xqH^DMgaM!)EIkX zd{JaX|H3)c4iTz)Pj_i&!{cZSfAGG&guBy`!9*@D`NoJn2ZX5oQ1P4y1>z+pXn_ej z(yaF^Z}0$U);ke<;m~vBf`*B^+%BFq+zpoSF61JPZpzny>nuG5!LCcP_>P6v42?Z1 zgj?xzxe9UOg-9185gCGe=cpZg5U?Y3cDk#yK1YW+pnV?faP-8vnvojJfp z&z9^IcBE!CAKuA$DwXX?c|CkuPgo$2SypHIRtYiM^u{QB^}zru&0YjaB)qZ4IQ$eF z92D4i#8#L-b8WjDZ-QxyNkrJj9xug&W4@4%p#*MAlym_v2+@Ryw~&#o!uD5QDu~gkT0%&V!xo;;*wrx~%pn&o#xy zue(C!j?cInyl6yZ3-Np<#GZ(g@Gd1E04&*a4Md%k>In3p@bOqQf%D^2+CbQhZe)qo zhkVzlN^znI=8J!YqJK-8KCzwcohZQFWIC%D)N29F_KkxmbAy(-D4jbeNt^^lp0Zm& zkdZq+!ikMc$mZTY5KeN zKq$o6r$)TnVW2@oMFXEgz(k?D?>6OE=YK)7mr zKQO7q_0^=8FAdV2o-p^2b&TgwO%Dbub_Wb4MlIq477ch(F^rAp&hzF$%@B_;L5}8K z{HO&*RJ_iOtLLT}7L}ifxDofetWkD|7z{X98v^07O%{Yo9Yn~wg|lP%_H_p#Q|IF} z`#H*U$N@@8H-jX-H|Q0FXvO|7D@zDzCH^mMO9;@)0v}AQLxs>n8n41Za1FY@=}KNL zM~WDhljOg)Yq;Nmq?kwg%tls|_|J1K!J4C;JwOljd1d;+DEh^caMQ53Xpi7=0<)FA z?gSx@-9H2N&|}XJX&O{I|L}I<`7;^|$9@1Kb;5gr=l5Y$bh*U@@Or^{ZB=>??gu#8 zHP+l}OMf9u#UOKLAVCPwOSH$$5)lQy7!mr@z|7Y=ufZB~#e!#tHOWH96obn` z#~7o!%`nN+&y6-jw(prP=lpY94(<*CWfzwL`6gJZ8(M9D%bpf56k!{<>o%OSf5XVW zU3>-f*_Yg#{rM}a{dnm@nb?*6>?e-2>uzIvPp4#iBF7B4;7Aw&G(KB|bG5_n>U|(5 zK600qwDS&)*Jjx4EFwU$b2KhP-vn4~nbqV;Ft7iHRRc#D>)_Dsw;2Q)y=&Ebtl%qz zN^7(L>K{AlMmqdJOP3wY@&Yq8T2|W{eh}%ff@_+a$|-edH{4pPdc2^BxD{NW$nnTb*Sksmw)C5Pxs zO-j4Cqxhi~KJ;g&ew1wM;*jU^0Kd);?1xJq@5Y5I5|&(vxkq>ccdkCEePaq>uT zUw^AstY5&Q`}2y+*S=u<<{kc)|C-FN-IuwWypz=M7?7PeNb5e3NGT@>)mJ_G!TT-d zh!Lj}ð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 Jx(TDG=>Ho{!o>gp literal 0 HcmV?d00001 diff --git a/lib/libthrift-r771587.jar b/lib/libthrift-r771587.jar deleted file mode 100644 index 3988da771f5b8459ec56ec175cdfe263cbde2f0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171994 zcma&M19UFYvNampwr$(CZQIF?ZQHhO+t!Yg9b?DXFm%_gFn^ zt(vo{mVz`e2o%6y4tS0duD{;={Q?O90w61@B1kJKCr1A{2>_t*cT)%exNp-rcH|(< zZ&S1H6XpB-hpDWfoTQkjvI?E7*uCuZl#Dbj-2$vME!FJwT$2*RGV|_{)3h*>BaMX2 ztb{5+Bp~UG;Nq-kMFeRDWv5(fcQU8{ufhJi1@zx73>^%OElmH1;lBca^v{Ma7EYFC zF8{Fq8wwQlz~W}$008m`006}Q(O%NdMaj_4+*H}rh0fT<(AhahecKIN9Q7-vd2w=) z%rTpzHXxFxHZv8E|?^|7>(q*%3HSqM@ViWbG9pc%3m zh1>w@7~n*qZ8RG|-obq@L|yNN*a>Kly{oFlq)uvAklF33$GPu%dqMx}qe~kAZWmo~ z*sy{^4AEaTh)pMaKPp|B5nmKT4JFHwG1RpiVJI#8DDm*MF<4LK7Infwb40zUJY~z) zoidcV9cyUnIa8;X&aqAcvTpLIQipEh2;1q!45Y5&Sq)|8&WX7fcfjrN(-Xvg{G$ue zn?8`eB>K9_U3z4bsur?*G~3jqI#9r%I&ZAIpiCS_+F+{R<0EiKwRzeF9g!D^mH602 ztS!<**g&7OWtFq^&$NrW-zZaQjJG^~U9i_owB;Yj;CwZ>N-be!zRoIL!&cHY;>R(;n414Uf zX#Qp^v~=&*UksEXY0^M4dZTWnQF6}fe`GR#r6sP@*2F9o^TS5=;id8=m{%DI3pTE| zLW`X_uJ+)bUIbi9p;`KQRmXTHUA_V1Va(=#@pZkYK}@#}u2@2x>jW)vJ7G?G8W=(pnqARe)|L@pC@l zgKB5th7QjJW(DJ-fAaI^4RLqbo@2I=o0Wv2k}!}YEdQvGq)7)SmYx5{W~-Pxl`_S# z(|Wh54BUyyr>4@_v67e^5LW1Iaby-&?uavu5G?<|3F|vbRHBpAP&yA*dLpzjbU^4I zK<{dcQu31HygeVVM&r296T&V-nL=N={GdMb667(EOnz4(CeL%_eofT`V7Z}5#Ia&K znp-HrlF4#i^xeSf(`uahO5W74G85`QZEv&fyUokG`jU@StVU+lOG;qpb9E6FMq>0Z zjVP+C!(j*!svx;92m|o>B>X}asD`=A119xNaea28XK+8m z65G%msBX0zm&3UDg-k$M0kadrJViO5@K_*SsiQ2;ELtZN6S;q*!lyp)g`G)B(CmDu zqV|f6K^Xz{#rXozQm}HLfL;{3#*DqrL$QJ0h}-CmrW$Im@cRnuqu?BRqH(wL4KD%O z43yQw=8eknL~px;yv+}}KkO?$?2*73gNWbaNI&t!5=I?RBz^+DzHD$turu_};tnH) z-jHAUjZ#X1$_bb@i&J)B6S`VeK{KWJ22N02X0q1) zGAPpqBa(re7qxtV3mao*5GsmGqPx-LI+WlNz`JEkoLx&~2^&ix!Kh9;OneISrh!b| z#;-D(IKi;k105QG@eJV>2_Kqlxvj4fmL|!0pf9qs%*m->;>|1*FIpzIiQ`1kwOq{z zCU^=O5SDFhwF_BowZVKye1UD^_XoB-J!!-%)w2YnhhMB|#8TQdmw<;9t8SkCa-P_63 z8DI+#WE*x3u(lvjpl3*4>x;%+Eoq5z`>LSvs8KNgl_?B-tm%)g>6vEZj5N$n5Lt$i zKrmxJYH6m9welNtrIU~z>Au;zGISTWoGRC{d&WzybT)C6J`#H~>_P)rk&{Vno}ivj zK5gnZrR>OSCEKbzGL zn4FNGst^8rX@lcqe6Cw=rRT8wG!2af_65t^OwYDZA(iU#=Q(^tuj8knUcjsoP3roT zP5(?kv5JnJQE8`QEIs+{A>>`$9{M?Bdsop}8gR$QzcdV{CCV(^P2CZ_{llxB#`s!* z^U9a5#IZhFe&te|+nGQ@Cdz9n7n(iE8jr)-FrWl>ZF%{qy#^7WS#Q!JH%;&PEhM-*l3lanGH`X>RuE@qD5W@Os+= zt($Hu#60W#I}o~V?+0J^La-dk%MF=1D>@y~NChX~sdsu>ylcWSkUD$2NkUT^N7mj2 z5`LrixT9vSa@vc+uCQX@*>EE?ZacwVBr-8wqwCLz{9x43SrG$op2A=tNK!oM(7BMo zgFq$ZB;^8-p#h27_(y9G+LrvcnUFw6``7!B>dJry2PYLs zaWM=yn{qa*(+ti1&;IMSjP-OGn?Eq z2JlD6E`gC4n!K&uE{gOd%~6<%&7w|}kt#**5pBV)&I1%o4=WQoMDcUx(aB~?MuXIp zymOF~dD~SG+*>@tUFs1uR_ZK%VpF9b&8%W4ls)?+ReSyG;<)s++&aDBJcD*N=PlMyK1ajK zfk$2qKZh%8o$NP_UV9ywlBfn8 zL|Gf6P|o9>9a$>nQoj4eh_qPlK-&ZpY$V+g9mUuy=Ao6u9*up>pF@Zp;>_I!n?E)- z<5FmC`-M#eTAZR>o$78-3_+6v;e+K;DUbEoS0m6O?|Gqz>CIJCWe5vxAbDMj@cCG@b*gOnmav4 zIVF-m>fwgELo3j6Z_HsE@CquQ)_l!}5nBiH z1{1Xr8sQ-FdR24_&QfcXKyh|*7eqo>Pgwt`@c`Moc<`AZL^Xh^E7}(){VA|S!V|9u&ocN4Y^_$!U9@qy>PhHnq;4@Th#=I)F!;iL=w(RLK%rp zskvQ1bmsE!spVnya>Y6&CAIPQmP{b5O0;XYq0Y58@#*J9G=rxy}ke7YDem3|3I|TU#FF}|idItAXc90ZL z40q~`E16M~zE7T!(@UB6%v2*bh1D$)1kO$Mtd5x4;Rov-hL@$X8 zk*oU_r)bWWtk-Xwdo-rbDPd?H?)x^VW#Bv1zUFjEjLvBITrb<{l!|RQP~~nJ$INVtunNzu9bsDG(=&#jXoXmvk6e+~MJi;P##&=^E(tlLw7hi4$b zIjR_gk6j?ix!V`KLH<`>{Wo3}sKUC{`-aOC2mpZYe}T-y#Z=JA$ zvqeeT*RES!EWXk?Z5wom?LMoSH$F#Z`+Qz7>Q(2bqB6P<9~s3eZ{Nv0;^jjI@hjgo zRGDTDgzM#-ixYmhA_3N*xr;j`ukj~QO|e-1I+fBnW5Jy?ys9QlIyT(lnvHwFFT*w+ z(W6x0x!hCcmiYe2#O4qlI9il=qWUi{%E0bIjxFcUbnDA}X#{2TXt(ZuRE|Xc1%FQ$ z1XOxf$|@+MJJ4t+JE%K4dB$|5nR@N`S|YV0O76|Tkd}BO16;}pg=&}KP6%rPyB_>T2YEXSQ8?DW^iu-uPor`dP{m%dn4-zO+Q_RJUUkUFzt2yfA-Xqw;{tb zFaSU$1ONc(fA*A!sk5n*rJ;?br>WE5m5=JVGPWwp*EWyF8V#5wv`RuTs25#r4iw^U-Yd5{8 z&$r{cKEUdN!d+-o7)aEn_97#=2*|`Ms`j$oUMNs_m1sj^e-bv}H6f`HHaw~GI+S8m z9;KU>NJ^5?goNvA9Ve>5ap|eRz%i&?2AQ8WQw=Uvoijhi8sl;qt4(O$2xhHy_)#2B z=GlCm_I0b=D;yU21{hq&7+_EEg4i3Ir*=1+sR9Yp8D$czyD6Z%hNn~)Wz1=E)ZIF4 z$FE}-PjIk)gjy3bNNX3;jkjC9Q`ro5V0IudPLOh-;0ot2x=q$IOqxA zeJMK>d7b`8tj26Tw!BzoyE0xEKB4`YYHN>asVtk3;+3%Ne9$nRhD+y*bIRHdwpe@FF|y==gw{55aHsmt zQ+JuQJI*U@3#(_aUsP*LH@J_eJU?%Eedp`L<1ota&?mcYCT}s)Pc%F@2Edq4gl3q^#qWDAc#t6wb&w( z^*Ma#TtBaqNn2KlY2Sz%`wjkjx`Q(upPCk@bN<^9uexhOx;V+Ss-==njosSKxVr1qdH{wnOSM1Pa;acO4My0F2*77>rO*&x3*% zj;4!1=THs&j(zt25G!gtMJ;O~EAtt9(|L^{SjZr1>FMU#86n;5RuM5ptMhV_a;`Q~ zjC~o1UEq>HsvFSE>2ZLxWt_HVy8*5AnA#wu0J2%FVLm>6o=VudH4KA@KRe5pvU?`r3MM@tqQ*V%0|U?Z4P5dG)S@h=&ZPr{VkpaMeZ*Pa?F1=Kz&Dt!dRFj?nv z{cWN}IClI;1Ku8ng{1cKs*~vcAoxu|w6hd2*aF*&`Rrky{c&@i{xv>8Y(tg^kOys+ zR%^2jHU-8SA&vW@YT;6HZ5htn)oY*tdvJ&I*rT`Mo9x2b6h|mLB9i%}nr{jMEglKV~uE3m=kA>=oi}~#8#`=O(s!!4O`1sTXo)7vxB>z ziM)Ak9HfVlE#$W})3Np1X4`Hl+gv}FqH7;`7NBnWV1j?<*~YY3?ezqaY9*rufw?~fpbs-cuHGeteJ!pV9SPH->+$9F-XJ&n9L3XsOoBEU#Nmd zz$CeLko)0Z&*KsTl0!>~4s#MEXDmvt2|i8rIiNLQHLeA%xf*^4jZxxc>c2)(JuRC8 zpoXy_#z3qiV~&Ll*;{b6^9=UiUj2*Op+S-sCH?kl+xPjuq{L#DrZy%@rj9=>olI>_ z?Oaqm9R99;V&Z4y1_e+;=1M}0Kn34VKvB?HI)A1UBnKA*jtu%z5W`T?rdCA69Ze30 z!0!rUnpZ-j(QRcof(jR@%>%rJ{(9Jn4^maT9rGW>StG>Duh zD|EEn&0(;YPAYU?XF1uSfsCb>J&n_9G?2~hlp8L7_N+TFbQaHFLbNB1C;4SMQU~!U zoJ|IJ4YghOm0?A<#!Ouh%(VBA$B$guc@#{O$r&^e2#$n4PPmCg&X5qMrIrVfy1x%* zPua@uuH7RMr`}nFLvBpq_X*}XLxfrqGF@F%+5CXqPiOV|du>YT?bko!y=)%RTk*Ym zP`>g0UsjQVlfAL2v$Or**_Zo|{VE?A7#J}ao-3G~D;S*^*kfSf`{DAwkrlW(lA1VFN>Y&O*lg%}v!YUJT^VB++9w~;HD9RWW_ zUo!>gPg-X3l!O5MVl)$H-vm81BTXXWAehnt2-avAAOh7_&IpgQ*H1~!iV4!SAN`jm z#wG?P21WpYVrXJuW?*Opd8p&S3pN7Na3;)*4*#<;^p}ZsHXBT+^8JxX-ZZ@?y|GX+Tee?N6>_@nisM+d_aLcgbRvu`1)S8JX7>(zH8Wg~1Mw#-{rnUvU7twD(^Q{iV9y;pdw-|JE?Wl z=TTD}V`xUidm4g6slOcLUOpIi`sU+1rMtG~U`RMq&pp%)^U^+peN%s);qPH#XI0G!2@@x`5UygqEBK6cRGp6yK~P7 zP@$U=+qnKv%(-NI2szr zcnVAb^^$|ptIiN9YxocpO^eAd1(A}jyP4`>Z5#J7s8pJ>2(R0F%5lM}3)pn?M{;^B9 zwJl9KL`S+v_5)sK$^~EQG>SYDDNx!qLmESinKriqKe=7mpag0rx_TX~3MIoh@_NN& zew)>rsO8=ugok`7@&(%s!jx`DnTLAX!S=*KP=rZ^mz&b?Sc>nI$LbP+M8*|5Kfeh} zU&7`rSu#Qeasj#~JokY*NL_cSmEs6+l?+J6T70l5N|&9oj=`GzXS1F}c3xpo-MxBX zqicYTMvJFv{N$A7RQ;66k#SOo%>`50sIH(Cx_v_TRP@IWwLcPtS|v$cByVCS6rCX?n0kE}m_HnumZ7`9;5RiqE%GLl4;OLvKk zytR`WK3eq<>hvif4%uREQuzWY-vaWfC=TLchDI{AN2U=lh5h1#MQxIR1n)vB^(2%S zoS`${Zs56P3)W+&Hoa27=cTP3OKm#yrb(h5zQgX&dDJ9Koux5NQ)iaH8dFJMQ+9-Z zBg&7&fIA(gv+ZT3G?n(+%I{q8B#-kXxP|_|M0cKQ)fSbP?yB%t z+gjPF_{Rf17J){9C16~!pq?iM{xMa{5=+fNW{;2!sN9K z`j&L!NsidMD@fxUeL4dYRx^;J?Q#vGneg#5I7Yjc9`J}a`n|r~PtXW2+#o(!B2P&4 z6$Ur;P_R632VuP<=ekvA;>4{-h@0mk;s9;|AA~2zhj-U0(6tolS}`J?71On#g{?NaXuHf1{5cH7{jkb(Ak%q_uh)DvTS&4KW)+ct#6+ zEhIq!3N^f%0)h=S`YdUUEt~x-Fsm;Me!)J0KL4*r#(oX6X1^!lAD&mT!8|Js(;T>= z&eyqPA368jPd1O&exKfeyHq^5!0G41-0id@=t^4&M!nGH4Fn^Fv83J=d(^OQtcNb& z;|MhE@THZdMy&pQI?P+4xm0k_8w!r-T|^w|br)>U>Rq;15bK=2bRz-0T0cAAVF=0H zHy#yO;N}};f8RWlBgA#mm8v|>knJ*(6nPX`=qR@lz1b+1??;=y-4EqlCgphM5vG$I?s5qH_Wfjt}XONL^qJi4UXO`Y{ zdzM{g&&`avH2#kDT;ef!zIBHo-SLbf(p;*Q)uy1sTyidnw2su2ju98`H;phOh{XiH z-tz%w)L~!M-aS_y z6K=BzkIOx2Z>w;L_}ZcmRTihDtFeb%Dub?7QKQU3egLYk!LMw>r&1qx@A-69C1$G0 z6sd|VXOfPcqaEua&SiQ4#Yt|Lr(Z6el6H(;t7si9W+}YwAL4fJpvmUxDFo8Hi9l1W zIYTL5;86FI#+K)MXZ<;0Sg>K#x#?SBWkI!zim?5N@WKoOnzC9s2>NP<0Wj1BQ6wG< z;G_32PN_f*3slpY4SI)J=z|?Pk#q%%M3Pk8Acohy%q53bjHAeeHCi(Zi;R`9&d7X@zkW%_LG zk1d^#_#J8qv(0<-*&iwWuvW6kiHYYRmxGnNf+7;J32f4@l8e6t@JA<%f!NRNp_d}V zF%XxwWDLUP(4t11Kx)&v+>=ymdg{H8`+E`>rt*2#>4{4{D?FQ@jLvY|7 zVk^16z&A{}HFUW{EpW+Zs-eE#|E0h-F|#a}@-2I#zhy7W|4Z~zGqm|(`p+ROC1LJ6 ztwI>>v!xcL3G_oq2}*PqfLnI|i9sBSdsiss>GJ%D9lWkcCc9hJ_5z=MQh1 zO&7z+h$qw3#r#Xg_t(Ya!Tlv}KN}RK#<=XzaAHh%j43uXOll`46qsv&{8|cd#iIl@ zu1)J{IT$XL>2D{3*wK$x2zmESa?@Ts_bvNd1u+jAtx9rn80|j<7oFbYJ-H65^vURx zm(U|~+&YeJWFfyS9sOvqig6R0hvJiqN}_F2To z&0@l7EiZMlZ^;R+wtC%Lcl=k=B+p zVX=c2`B038QED+Gn)I+JZu4llbXl4-l_^pap!t3QeL^+aa zWjhl}sa#ML&*%w*Y^HgN@x;ta-(iT)w}x8r3^L+2c!0=VJcNOBB&}hxi&#O4d+-rY z`Xb608_FXxxDQ?8dxMIC*86y*_<17vd5{>OOW8E%S9RZk{)^uJR`C`gnR_Ptb~C}Z zoBwmg`@iW;#?sm4UmUC`D?KED;Dc;zys>8WG3+_7tzC?GTk0OZsEi^qq1rlOrJh(? zj6INdBnSfk3E-E^5fRB7(F1dDc0A+Nb^m$$3bqT7rJAnMz!;_qZH=}985{jwt!?2z z)G&gm`in<|tB*Qcy(C3@7u|aa!dLqV?U!`VZAi zlft8FgPTX@QWrY>U_b~g_*^yHpz8|-8Gb|#N}{RQg+V~k%qbF> zJV1-xIq34XSLp5Vyg-U^kBu#3!-zXJs~ETbfkQn+vL-I9o|=g?jX|=~Na!*7KO?>m z3%f4zjd;vA;{Ul&@!yEc8an(N;PT%q$_F?^i{fstEgzD+K+&q(iYI>$M31E>Go-dr ziJ~GTIPWMR-TemqxhQ(6G9W2oYI>9X?fCM-+q<_1m_wK}2&EO)Vl85@HkKFnE%-uU zmWv5xl?WwxsTH4R!-&Sy$1?0gfH(LtzUqlC?J_kn_Z-5W$Pe`-c*`Y&pqPGHA|wr@ zZAGVLv-0U2PO$4vS8}}Vr^Jp-s4nJKMD3VN#pP4*Nw|RM3BD5a+wTm8ucZp&QE6bS zJ)3DME2QWFBRS*F{tRtDqz4meQM3?Jj{`}W5J+HCWXn^sm3-vbPfIzA>PN!&HLa$r z{7G!N+YMw2vDWCw1ZMNxApNAh^rNIHc9vPts&}Zy*b@m2a%U2Kqne2Zl+~%Nn!!ro zL&tC&=9M7kB3Lm=Gxh^t?SF}L$(}D2e^~&y{}1l?-t+ix?vNf* zK*)}1V6?Td{>%JNl1&gB&e|uGl2?qEs=eFbxlC%NycNAM_dpm3;_t^NwJS7|H=>`K zy_%h-d;8n`$2LvZXk`pTg|0$dfryPhI@PgqBx@$P0GISUkBGp4DJcu9=v>$d?^;D{ z>#0q2M2X}`;*Ta4I@5?r;UmOpeb-#KlVFffl0dQwz?zD(Sx!4kIUUon1ep*RE|5@- z?TaeKtMm$dD^r<>&cl!C^@D0;2tyt93=H$rZ1gGPP1hk;8pUfTN+|#t?^O_>`v? zJZtlGZ%6wJwqXdL@kKbeWUFC399?7Ag1Iwz09l}9+Z(XuDc6vPkwxKHgH|g`#)fG} zC}iPrl>>(cNK{QUX5_AV7EH`Ag_?yA@So?ue>!ub@i*Xc-+(jxAH?$AUHf7DFPO(D z%Kmi;K&RM?3f=&-cmj)H^$2m~@2T_%v}cx7*OxXIZ)ZL?@n9hTHR3pGg@Z8;PtA6- zb6?Mx@bUfH0n{nX4h-!fDO`&?Acz$XZ7$RKrJ|1Z#1o2p5Ww%Wz5l2IUqL3^NIu4< z-b;-!>$j?H9(oY_gYV#2Q#?P=56$)SW{mAnkhXU-uRgf&f)urf6&9LKJ zv?#Q+qqCvGeWM@qE!<$z#h$U(nT6EA0q>1|#0XOa5lUd#;f%|l{M^FE+b6XsD;E8< z`tK|jDRMvjl{@Rj(943rN>L7ii6j)nz(phPSQyDhC`Mdr9-!2!`Uvi17$RYMv<)j{ zfW(&_qGg51@2^#+fDBt@(P*ZfOi%=K@21(42+Ztyq;&|VBmc2N{yhW2{*MlGaI$x? zH@3I=mjsAsq|w0cdzVuAcLMaEBi%n9RQXFMnvF%(#nQ(4@71#vHyvel6!4q-aUl@S zfdHVZ0S6IKR1k0is>pmK$9Xj&2!v=zGQot_%&Qf-E;rkjmM&H87PXq~n(d*h9=DdR zmY=!zz$l;hLnpq@*PKtiZ&x1I$c-1Ej?PuPhC{scsd39FYi>_1NCs*Kxg(m z?Z@*U5(VmK_pDqx&Us@UeCD;WU0J|@_x!ncojIU&2dU0Z^CL=^VFzE%{sqrz#%E) zSwMC2F7^QzDY87cjmT&}>9;2hkQD^cQo84BglR8UH9nWUzU+E|`I4taw)>^s6 zl(p9GY}QY=ZQ)z!Ai{)XsnuHPZ8LdJuT57w9*~=yz__hZu%<3j@TMA-R|!^-YXAj3 zKPORD+1<1cznHPoxXDO2yCZEa!MO)3G_3LPrg|#$H&;g-=S%HaFiS zvu;i_?_?Nl3qX_D)Cvu*WGC3vPByoww8+P2gK|P@lUP?wnpl@Lqguwajj%0sqfCKK z^4(71>1V7tDtc+mSr2+J7juXp9|o@{OK>Jjda&e`#-~Az%ZD__mM)29%5s;ZuufR< zvi}j0Y+03F!94wws)yp~Lt-sNFKJ{ZmD(F46E=~xq+43jjGhSBg33hX){!#pl;q0Q zDF){sfCDP5EiD3Ny)Kf%A#u8PY{;6fQt#yP57dkPx zje)?3<}{)0RS2^?1*S#x$T3r8K+-b zGL_dg$W@%4O_UQot3OuLH8aO#%lEAc{Nd&VJMp-F^g;aM!A@ttFG1yg{st5&K9#Pym zl_PX4!q}rbeFAxyW)^MCF_t5jJQA5hefpS(F^oI{`43ZvR4$WbMzxG$Db)*EK|c+O zR_mvEKJi<_q;&jfRn-d-Ip7nb~rr< z`atv{>D`hWrgl6%xH^CJ!K&S#H(2hp-EeyF_WtaHS-UegXzhSIQ1(ICdt~n1-N1IC zZi8LB+c$Xb^xg0~@c91lgR~CRTVVKs@I#jl;9HRR0bRRA4(waNPlIE-e9s)-KzxvS zf$~G-+@0NzXJV+{B{kW z>EGe;0>q25H^-~LxTE3t@s1-uZh{KGzW$k_%hvOd0KVz@?z=D@_=M3#0hcz%M`3fG?(ZYYS2W(j2F{&>Q6&Pe% z2Q|96K9^A&XSxtYOSL8Yi-75bFVO|1{|qG$?Cb?d9YQ8tk2b__BFZZZqGQ*HJbLr( z3hF;s(htE;;*X1v3L?E+q8m;hP3Y~_p^;?4l!%oTjc}mvizk_MPMkxsR-3F@zn3H= z^2mWlsQ7mA24~IqQDHGz!D@02txc1-@pGmItU>;`N+HVHsBA@U|e(}G|Sm9h#4+JYcbr}bOR~!Yi3f|&@U1}FnQ(lISj7zpm%z2tM zbU((Fnd1sNqP1w2I1PNjS^$ibjFR8Li;pBvA5fm&(_As3B&W)>a7kflf|)^Nf|x^= z-gzeF<)CeR#4T~N-l1&a29;I(WU|tjjcjAO^UUQTsxt(PaD~CQnHrMAk&s0pi!;@z zOx~JR>cJIzxm z|7X$nbxtb!Gb$_3@&4D=J3Kr8$+2I@3%{N3z|5EPy|kV05eIQNl_l>-rshYec;C^& zwfh58oL)t-?1Qx(T@cDzw1Z0 zp5jr7Z-I587BXL4`K^-1vq!~>;|o&)84%tr7JUu!kIeFu7g9Yf`czL5VC1QG%~_;C z9;@YHR=kEm>8xQX+2C&fW+~)VPe6+nvK4ngbJlC?eKXo3i(|#~1y;+#kOGl(?JBa3 zZWe+SkKrF%ZO%=(S+JR>H;dsKWf5|+E|&YAf?9qqOlh;zP>bM774By0OqnyIO@Z&+ zVd9}=Q`K&=_(<)vrTwESJJGtDsk~mW>^5%;j4<=med~BIh(=x}c z{tE-WA4R~#L*iksu{$&pFc6hHDRQRH3o2IzES$(;XEU_eAgZR$8N()aemq#*k=tSY z{plT~N#i4oswo4D20W}O+;Efddr56qZStJti_DyYs9|0p9mv>hQj?5>X2JDC!sPMe@Dq0;3UQzFXiXD(!`d~9ZLZOu5r7rJK{D3zEp z#rs3d?v#&MDfY%BzfcP+C3V9|~Ob5>SsvXA3%>8(RQX6gbwCI$|zb zg$~)_`!|)1UXEX-09o$?A}h^iOFxfp<%n4lF(5lz-|d3CNkt}ERB&QW(8`F|u&B%q zI-IEP^pr)TOWLI*{}eAt=EF_-BOo(Lx@tu=;Xuzi#Oa6>-j1IIz+!v2sz}K*5Q^2b z%);qmGpwX5++%mS`^GWO1+N(s{g$1>h#=acPBUgk*0^c`AZAcj4*We7WFMXz-AZ0m zQQ>O5$RI#78DU4}3w32_BU!u&U);#NgmdBOzHGu3x~)cFYgl!}lwDW58y+@;Vsl8+ z?(|&W?4RfCWGH6=*G9usowGiSJHKFlU>J-cj{Zb|{oCnvQsb^tI8=KojRs%Rda_<&K+zO$YG^!6j1wcY&+8}Q z#K2JS-larF*fiwXUb?@tH4mW=_CvX36Lb(BgQctPycdesk{jbsYbljaE%12t_OwpY zpx=^XX6tp}Qg$vf(>TgBvhpsW+HhGCZe#_KV5>M71}?D=j2EsX2MqG8ND#*nCU51)SkI@#?4$k0gYQ*l}m`8HF9+a$A7j&EQQJ> z?TogDJ2*#YP}s*hBpvQKJvGYUmyA2tB+^`7L3HOwU|DLH-p+uzd~)%Ao*};G)3F)m zwI{IC8>rftIYFDUG^nC)4!g=;%!{_IRV;bDItQNzG<^QZayhKhy=fge1Qv`@_gqT1 z^?1n*5-!+D=v|n<8P~9Q=-=rfej5`C#nIRel>3!$UkK2VDW5so)S$bL9225afgn{Z zH1Y!4%?VqpClb1F2I`sc^aQEJpFD0>@av~WTgc*s2E;0^{E_SF1Mh3EoPJ5&nM=Ig z!kNb_S8j4+1u#B7O(TA0vLsZuZCk!VNB@Zrdx~LL_{y37ss4{wG#_p8k{wPExVO7iWq1ut?o7EB#F^|%-+7Gz*NeE;Ajnq5l87;4W3rc;wVAJ;hB0mu~X6R z%cG>G{PF!LU5+!OcQJ*reUI9PUWe?8Q^??YYV5w4r7l-%Z&w+!x5=b;O`~YuTa))- zMwh8TOneM$bam;VKbK-N)lLfofl&mMbnC{<^G@4s`c*arGHV>c0gDk1DX+&NedGsMtC7@kJOG}Qv>MJRO z-XqCQY$kt3mDc(CE+$H1D78ZBo<5$RYYUEWk}+5p@#i@pxq=-*TLSoOihK?ad7>MV zlp8MgUK;&+im5pmr+k(EF#a4<^^^IdT*+Vi8ho)TjJC+TK~ipaQzLL4(ae>7PeM1D zLq6|$3SW>0oH5Ida*xb|Au!XPHwL8GeAoNi-{cc$h%F z@4ew1v4x24rX_MPi+tKH)p7Z(j*%^n zQWk^@!S0d;NajTd+1oD0nWuVRj8ibZ{(E19Tve6T2*0&emt$Kt2MOruXrU4HDIHf4oF4sC8i)JvG1=fC z@u^)qZ`VZD)ReETJoB4Yt3glWVIrqiruktKJ93DZTs%Hu;+TrHVP!~O zH*EA}s)v_{%WdN6)rcUlF1n|lvp9~w8jj@HUL_G(oh(Lq8DP|-CQVa|UfAT_F=6GJrtXg|X$zn9Q%Yx2zR;S6|9pEA z4#F(J-h_HblH05j0U64W*;)OIA&=@m#PJJ5EP9_V)7VjgONm%WFJ zTZ+gNA6MDDC@PmeiF+)|iHB2W?m@lBY*qypV|>_Alfla=APG6~+IfYMKoK}SGe`^` z(iWdaI0k43Qn!4`ho=cc8!<c2x2M9CoNDv@kCNkB$k}@|%R%L|n$pR#T{KkAb8&XONIqg*AqY!>V! z!)UaUT!KWsNG{tf`W*X{^5V%+T9kxtyr7y{@yefw1^E2OP7GBL<8~`v2y!do3+Oyh zH1~&Y9>*MX@f$4tRu(^Le3JRpia+$n!;)KmL2hflO-kG=H+#meppehS5pnUG8S7Xw z))vPt>7y}@l9wC3BOIqYI$P&k#;(ALZshKfV@b7gx?^z3_ZEOc#er)bQ{G*OVphO9 zw3(p>P&?3r0Ai)91=#}g2KM@XDJD`a ziX6h4@qlKSTT+I)uaA^Xh9+B61Bb7JnD%JjRYrKH%rXT^9rvdJfu_Bud~Hs=!`Tn? zz=@bvJYU%rUdDrI&e>VPxZ#!Q1=V7&1+C30do)M4_~2-@fgr+?`!$z!QgHwzz&V@o z##Q4Z@uj=w)YCB|Wn%3pFOnBB-8XpZ-2df4l1x7@^@@#xqF-F|;06(YQoS(>9+c5C zgIJOP{bM)~hLFt&l~b=YMd&^Bw>7kicc-`3XIP@;3-d!XmwQgNdjDNg^R3Xr`iZT1 z&dR#^6!eFgWIg^=|Jjj9CJJp!HX~qNy8bB$}M;0@h{a2*Eb;#)Lwn1kiJn|EGnBY3B4-q zeA{>UC9fEv_lT;lJa#WB14k!p zbY?w{We*ilJzevTy;Azh)mTHMsNS%E0`s&`| zsK3aLwT~PqdsSoQ6J9q}(i|l50g+ z>nXMoj-K+khLWd52r1hDiy%TAlvCzyC_1I{pT8-zpuHUE3{OlkrcGm@oXw#7XP;#% zWm)0M+|Ep~bb?`!3pJBTd?pb#%wmy5pWy4vHlAqJrJG;31S0=g;Y#T^FDc4P>^q@9 z>Y2jqaX`}_9?>p7#nbA2ENpUlNIClXD7Lnv^XkOw6mLs96hUoKI>(wz%Ie0ud~IGF z*OgzwT+AB$`H{g8&X=%!mzYdYAPPQhGzwqt+WD5buKM+;P)IjWJo;ui1XY3yFd&AN zD6}f%MD96Slq4I~SOrM!pNcCGgxWC(4R{yfmmWbLv4vt30`Kw?nP#fC1aMlT6rtOx z?6XK1{=;Ab=LB`9BzdQWru&|oL5R&TEh2(91#67?$ABs~b1hK)h|`WguHtsHD%Ddd zVle)oc74RecdkEbNBvS-p?|^lxB~xO^0d@vcu1k}`b$v-3)8;s2yj5!1^KJ?kcuiC z1dpHrSjsi+1_-Z*B*pm-enu*xOSR!AD6Y;)IWN;E$u>%K0{{$OA*%NYGz$ZtycZDr z+yX&0H;ed?Sc}E6%+PR`1aglG^=rA{gK`;0eZgs?g3Cf&wYDq56>(h+_;q;3FZC&7 zfF1#2gx)8}4R=MeJMUOH!zuY<(9a+^i6rRaNgo!mls@o(&a8FfE}tyETPkngH5<#;;wM(^%?u zdcwZ1J(Hq5fw(U$Sap36DyT~1a-W{eN^hSWIX>t4Me;X8vcSS{Qxp~loE^>vYsE}5 zn>(j)25Ya_DT+ub=_!y%!=2ZW?{8~})oqK6Y!AKdWlNhAhyXE4$N4ktFj;G}ssijP z%?wJ#k<&H?DrdROV*T^4bv>ig8YlcFHbrF_oeuRz@;B7EnDCW2)e6}3*x&Q8G4mYE z+Kw{>lEu|#&bL*m{(m`?ionO}vW)CZ!SB@JQ|Rck4Q~eiUWf60jy5vZ^(nsmnHL&^ z|8pbo8DYd_Vb#8IuE}wcQ}@8oO#!VEF#ayEK7fzxBI3g2qR1q?mSU5^8x@a4jv#Kx zV6;M-2|Wh$bJT1EDwsRBU4G#`RFw}RUi`RC^Z zUUNa)l$l%}QWlx`GT2#mw@4~nD#ROYCN08teHPO1mjxa;VifoAK>1czr(sr^kOKLv zx|~8f$92iH1INl4r<_}+ZbJ)n-U0-zgwwd>l@09K$GZ2bALxZuikqj4ifR$KM+a4+ zrqp)qD*i@2j;NJSG);bx z($-ptJ=Mm*sqAHu?o45ej&o&R1G-~)(qVZ<_y6Mw$kd8>Nj|#dkpQZ54zLpll55N z@a?^!*UsJb?S&1-(fY|&40A}`adYuc1$x`QK@7U1cn*J~h zjLDge+nRu0{x81mza<&ZVTptK=s-XlOh7>2-+#sb{4?C=pP4=XdrtOm-TdE!vJ`D7 zAJvEKua7NUduC6mP(fs2WaM^aazReigv?;Ve!+NH!)wT-pO7SDva;lYg6)G=mFfxl z+B&w)a@HndgTdGp7fT&{wyoBkw(gy-o!u>^d~U6knvZX9y&U#i!J~w^U0-jxynU~^R!83?W{CKT2xcimg;YFRbvHkx-{L~ zr`0L?-Snemp|<&ND5+@CG^C4Ty* z9S6Q#g@;Z0hb7^89|dMzEO@p~D+yE|kn#7ZZF#?M3~lnqjuBp#qT${+#=+Vpp>)sR zpJrVLA$$bR>03UI-TP%j`1lBRKztCsxt(q%423<{u}Zk`pFtdsxby%JI^xcK(*AnH z5vXoojKq5XczGJ%cq?kx$oT#l{J!?fCW!A35`KlsCb+$k5^!}AMST7>O>hsuk3D%O z$`+`)llaY>ACMzSkTi!FCFXVBG2rWql=sP))I-0K6aECx2)1NnwYJbuZ)xpp?QAiz z)PV?y9`>*|musWg=;2XLTG_agydmtOAA8c{Z@E-)@ z!Ur8+KWk;>V6}A;a)ZsNGCCh-n_3>z%WG(O&*FESDFH z^RqQ<48e~S)vJ1C)x+AuzO6(6>7v3?K6w2J=&~4q?JzEyU4NUXP7?;rt;@pKyxCB=|XLi<&#Bx{c5V9-`=dhUCy}f+% zN#Vl4{SL03<=0DxDQP_$%<%2&>!q)HQ#+V3WXxwk(n4cPt{;o{nwN3Z3On)RZSL~kB&>-i-l#lV=}?4m_gQhDC^ z>A^w~aTc&qYCCGovQ5mx!&7*-IQN;!#SQ%5h8T-<2dX)mo&#dZj=H|CI(BRr8OB@H z%`!;$<_OH&tl?T(3Z8O1tDh?!yP7}#EK*VwS6J~%#hmZy={e-~O(Hj!R;V-0Vw^_0 zWD1RKV(=kKfvl9^)-k4;3{1yS}rrtkjV&87Wumd^^_{gG(8lbW~TYUS{QX?IMr^g)$_vQhH%L< zlR#AI(kGphKrrR5BAbk7i!Vr{LXIPkVgMFLajxH8dw>9 z*P232@T$qbP}!++6QOVbO3w%Jrxb`}ZiJEd;;*lr$YW@Scy)oKQfW|!IE;4kv0^Gr zc9OAT0!*R&uclc|{<8fiz6EW~bE3J;8BK3eeGkOW&5xvVi+XH2i5&JCq)X{5wo(Ag z%1}CewtJlcCONjTy#?iYyT$tCMXpfc$WnWb6>uPk!ekrSTS`DK`-xr0NS^m8f6!&AFL-w@KI4fHHseV!D}t1>az^j`1bDX; zMDder&{jbw>?@kryV7fdQ0?3koL{nl+4aZ^QxL(i0x5$mSt+=GA_ew67dEp8@C?T@ zRQp5aeWXzD4^}_qz84jzKMX}L3a{-#{&@n}_d2iHLcRI+r|*_Q5HBp?-9rA%&yDwG z(+XJcT(2B;X4V#)8)V=JHvsUD%E`&Ltd%}huX>?i+=(RAjYv&iB_ok`VND1xfstGe z&OVg*2>tPj!~q9EI_%2T=8w4=c&QSYv!|!NDRFMb;zbdH^)tWmix3B{C*Ru4CZKCW7y|5Z^(4H%KKOS(JFueL-c#$l{ z#b-uE!IuTwI0cNab#owUEv~gJ(EJ1N4XI~#;0||SWYN;Ivcq?dvHJS6;2s@Q|AIk? zb1m;Uzl#M`=Be>UMZxC4E$$I&;Jg#}2CuNI(}SnosP>=A$f_tu>AadmShx=o%?-qQ zR52^nQ=o5a)Z4prDiNi2G!5i^{E%Ryb9N9Ox~H$eDtkIC!vzGo1G|K(RWNvQnExgA z8xT_?#nqApv+=DJZ7I>)Tg)^!P;D|cQ1IWjQ}ZcW%2>0Dk;HPoK^2yWBmF!j8qmLg zf>K43Roaw!%_Hf_z-P6#ryk}G&W4o=fL~9z_~n)kc7?P+1iRKq3x}wjrmY^a*bpelOJ4`cr0Z;4RsW$ zU_er^qr$V7Ig2fDbYNB)cGOU9-hsDW)kd(Z(gCbQx3*R+@fvC7lG1XulMSy$$HTIv zV+8M&2O0(agcVz1(U%j1Da$k#Ma`qyYoE>ho`iNAg`WBTf=32ioLIX+42R+F|G^}1 zjE*z*nPlog+240b4XGZ72q7V5jYYJ4cK}~-^W(+yR=NjAWWez?*Y^^^75^WYA(FrHz4n1Qin>CK0q_T;c(D4_4V0OsS;XNZ?fugPu zL9s*tHelprUlRq@o~(6^jRupGU08fp&o|V`=MA)$fSXykT`2lioRaVg>Q8d+Kymy5 z;MjWt6=Q9AJ~__+wf* z+!CpEv^ZsqqeLG|@9^8cQ>h)tvjUK}0uV3cwM4(U(i6avSmlklX5o9@2CFQXLBW6# zwRGoDEg`=&N*{51Kcj*s2j?#Qyg6-~k<7T5;r!2;{banVP(ui!5i8r^NU$~;;F%F4 z5N>{4xLFlJ|4||F1UYdeUv%k_6{2NJ;JAHbxq15Yy;_hO!42&SKD%+NTSz%9QukBo zdzs)gh55;!tt9bJKhVG~@_Tw^MR_4lQzH&cjebinuJ1)eJgUym#R7d`lx0lMQF}!! z&8L+m^av9X-XIlcKqF-aSEEDCdt;}T?z-Ul;`5~uPbggWS@A14uS)Kpv9vVRG!-4f zb^O}Ygz`l>d!h>q?%J0;LFKdV@A#v9i#@CU2>IhcIamQjdqT9km<6p1@FY`<%V#7P z30Bhb#e#W*jd~3cKifOY`VD0SjoV zclkuU@4jp!AL$_v3nfZ&(G!p{z(ja<;bj>H{*+0a^!M3em_5PVIX;O(zXqURd(M(v z(I{ehrt!*l;B*`ZjML1JM;`uW9d^2dbGVyfP5%@|yBAxFb?=HyJ} z$!3)-+9`nS|ybVn-eo$dA2RD>Of>llyF zU*y|Fcwj#eo*2J5-VegO;J*Z^78}Bg6i?9&dSDNz{B|FQ^;iq>!_!APYhnu~TRXN3 z)7kOj^Xl_*;}hikf(5~}g;vigu4u2DT~(~y*)Xb*H!9$zRLGa6&j-_$UUow&u+^fZg%Lzqj75B)XWwz|Lw5aB{aUtDSfANixE9Lkd~vi zHG~jU=19#jLnxr33_nw(ni>pjibakE2IdHU%) zm3Z_iBaY<)Q?SNT;E1*6;ErwdsQPEBl7!rcLs;+7Md$G9ep+08dag$3l^E^L6HIx?B}h?#4qN82VOW z+1=o#AG;bYotRCCI)~ay$ed0mNEtx3w<-9`Z3m(j@#BA$cCPcGTnRB6z#Fz`GJDRny=Y9=>s+$%HO3-P9c zxIi9h*9n=aoirwVd;Y2l+YpSD)}dj16Z9}Z4dTkjD>?_y1=AtbR}1}PtK%=iy#!A3 z=|`jV#+wYtAw(=(46y4l&o61_FSyqvu(M@OBBAHe4UkrAir=mGjF@2o-sYZt?u=}Y zhPV#V-Ixk)(XP=nxF!U{YO#)j@RRQHqY-3d5y^8?AUT6i1EpIMral79f1Uu)e!tjn zgIrj0^DqTO!(NI=)_ILpJO&e^??0mu{b>37l$&8^44xx0upDVDBB|;jWC>yIU$$tOcU@?Tgxu z{?GWfYJDB}%jj3RF;OJ+lid9Vs>In7`pUjgM4HSol6?0#P@@!2ob`4IVX5<_EvZ9^ zAiHMs;K7abBw)eAD*C!t*z=t^Yh446$ncg^>0qFd8YEaKZwh_{o@cf2&iLguMFADrgg?4vdHL`DbWyi#0%(@tDVALD-v{8k3*Z`#*jYI$807>>8Yhc3rr6M9hZ-2Toy$Gp;VFuFDKdSr5dNc+c;2b zWDLzZbgjCE#Jb@??Mt8(Huy4O`UatPIbUz+-+8-8@F}RL- z)SRYUl_YcbsgcHyi=r16R&)fNXbvrm;y1;MwLAa#%Qj0f9622dkOTRTnKzO0?+MIb zmyc?WSa{RxLEoUI3%QsAG10MvU&0cWn1drt02zy$A>POY&K|U?!3_FH`}qayZLlo$ z+4UZjO33*oHtq02IZ6ZN?rY~Xi)XDGyMra}{0Y0H#^UTK>5FNQk**zCfY{%!LePJf z8UiG%S6GZl0piE4+>;DC!=Rg<=3y^3TR;jR16>5JUCb45Xj(IWsGL=}EEg1LH)npu zuOtxMwtevZzB+%-)kDH_Bib}0*&K3>OIhB+w1@1l(-fdd7lg?2=xpUgnf!)w9|Ufl z4b`zg!&IMyZd0GYW8>ZK3L>LPMsctFc}eA3l0E4^x{5efq|cUXeZ#tANm~9Zyk!S! zcQw`=A}90auM3=KXqO1^`%5UuCy_5@JRj;P4)g&$m{Tao@GPb4+Tws+Io-k5&mlzL zF>)&^m#C&Ri|$9$wY+ZGm^GRvsW)uBTHheywN{JHN9tya?c&U)E2YXu>}E@Wyzobn zwd#+R{_sv)@eNzDXkp@wU7aR;shkqaTZ^5>cL>y|D;c^TlEUuhpL3deAFIyatd`E6DH7v&mCpXAEa@v z&(03-%F_h$%pQJmW#TcG-hpVHW#e2|y2}&lbjSS4k2F>mZ~o1zo61W8SPI(oWE+C8?%lvnkl?1p5aSV@NHk`n8%1j#PVoe&X41 zMXuM)WntCV|3N+dBTPvF$wAKbn|9LsHo8;%e}>inWpe+gmQz_zVL=g*&wbrihROg< z$T2}rafOavO;kxxn30G{$X8RifSf#Sb3mW=Lc5dv6KBikMhL|SMeZH=lX8Ef6D`{C zes?K`4+B^SDkKh4Ra6?WiO|hh0{cZc@g7eIW4Oopz(S zj&hd|$mt5_4n9_cQg4DDLrHJ0sk}KHcfG6a8?7TST4}ase|M4JpDUMTkbD zrToBXBQG&P4hc+Q4T49gVaQ!r40GADZ3=~G|8HRq`w&iO`4s2sooCc?W@vB2v@*_meBj#yD)?2V zNOU#Wdk=a*6TDL{<>)T7Rwl3FuMo!uWlc57IknrwpTs0k<;oNSe_iuD8zpAD2as;J zo{^$edXNsra&=`gyiljT>x7V|I$(NNmcIEynX^L=3@L~GR zx?O#vm;L{PTxk^r`Tsj(n(|M^RAZT4W1^wqDl88|pbXBSTK`8rBAV`hGo~%wPTk)# zCNE^@SKyB_3*F_s@Valp)NDGdon`WEWCG_GGdvw>JWIVTQ79ftC;6l7Ul!VI?|@PU zti2cEu>P`fo&NZ8?*NPFt4?9Au5%SqoizF<9$ilr0ch-ws~F5lZ1-l>IM~xlLd1%* zyE#e40^PI<^E)EF?3pymL86+|b#=@^i>W4ukr@~@d+Rd_5bpt{M#kx=7`~CGI>qU!aSUTLhd3O!V;(?MO0(tV~tQ)Mg^R}-tYkQ)nZ0X z(MTIFal%Q&`Q>_iGy_6;AHtW&6*XaQZUEIfk`U(}ND3%ZMJj*|Zfo;kFlbVbND1ikogvWuKwf zvyNRrZ=69m<`;#)9^nlKq3r#=%T6XhP5qEUqBa=MW?wOCl80dwVH`-IvXywHq43;bkh8W)f zf+7Y7X?}6fTl-^?Q>1;{OtTPTcYfWlIPpP-A}uvcXm&E$H$(*HnkLh>P8wpGVI21v z^{xom&m`QKiSMl`t|S_HSke?KGu5tlYrsu|Xaaf!U>ph+nM6RsO+Z+}m_1c5)~UwT zK7v22g7Iez6W(l|Gb+J_`t?||k8#8QUprNsM{rI2yGxV4_n7~<;QuhK|7*cj_3V*_ zQ29XDYiuxt-o-0gj6;UdMG2xa_yt+(`>jAuMQ}_?*2}B*=+m>QKT-VyX5_Tl_!l5z zn8Z!qMTU8BNRwZGnI)z3Jnd&SdSCrrHn@5MQgx&Y5aBc@3bg4xYdwWek~r4igK zaFm~=9(!9Q81*pvX*q`UmqFkJ5-nc))OS7D=#8QqT*XrWAa%F2cIN@dJ%HIgN}WHf zU5bmK1`#>Nbyu%F@el9_B0^9c!{`YF0R`^q9z=X%KW_rjf7?)B@^_DP`a&&T z!$`ml&c7k_=`(5b8=-UGZrA@9p^8S9PXC5bIRz9YR6cv|ixpK%xJ0(DxIe6U_b ztA2JX)^Ji=&Cvng(Eiw^bTc!>cdBOy$!L06!3Y@tU%i5QWpizcg^s)0UH0?rDT$hL z0PpQ?=k506t~WFNPp?mqK1L@a(OCi^9M*biXlLGNU|8|dqF^Zr#$cm*?);siKo!`0 zFo0t>4(wlUunxTzI%r}2F_(QyaNBt|yAqF(b25^{6kO+i88zJX#&Tx0F6B0MHocf( z3yt9>S%wM5cne>hFW8{0)?>KPSSbK=3HsF}mVClY3KdFbldFEtZY9e)CtN_GSwJx1ivD$*-y3!9Gb(Dm!n5YtlO9c3!)@Qw%0#GG1 z9z>P=0=*%(CY0nzrk|==BI-k&4GRWh9OSB5BR~F(evQ8`S94urKUCw%rT3UI&g`b@ z)Z;Oz(JrOJ&fCQ1m$r9k3P^>DR!$C@qRqNkw|2PdFy-Bdx7Fa(;1Eay$kI?g0+r~} z(Ay1-*(t~gPynbO&`)%642Los{Y2rdu#ketDg`N|;9#PK#(t<1_k~1(MigRcC+(s= zGBPy*mSg7ete$YdMh6t1kMa%cP>3F4JGD?pa2=G&P=V~m7>}>tdE632cJAR0$LIT;9fZXwQ-cQgKh-B8%O&;UD{>s?X8V0 zOpU(tJdJ+-&wS_X#BICprG2=!vC}1hKEznTdF38zrpq>>!dCMG^(1%`!| z#HL@b!6v4*fMF+wgS?u2_!+1tA%ZDKt6u0Z(4(H^cruHn*S;saR)F6ZxGweqRhG6W zVXz>QzHHYRT1;2k1d0sB6a`JVfdt%Lj5G)7go1RM<;r)t;BuE zdV>4{RQGWL03nFdAt(pnp}4)}#X4!{uq-$8RG<@_a(iH#f)`ki)kI39bLZ3E{8d2p zC)DE6gUkR%cWxaizw~yuAb+s@jPN8f7PWfheJtKk&DS6_laC2glD>_{*NK?cFx_X_}Kz&^(O|bP>Wk$RTYAMBgOXKE7lAY-HVb3y#!r_(j(bcUa+Hv00ys{-ggpIA2cm{}qk%zjavu=LO-vZ@AUkFg~h7ivld} z?pJ2*QmKN(2f({{$RJP_9ukR&r122(zrgG2NMUG$N$uF7TY9Le9~NKVQL78)jnQcG z$W^P>6yBPPuhI-I)|a%cw_BR4fBAf|xIbQQ*2S-EL-caFA8oXoPjflzv#jnD@O}{^ zO(nAcPTY`8W+!%>z%>|G#tbonXs~>e`$sT!hjy&Mml@lZP?ukZMnIE^YL0L0z&U=L z@H&zNWy;o52ZG7e4g_K*p#?y0M6py%m2(#&*c_fvR2Q>knq<<;+@_qHYFx-+$9 z_Vf8UGWb6m@ILW_KS2!Y-vB+~A8eJjKOqK%fqrXH_mFNV{cnC7{6z?#37^T>`$dKS z6g2~O;&US^$V&y!{8|3%xyvI%fcIzQAK(lIJ5vw|Ox`~y=2*Pukv%|atFTXZorSPH z@!}eh$L;RX-VBV-#0UmIuaSe&04LlxWZ(?f*S!FXR*#VWO4yz(agN9@qhDM2mlsF| zN1g^o*J>(0bb{4;oG`bp!#+XFU*s_FbohSj3_X8@eU=$|M(lfL8vXk!-idnsV*0-t zsQm_aTvgsz82koCb8iQ8>yiDYcQ9c6#&+O(pV4~X*n&8;IC`PNTLrx~`G zhOR*4?-6)ENrD7!_WX~w3^3mpQLkQywm}eIuS%XJfC78WBmKb%k9uWqu7HByF=o7T z`=L~_U}vlM&{eXShadu(&pSI>!dgN_E-GgSl!Vmv%*{Eq0Z3=3P)~*f4M!!zX!(*& zC6z4bTUdbKuaXM1SSomDP}b2@@-WP4!E45Pb9#YYY;tgLYJmqGR%~VVR;UM+wfbsm zDpAwan>RF*w`=Gw8eDo;~&xVN?KQW zR&ZgOZMO+6+Nu+_G>c3^2aM#koqx)hQ!e4a!B}BF`}K1zE436!pg>?wy-UwNo!)=8R9cRpc{ZU!Gq4B7r}@yjVSJI~*wZ(hX5r{^ez3{eu@3Asw2P ze2q}ZU8D6+u+m_W4-9d3f@X1EqAKrDLH=~kWsQZ6xQt9!CFgYoM_}kX66!S1j4a#L zS#*fok`0_#bB~~cjWDX!I<#L)s5>#Q;4pEqB#Mc5g(FuXOKrHgv5}bg5U>w+e`l-% zMc0I<1_V~C!{j|Goyje@4OksVm&)wVbrxbh7IpW>dp8#M-N&`*mKwKs=N3#@oa}BM zAaCQm??(zPVO$%*jQX2PNDq`aSfV<;Qer$J(PY21aXPdJx0>wE;D=b)>WEAjnqSaVzbw%1rDVoT1@wSiy%p#|49lRRW zw4B5E5LqoHw+Dv+CPRVUNN#`Uab>wUAh@TgqW&uR3SrSxM^<&uCQ7yy>ZxS=*i~3n z*w$vY(^w239{ssPfhiARLEb;o)NuC!5e_;s*&}>~bETn=#v}6KwVQ1Z$G8F0J$E)+ zK9}Qu^5O-+qvD-FVGBIl6zQ5HHJ8vCJ9DzLA~DUO*Hhr)$bRoS7)ZX&x*6DN?ygkJ z20X4Y6+!Y`3~oaMZnAyYej&naOX>M_@XtUOnoVcwBvf8D9`*F6q>kW!Y=h%Z~k zy|2i_$nZ29qNc03f9LU4a?fM!VUMp2u8lbaW`4GzG8ZWd!@v~yG?#NMZNj9Dgz;$N z@U4^7tl&n9tBgD~A__)C(?#7g!ayqTS`cYKWdvJOjDc#SAZX-vpjTB!n077dtBmz{9*KA0h@ z$@+8iM)8!I3RfOK*sb7F#>XlQ1iw>cr$~r$$Ry+EH0`mqm@FKMlFfi2NagHLJA^AM zrP~s{Y1ghz1Pf)izdHdmx^lR|b+Lk<4iX+=a(0?o!htiQl-SV3R7 zVya_ER8@fsv@uGkOAI$~37k**+UWVstW|^e(Q#(q3bXX#_5z3yt*nFKWNB$=WMIcV zcMN8i@+)fuoi*&6;L62Pilo@qUEGMGE=%8NUm3u2&97O5L}1}rI0tsHz-O2|QiTYD z3SnPYHKb>XE1r#GO$MUW-Npad>gjOr+FXR#tfGHNLPy2U!Jv1GGUzBv|4GC@MPoe{ zs5TKw(hoC-1cq5h z#BgMWmpIm%X8>USpyiUCL`qh{$qja5WtvMwZ%aA7M~T8Oc#}=<|DCIK&&XgqCL0BR z&Cffqqj4Wf6+}oGrgKjLTzFq&r=`pdF;qm>cmUZprUizBc z%zOfpdD{u2IPPe#I|0ZZ_>w>Ac&!)M1CD9EP%6;iTsDwnTxJVU-X9HMKj8?~qoB~c zr43p{X%w_3^3d-FC1wlVPwmmWB?Lt1co&Ms*D`*e8gN_)EBo zjHc^a)?LSk3WFAEgxH32bexNiy<=$XWm+clJzPeqlmDQkxx~j)gmp0q_%O9 zqyOvrx5q?d*R)&jMANB4(`HV`IFl^Ow1!HCmP;;GyC8P4^A{FgVPgg|Q!t6E_bxf3 zn56yJgh&Yg_vu3ln#P{ zYFUulUbCM3RIV2}^jLl7jL2AX(OrYf$rJA5UY3ATU}#6@pR8sX6}266IvFIaD68p* zHG=cVi7PcWUW4arxFK*z-X?EY58t_tGj7+qQOPRRZBqiw)MDE54;{r0!h!p`EfvYZ z=4$J>y<#!9xxEE6?va#=-@bk2LfKyQcY%SOOtKQg#)8kZ`$xp7z9 z)*@V5!ra+yTQJH^Iw8YaL2IS?hZS&t+G~>eP^<=&c3j~Zs+w<3zXT~Xu??1%xGe(i zyAyJT6$^c#f{+;yPs`6YCPUCMJawLR&#V#Fp&dF0YjQL_AUNS1K`hSCLPt5e0fPCN zum|T{KmLN;xOo#&3xU@}{-7J+82>E(;~fs;_uydxDG0oG6-WUr2oyo$g2=g?QvUG(0P+}H*sVkB^W!W7T zGn1;ch=JbdCZ+UDWE$Q>!htqt#>C zAud4pa%yuoD()L6!>$?vVXN~9W-(xarlHM1Qo#Yhr9bHU9P{v^FAAG>7^B6nDZAoA z!B`k?y)X_gieb}+@8G$)zXdEii?e-f2c_2e$8i9O6R*F0a4sC1qEGYqoO4qSzjbzS zTl>GK23P?557MU(UI2htsPz*m#`sA+5{L0%azkWp z@veoIFYDgkUg9z3d0oK-vzeeea>&mJM^@cv_v&1*Prp1j(kMU3w0@-Ab9*^&B5@nF z^dZ@I#`Nu&O1MLBV+I2?*~S-21}3FIn8U;-)uE;!^hjJ5-6`0#5fa1BkB!; z(StU(QC!JXNAs-pf^>QoD6XmW#knRL35}M>kMEr5$9fM5oDm9%U5MsDQ`)ug;)m`1 z4HA^UakAbp!JMvOQ=7LP896YO%cj_=e4-qjT0EO`aF!uLq&29UP~t zL32J`o{j{MKq7oM^WhoHHpCP$2o8deME2$C4)a(ub0@zWtkO}Vi8%Yp-{%RNBr6f zVdbaRxD^60H{!JKodt?1is+`OuL{%ex}vcz)NqoxX1t@P?Wa2O za;f#P89x}+Gs9^a!_3<6^4hSaJHW|Z=}e=}DK&hu$Rlxf1Ucrx_E1>f%^Wk81<9VX#4Yc6AkT|EA(gIXuU47jrS>Z+>kek$=s)B#ujqGVyH;ycm=7tZ>{zLJi^U11Jm=+I8W*RXC3m`s zDnv5N2H10Qpl5)gQwJuGew;rh%>1d?sC4-g*_|uf^@NGGWn)hb_LdyzJ8ZEXHLl2V z{Gu!Un3I2CSJcE8n}}l>>?EYJ0Y5O9YOuaNiPzDwgX?j~JM(c6%am+Xp^E!BNJO6ExFk;r^g%1mhEw$i5`<=2(; z%ai4yIdROV2$g^+n-xx%6^^*d4(imd?X@=6FtO-NUfc5|oaYSGmH*rgX%=_R!5e;l z1Q{6rVTpug&3;3Pla@&AdU}E4q3;CfpyRkNPZcf+_nLR8EWG!W0h}_E{ z8KRg72EtE%g~maq3Pgs!R)Zq3JyVMZnI`ov;fp=B5%d10!u-1Za+>DSqrA`e(p!rq z8EmX^a|$%l(_Mqn^%i_>7kaFuqA*X~zSudR={lHKOC#duHKKPK#GOjS9cxv>*iPYR z%&Fhr)&4xzYFuo>0%~h8dS%V~^!z@I-z-@?AMFuRRZro1ceh+1TpWwGk<|xOV-&-*C#rBR34>6L-w*-4W&|;8#1DZdu z+2%6q+FBJ+KG1vKTTJvwb}(&JkcVn6l5}aNTxsp-eFaNhZ!8maAt+$l$O7{m)uuo~ z4x+6b`6wDH4E=|-CJzMfH%__CPTzXltX25%s$H-ipVQ>aE8FW^bNgPggwm- zpnd{(mBK~1Q;m_t2zh+J%;OD}kU@t0(l4ojIF)6gGpHMX!U>$wi6uSv9FDN>&2nu9<#b6JxBUBugo_ zPncwkp-~T{xOi4d5mvxNpxI&y%2V6MTxLyy3tQ$uIF%Qh>~5wZSF6l2$rO`|)F2^* zkl!x;V-lUqeBakK@QJP5BlpK`QvVz3wZ04b)(lD^_%*+mMVA8T&AgDu44P+#s^ndc zQdU?Z`L9HBITo8Xi&T}4tW#swKSr#e_2)C(+@?uYEMlLQW}~QJfkr(Pmb*;GRr=4u z-E~@7X;sADL(sQlt2JnH=3*!`_yl#g-rsUirRXQ}zP!DMEGXt&YJP(mE)N(}@DI!%9{+4jF>A!W9$)A=+K`85iS4_+Z zH*2c-+f|SmXOwtVmSku+Eung9Vr7MN;V6W=ZDRuZ*h{mn8vZPD}nOmQT$@R3 zj4)YP!-jnXtc7-Uqt;pHx(-zw=+@fPQNu7EsMK8n`J#R(U)no&(>?$(VG!tz6P$*f z`@AMZU6@=ctr=dbhG|~fbrs$M$&IdQ&PovRhmZO`W~WnFqZqK@=C|0)RE=ADZ2Ilo zqXFQ#K0Cqnr5dt9m}Rk?SWG9XlNnm)MBB5aO(9aoxc9m27b|xW7a1ux7uF1`lU@C{7nrI4+t8)_*q#sDjb+LBnq4vzQW0s z&xm=x#wEXt6#_F444FCJDU#t23_h z^LUPN4T_IHp+G>B=YeP~Ec@$gQ{Dp}JE9Yh2e2hcaoBwy(8XZ1d@WS%d+&Ftt6Sj2 zEkuzo_PO8mmD`vk(2+mhRtm_ z6d8SZ+gXVt%;%H#bP_-tn^BB-uW|;%2+m$vwvF%>6c~?gH_ka?NQzE6;23&ON(R#z zm1PbFGtM`A!E~5(a^3jYJH8RzKzg&3`M_F9ENp6yBUWHr(Qnk#n}*7e$4~^b1q{fF zCkWq4iB<-&>hgmb<&=PULaNOhWzgpqL$69Sn)Z?`*kF@W4~0mVS<$Hi%Q+2Ix-g5^ z7Xu9FnTHBU6DmZTV;NHVZm8}$f+f44xZ`Q59`98ox+6PyVwKGaTo)~G9+my(l+Lzf zRy}lEIPj4RXm#fRmyI&iWUEa%HSX5I2t;rT;m_SM#tY{b;&_FJGP9Et$t1nOh_}#k zDYe8lJ|Sm^j#kOrdE_s0Rw>)X>@U7+M{idMJ+9c@K)knrsJ;2%;Hk2O^ zN(!KYRr6&#)|nu8NZ5RI>n8FOkNCw~oA@(!`v-Qljyw13U^ySjF&bcxl{WSPrM@Hv z_gy==$C+l)k66*YK1~d};ERk7iS~K0&uDN-y`eN+QX~iVd6lg@@b&=G7oN639*2l+ zmG*ZQ+SA%5$!`+zP#~}K3DN26RCoTGpvC6Jw@KUD9JAWN>A=bL#&Bn+O*L!_x8l%X zKyXJ~bHjZB4B`BeH*nr*)SPAtRpv)7y0dd4t6PGKdd))VYnP~5=17avqc@Z&s!EQi zF;__RXF%o2B+s4Xi~x{hv85UnY9$O*%kVg`1f)p3r6jglTb!CYbcO4&v46tU=c*kk zECD(b)t_sXngn*pw+ZD2184L{Iz@SiH>~5I2H}SV`YIpwJ%p8@?KHD);Fmqyj}|P} z7(As7CTL)15F4_Fw>doM6%vO`9SzN-y?MF(UXU`;1yJEuQp+gdq8#Fi9ZZShScR5> zN`guMgR^&zuIydbM$@rvtk||~+qUhFopfy5wr$($uwy43bab=N-us;WJNLWaKIg76 z-Z9ocYt1od)myXPr=F@OnkU2PP`RBk^a#_qe1XEH%k9TOrMI9JOdm^cwb2$X_6+~p zz^2r*eW5elh-2+HzV8XZ;Xabc?8Q7I-ZldDX1h@)GJr$OMxm;uA}SV2ehFRI;2J&_ zf9x}v!XeS=+`x^Bq$pkHxO%2ID*WJjv-twa?h1F;9{4kus0kiSUI@3|`Wv8M6}p|3 z2`_3mQ4Fq0HM$;AHP+LAIIa(VM^G>WzT)7wo-EmK#_-V$M@9%3a~j5kkM#*=n2}jN zlc6xIC&Ao1l3#LF$mlFVH1BKzzuqRfy6rgzeEgN7Ku6&a@b@{4NXA>tEUYR*GE!g* zN+O3zGnQ<%WPeROqkPxcU5T*WttvNe>ST>gb`~}&Tvi;^2sKSro+~T$E({pKiDtMW zTa~qIHzSrfcs36YIq~2{DWSC?&XZL_b){b0NVI6K5cekk| zZk1G~4=^8^X&QpD3(fd;P!g8lwXGNxyCORC{=!V{_?Xc=3CB3h6*cO{eYUUeD06eJ zGqjLvgPLrDYly%RwJ007P#o|!%45*3n^1#931Ha#05N2PlTD+eS>z38ur1I{)T(NP z(&xUG>GY!CfBAOjf&9C*qk-9ovL>^)CVcWibX@$jZmr5P^&He_BmOmSuuRrDHL@f< zaGci2T1vP3RK`@a~CYeeJ)C+2UfJ=@0{B3bw<97Lsxdm6(H||_)0kc_xiR*Cn zAxRTE-|s-_o8W|vgPcEYR$AFOBbGeN_~O~oLV&C)HLr-19WfRjc}=jMxWuWXj|K8a zB4ok&C*uzj)UKm2@(_s(qgrvX35J4>k%>+)bP0@i(2pxQJ)DC{l#!sQSfH3Ym8Vh7 zr$~C+XnaAU8={Q~$1{28pS7cRn^MdrHnu%apgUg`U5?kcE9biBu4;tc? z0~z}S>QEdo3#)g{`W_5W8G?|~VFO`9na7M60{bPv*I}J7vqlY2gXUqKunrl=%oX|! zV1w#mp?QH0Fr&hfs{5g~vd0XNgT`S?7$}Swk_8!qkii!*lbF(G3_>A{-P7e>J{H^7bgM_(A4M8zu-EZQ8xi-lsY!yPi(BbpR*eBi3#1&;E%U$~ zKhPsEmm|W;C3$42hoqa7-u%@fb`%?*{k0AuwP+(PqID!NCRI5MZTn9jj5)L=kxVx+ zcwHbIHFrf%9k_j<=@{{6xo@im?&)|MZ@X}2y>7Zv7d{aFS`2RC$TpVwA|0N8EwX<@ zI{X{u?C(Y3khp&c;1q`lRRjO-6%dhI3yLPoVF55O5)yuoi}TPqgO-N=n*dJhoqz<- zGZ0^rqZ{GviDB=%ncES2;`_(T8?Zw_MkLLn?xBMMfqU7nF~MQMWI}o)#;YD#Fc53T zHRhKZ+e|`tT5_dr294=OK=&5e?1R$9SVUWH>?_gbov#d5Z=wj#)vd~zM|RV)!VD&M zHVIy^_e5bnkl2xMVZi3sG>|%-2oy9 zjsR2Iem(UDw*Y2|BJD#JkaB*O^(UCP%SIzk%5`KsOh z>ix>3$B(ZUC@bI45XuW3Hc7VQM?yt{4+txW>$ij9Oc%0va)J!tBMoq3`JANn@O@nR6 zV-g)cvyy-6KeIR#amn&=z~zqB#4xs;muy;=z;6ebkM{C@BgPo5cHW{*sbrIbaHe=x z<&~MR#^O%#(2!1!!7P2Olhl5tv(NumwF!aIci16Dtr_PiQ)@T@He?VWAba8Gv3aVMRW|Vs-L_n5mb{U7n$? z^XoxrT198O_LTNx;KsS6HC(>D1y*mNdx@M$xuh@I-os&6a#K1#Vf@ut(tG58lD-U8 z{>Ad4{5P9N_DeC=(EOjeyh@vLOA4sE<|T_M^;=XJ^aNm_T%u;6iY@{w5;773_yi<> z43t8-lyNum7a4Dry$_}_@L7-~SZ+byC=R%?_mBxfS`TaoB`Ws@r zG+m6TU{GGz3Ib7|iqlpY5<^0}Vjz@e&par86XQ8^0i>TvB8iSzX)HXb@<6X@$PH?) z+VHo9mfWNoT)ohW8WT2bvrLbR)6d0TeHGUhOwKbRqYbeiFkW*%tsG#)PSxGiDs?U zbDsoApS04Ww=@x1iuR%0Gh_n7WOD^#vpcKMmN%{2R6{o&lhd5-*PSudyCm{_c-^G& zSGKe&LoU9rg-iXE*2lgaRliG61p>DlNZ3yaI6q;Wi{t}&Z|gUk!Dv~!soYE`u-@Z{ zCVf)OVyFu@x3L*W;HJ=8@TJSs90&Zc@tW_`jk5GGG{D`OJ3-qZnzw|iZFTEHhA8W3 z&cJYJRZgAyv(KQ->RbZyIPtlqd#nrGZH|@kmc>%?;vma+$-*iwwnST+VgVnc6%dC~ z+$C#GS0BJOihBBhq_ksM#2}Df3?3gN=<9?dNpNKlu0>X_C0P-rQs$LKT$DWyLNU|# zjcI20+tQ-9&zJ%{Ju z6=oxo_{40Juwe#)LglELYzB9LVKY-Bxh?1!F?&ajN;wgCCY{b)z5{nuBy!TcscJC( zg&ZZOW)?FEwu$MLf%IE`2ZHPiFzGw1<`AVYpP_}@LDs`r9~tr(l6hRi3mcf<#6H>Q ze^ayR{%HwJ{}qQuzt+FgIQfTb|BLMOm#+9A1ET0Pi_hG`0>tbiL>^6@0gMopYFwO< zwxEi^DfnU=v}1Ccgf}`h3A#5Ben=fiB#oxWq4V*~81u)Uk7rPaKs`8kH|n*@JZTDe zh#c`e7$M`beU*C+dCw-~7)F$Qmjk&j2pBM-~W1V z=RoJV+>MnpMZ}Dps9}rWJSY*f=JASLInW*~zapC6$kAOXl!bPb$Fpup5rq0((#FWA zQz90q6p-#~MKkW&Z}e05lN35tD@hPj7gk#D#|y#y_FQf9B-cL8g@q>7>cdB!*>Y$_ z@*Jap8}{Z{OF@|nw?U`Q>QW9W_OxPF;Z~iu7}y(T8S70^Qy3Mvydk)xQZU|LooP`)eRN#aemsYfzfJ zRGxwq%ny%27+_Lbp~EvU5n3?Xl*pEXz}C4DSVD*B9T?6v)mG{+C*h#ILbRXOtuM#npqg{i6_unkvzbGQj%(TpTv1K z!V%e7vSzKWD*fGHxPO(!62f0gZAL7z(u4k+ijk%f9eiueW6o}xMsjXeB4_P4k>fkL z+>?9L6d$^UnO)3hN4~mLjpn`!GnuKLk1uuOj~CY*4ORKNa#h{qdi2da)pYyXRdk1G zEY@qIQF-@#DKivX7AAc2v@W>~9Pp3;!#X1}-YO|=HL$|63&nuQ7%17&gp#t%{EI0f z(ifog%wiH8g2?+Mn`dg%styzvQWTAxwNTBJ-K+%e1wLylQRc}C5D?)KIOWDz#^DJ* zoWh-zW+i7tayglXG?A@GfkqTm=nSP)3&W!k_|~8Hu6C5wLGd{Ddxs|Q_Lhb5FLevC zs}_}!gWh`}M{Jz=d7=c`#*2dosay9hB+`~n<^x{$MWLg6)$ zMG(|zvB&^!#X)isJsGd^{6txXziYig*LY!EB{uenMmJ;d=u> z%4NA?)e~8vxXtGxv->urU38d;;D5g5+iwZL>jtd76(;K7`)9d^t&4t5#Ils_?l@JrX+XcL*Sw zK{4R{Iv&XPI-wORJZl%8*uhASDrO0HnNg+;w8c{mw{sO*CWBYlP`3-UQC2OxVGFlu zOb`AM0^bTei(jkQCFMwfpri^_Xwqg4TJ#5@A!(e2r0&2PwWPC%?hL{B*cLC`#QKwi0U%@;A=Mf+cI@l`cl?$Qf_1%lU3LdR|g_uer-y z_R!$ATAtpCF6+5}1c?Df0k+7H7|6{avx1Aq$#n;d{&6mdIkh#l`flyv{|Xpw#uBLc zhB<^LI|nR;Tw(wj>f;Cc?$S5=HLmH#KHrafH#VOia6>+q3;V2$SbQ}{CTD{_+j(NU zhc{?1)B#E++9SAwk>iIjYnTU?TIU2`>EwXlosio(jP?3 zhD5}M{-B5aaS7OmT0+Ui$Q#uVPo|^{J2TENgQok9t9A`8QtG{wgbAhTCqfVDjnY{D z5|yOiHh_>FLnZN8{{$jO;u*rHIFc(T#zU(qg4KUQRFfr6d5?ZutNjPsC)X##7qA3u z4Y*(Rjxgtah5Ku6UG{QvoBg$oet)fhH!bp?ufe~F^h8JTLJtU_1|JWnJuj|#K!`f@ zv-wc<`?vRX*nB{)-*`joO%H&0P|OP$neL$u_Dy-uuD*XW2(t`l7z$>XttPn`!cs>` zSpMl)<5DSWn2f4pRuJs!Y=;*qwMZy-jz8FPT;@U`7Q8;MySCO=MQiwCYh*igYpZ=) zNoMmA@Ec>GfV*6ay`3wI%9?}#k;jE7mmzS6G>ZR<&;#VJ_u2-D-lqQ5Vl(me%Ktx$ zmHyYE@1OVjH%YmFy!O>(ZB$fIKkUpmRcZ583+eQB_4@}LBDd5jDkUy-HK}yEcQK~&TKJQ zI3>A$+rG~7y5c?l$=!Oj(*~7?h0(1MOoxDO)R=n62^V1G;W?`8zBp-lj*O%i;6C6$5wn>5Q5Kf8Cio>!a!~F;0l0m#b1mvg zLbEhIL1JEh7r?gDPnFTdbX!7#XDqYVQqtm5*}rdEAG%F7rdd$ zs3GpWBkHJ2SKtAc-Y^ti?H&p9YCX2KOICu29>yK`&qFJhE>g|xl={|?toZsykFd!l zM>(3~;X67yhh?sx!a;%d9o1C~$}88gnDv66DIf1<5@*S+NT^nKsQd^-6h4ZXwJXqQ zJ$)j+{VEGT;98^>SLDqDYyyfbgEtR|?#$MbnWIW%Hv57KBl4|PBdZ~t|D2g=Ur(IU zTHE+Ab4xzNcx?1=TAVq^T&hh;#7wZxwPhMk4vly(=BspaTGX3jdq*qdgWybE(V?k( zrQ*#Fd-6DoE91LgMAZwCqEN1N@J>x|D4ySmOaly_!d=r~mP4oK^ByO5vWVbe_5I5$O+ZOvTk0erk9L0HVHl z;mvX;MMB=SY_q85LBe10yQFe=)poufg{HDDx+TRze=$6=d*+;wH2ezX~ ze^|k;qAxby>Tpd%-xX7EUCCE$Tg(fgFjAYS&)!>ReC_Sw9 z!W+bWIDFVT&U@G!=QZv}lv__6gg@?jmw8Cqq)$x0EvK~7_(nbThAE1r!V;lz3GaM~ zo1TpI8ePQ`v}n@kr9*oK&5q<;lP4C32A^PLs>bt6EuC?EHy-xS7y$1n-3!bal*1nR z#+|5wNkdGH7e4D62!jW-YTV>}ui@M==od&wTWzM|51{Wau_oj#MhK)qujnOah8RR| z+Ri|)9tU9zQs;^vKAipW%3BAE;kPq#`@rJ#j{5ZXlFz~P1Lh*WGva$xF}v8jJ$sQ3 ziF&Qi6mL<9&&hXqd=P#&tj~#0pSpUVPmXGy4r0lBSsBsy6<=jrw4dtIHvv{;`jH5# zIDAUyoRJT+K-_1@NBfRdzkc}cB6$Q}o*eP`@ED)7sdK_s_x7B4E2 zvAQy{MdvPqJ#y~v(bT%mWM;T%oJ-`^Yrn340{t~agYg4-$9$cId;bTx+?Sm0KX5rk zZE0XZ)Q=eJ8oLZrQ})Sax;1cGFkUQPRIq?0VdRH4J7qbWnksFDPpYpe}`JJjgb~R+v*O~snKXqU_u!E3$_qVbpmS*dYvM(EUgTAfe7(wy0nI1j*xIY zaTYoUS?RTb_y8nOakJ|%weTiG{|;^)$sFN{7Kyc6t&crK?8K|T7(*iwGh{}gis=%Iiz@ylZcpeSjW(PWmbDGV|?6VkAx zbZ$%fd9PvP98&%;WGUf~>z4y3=uGO^&L|mPSEMxcS_(^sn60OLp4-%PU-n?1}*aRTrl}EXy2DXdHzkhu54-R zU}O5Py-*~7ZERJVmI7hK%vx%;Uaipn^g9zg5u|P_APQ7M5EZ1Xo?Gzh5W`uwlVVfV zpA3QoeBm8ZZw;tOzm*WiQ(u^v)8o4Qx_Z8?4St6=)_B-87$5!-sTx{!I#JX#S*NZ1 zhi%sf;3jI&q4hH@uQpjR|3{#j^5dWQHXF7x^}(NvmhvVvvLS|k&MLQRnf>Jz*8L31 ziS=a&-|_ObyHFI(TS|lg&Fv}Z2$?Z(6T51vHbaGmWBNn&bIal65qZ&tNW@8@VlJ__ z5VUZ3j4hVNp60RnCphK%L&Mm6CD1K{u9!g@gNeKOP4umP|fVkkXxC8;UI1VOZy(Ecq9hG`Z+g!MZ3) zj{i0*VN)U^*Y3-D5MMya{}1c^B~ko~I6&1@4m4ty6ijBI}lYmE^}@Mm95058ZZYy`}x^8=c2lfnhlP{o}b zgUMM8IrgHWd>Q<8`;f``!jWAn_2`o@QwhXOaDSPjw)F3@xSmIz{0h2U8Bnm9bEV(3 zd`FK08sGD>ylkVBmljfLmMysp>#6NFrp2faV}$dezh;C!1e#f(`6?{@@Jg&#**J4S zpOv~@O@R@$LPVIrN>MXo*mSC}QFMM=zvqAJM?X+1-96f?UqzQ%Xe58mr(3UWL0<+jj$-B4fPh^d8thFSJrgz7fO>3a1Up|+CaO!7g#TZ_ zuD>0cm(Z|6Kfmk<{Dq(k{O@<+|9c36@}%7t1jc*N=DOd;609Boss%~vNDv`l^i7r2 zNO38lNg|>lPsqYbhbeAj#RK{st;e600xSXyzfYX-N`tUM1S5EQYcd9l-=j(I`QID*crctJ}6$xLAZv&~T!xhqfo6>s>f9HTpvl|tJ zYXidyL3aj!wObPs8Wd^4#Pjyqg9Vs^%mJ=0SO1e)!0$sRY|IAMt(p)9RlQ~z8NaeG zks$UNTUmO2>CzdC6}8Pac-Gqwsk&{u3a*jwGrJ&f(6?j^4h_cpEE!sYpvCfIg_3Oy zed`Znn)WC7AZu*=OV&@CIm^=DY?=t>T9R%rc29! zgoZer8lg?TiTT6c1QeY$qdU$<4g_DOd{|Yy)5U#4zn{O4oL@o!YEVx^mMJ|ZCloCjAbd$LL4ud zX6l;bA3TFfMr->f*@D#1_IRPU1?QZ;L8sxa4sq-7Np6ar(3(KG}yk0ypF^)2E3EE@tSk#p-}C34TRv zz8e6l!NL$7221_fh#&fkaPl>z%YHi7ju3d#y7f)K#Hu-GJkO?@c`9e7<~PJ}93UpP zD;L?H?kta*Ej)~8P^eggGOR;Ii#U5tOMb;My9Y752M;X+msc|*iw`k!T$oTlA2J*E z1Ulg<$~)u%jM){|tfWVnvDvsx$wGhd;hto)j8LIu1CWK)zE#GGS z0mibu#R?#}E&iqciHA@pz~~l?q_n|T5EhP0-~{;rXD);F3M;3Xu@Ry!{EQ_cq1LZR zyp{_332oUW2FUbN)Vx$`m#K{yGf6gn6j9o10}jEBsWgpgN71?-K1vI;CiD?&RCXZV zx|7u*;uTDJ8`ddO&2~ZG!2fH)xro0Z_5cS26iWgG#PYv(-oNLc#Trl^D$8ge*EF7q zd#0E~hA`5Q--LuP*+3dB*;oi+%#a!K_Tyj;Ez%;GQNWTrRBW47H?=mcw%Hx@;{>9u zZEc&Et!%BUt5?*twOd=XRGQ{Ke?FNprNep-9lieSJpTDQ<2Td(WRqx)!1spf|58AR z)9fMN^V6Le2Y+mppY?4rn(J*7j+`&a3*YiNc59uU9Dj0^+|K(42sWSdU=YH#&I=C? z+H-9Yywn*YrC>5f z+Qcf$3spkxsnRZNY8oZ^@Exl(3aK5)pmx*hg#{Zup+=Zs^aSPUO~OzMG- z>=eq_?PwwIg7?}7>xc)4_H!(Tj(SxKzw@-6< zX-Zd zjTRL{L$0%_t*lRTUlSpgdT5|7-r;1qrN;I`OMd>ybuC9ug)DwTB_U=c7+28YB-``b zLRGnNC1%o}_UP+#>vt0h+yp^A;ojiTAIoaU*udLwdbL$It2Sj;RyO6F5lrX^)hZU& z?&@_jJ4Ci8yHWnNci%u3W3v~S2=4(&6L)_(viJo{+iaHxT^8+R=f>-sPJr$Hrtp{Eud^} zj-;)83xE?XlRD{D*1I4RfC4I~aDGQAuwxkWGPpzM5x^)SBP;7aL;4K-t;Z4Yg)I&Q!Z2{5se zf|X!y4_T{WNGathnMi9UU=2KRnR(zGR8%l)NF_q+f-fe?a=4wVMkYzR14VNU0q?uB zAJ0Pevwyyc6h#9EU?gj()gCVHt6s|qrX5-z!Rli{gLX4P*(t%8koX2YGZ$rfIL4Cr zB4&vWGlG)gC@W}MscA~GAZj>#erRq)oaLGHQy5s!jz?=9{Wj zldVpt{w}2@As5Ww-fGaZRmu8zC{nloot>nH4fU!Deh38Eb69Nu1Ui`8XCyS=SKa~V zdVLL6)Vq35L%!AJn1H^HccK3}p@-sthD_KU5gEossqijDsgO&Um=no0;=VlQ0n<@W zr@Dpv`(e2Xd8~YZqbbZ2n{>B`1i*nus`e5(l=~o464dxIz%DQfr%23nwnVm{A{lEk zAs46`HUy-i0KHcI*lLG@eia7}oC_TMY-(RqTqB8xa!PD>EaclB#~?6`rh@YyO}NsO z`z6FIyMUy!y6*{!du5h>X|jz>a?5P3<0eBvSw$l1@nFH4^5P_Gf0j>TDXCefi0qgs zK~u9Z^M_n|=<4%?LSUkhW$DTY_O^1N|BCO6&tuv)y6PA zMZ{5Ybm-wB9UNM7Gk5fA@vb(bn%)tjTx>!4tW4FZarici!$w(!#&8*|j!|?eyOaT> zgQ#f>`)A>K+8EM~wJ|e1n!*c zxkd7y+PUHS=gJsv2XbZs>&c0R;SLVDx_UaUgkW+8$2w$M%1xBB6&6$#_T^_7?602I zx9UoDcGgx@Oec>NcdLQ~>~JbsmC1Us(LxVd1DT^KQcb(nVJXKhIyuDVjx4>X(p2NUJf@~1Zp~v(t0r{AJ_;Kv&Nc{#mO_-~{mwk9yZ?ut8yw>$g z%ZP3_2x6!CBxJ&bZieD?=UAz%ug!8a08#`Cevl<2K(tiEcz0Gc&uH8{AkurQ^qMtC zHO>%FH&O#6P2|+cnR%I+GlLn^|G=dK^S)31MjB5V)gx5Kmc4xxX_ztIi921a5^#4{ zK#zReujt25v;D?zy@MOBHWVEi(Hkv3L`)9aN}80LEqO2)6m7~MUtT<*vQ!Y$+t`gs zZydAaf#qgp!#JwutYaKwJ$*~kBxrzViL+uH2y3-~Vxm(SA73K|-hz$w%gSWT8JD(^ zOFWDQd+1b&Lz@$!(iNYQ%=jv6Mw9r-2G>~{5V&i69^zvwc?wtqD0nOO@Wy>Iu0d-C zh{dyytYZejI6eUV;0ik7QAr<`z4-MODhWX>P2xe1E8oWnv{o(fonjXjtO6%DGfxPe z3WZ9<;N|imVWE4B>NKda`b)Kj*CBq!ZWHDSP$AD)^9^{UZ~TeVJ6C9$-H1rO43b-k zCM~DQfNSO`^@6Sa)AUNR-aNy|M+9(7@Su07kRv_;SckEfJQc=Vo@_kuP@xx_WUR$7 z{)3k0Pt!A7SbVI!3zimDYXD9+gsYQO5KLbljBtGC1jcy?#>9QgnG0c6rX0^Rrx(Sl zf-RoBV1H(9(jELzj0Mk%_6$sA43ulN!MT3pe+&KyI=JO+c_osuNl%`-1ClB@_={(i zngMD@hSA(#bO(WNAxRu(bY4r}SlBsILG9=?INJlO>;Qv z3NlOIQI<2??%#aU79s;54*cR<->3o4(v(bHl302dCeN@*{X66(QPklCjAW@ta+jip zL0yOIUHjQLED!l*wC;cOraa!h-Ag$$PInO$Zgt6w_a6MI-0}ny-+Ov!deRvjpnx73h9J+`N<2*c7V*fmchDp49GirkLn*%#Iz!dHJad?nsPv`MLCgIIf)*` z9S&N{c0)yAL_{DqKH@_)kGmx^?GnZE~7)UDK^5%O5q5$u8$#8zCF{*AeAE{z~xbvFby}JWO_$?l|F~i&$!LIW$uZ`*Wc3s~xbyvbJc=(L) z>vC1EjLjD1(>CFExx7cpUb7q><38LWy-v1XgW+OfxO33qd59Zs0_ScT9Bx}LAiD@% zx@etl0&Wa?F)1$wsJC#tiPWRe#3P`Ln$mte4aqR-P3=|b98#}Z9I^WRsGl0>EIZz` zX$O>a(VRWex8&PSL5B>CZ_z~J=o0M-6#*0-^COkaE_Ge99gUy?g9lBzBNH-*xFnUK z)<(0vPp-3Ox%DW1EF67q}Dhi!Q| zamkmavGJYJdb^9-&mES6@CW?QbRXPeDCTdl41O;=1alPSMau8C} zpeumC)Y#)ndJt0E;4S3W&prxf+xlZVN%s^D=x|<;G3^U9*f`Owb*3O2X-o2p@i)uS z9dK8B`^Kwc&$@Rcb*`T=guH9R9qBi_rAzi;yE>!9HEf;kZj*L2tYf4ksaS{WB;=Tf z@Ck{qPP~%a1oDKOH3*ZNk4D3GG#7*QMKPPvg|7;N6;ABv5BWb-e%sMp3B#2qcYdL? zqlsLG>=XD3w}fzMwSO@2#p+aI`gvr2P1w-vp3<7IH-=|#7*+K%a==N~fk|6#F=c$j zaQVBpQ@;Wr?i3?cad~lZIJh|3oNV^nu-8BTrLz1tG8xd|yeG>SzP9_dDE{3k(#6Tu z_@9*vg-NNwFC1-gq$IjN*5Vvw7=q3UEGUqAIC@TXPE`775p$E$vLp)Sb20=~=lPp& zl7~60%ih3rx>wl!zORp;H*nj49-1~_W$sZyuvBcZB@z##6IO2I7)ls%`k5L*IY)LN zK#eGKi$TRslLqY=kz`4kG{?0~L1|K>WG}AZPD5Fx^R?A~+ypC#J+A#nVh=-$Z+<(23;1(czGdJ2 zUcrRJogYBh8SRlHhqQi#6t7rl)W`x0KSPQok#>*EcGV4HORq15qFXai{$w8JBJmjr zharRp&XuJKZ<(6r&k&1FZL3JT`v<)FFD3Ex8$|dR2}hf3uHK7*aT!`FF?K-%*G&Gu zp5L8vqSu1Io_gsQ0QK*P_5a133|aV(=MKK>XJgB%cK+_$t3A96#{R?LJVc1a$f*Ap zix^IXq@;5Hs1s@1%{Om~+pPKF3lhYS>#5venY-Wbw@?Nc+TcuUV}(hhB?2psm)74D z(NC&}6seOHwGs_CXBDuT^cpKmv%r2e*lK5SbL_O6XE6h}E5EkbP?~}?z=znT_RDC`q4xqQL^s?$81q-4q2mV|8PD@_LS9|*_NbV*orNY zBf6V|Mfa)s6dxK>ZcC2mlV=wOj&<8Nfxf}tlLm6?(;X(jw;6Zzl>1*;2m}K~?83 zIMwn*d<{x;oRBb2BPHTR6NOC~*53!A29V3WoL&{u4|)o+puo%m2~BUc)%W6mfv4J!gO+!r1Q%o;J-YA z>3`}G^8djO{HGAIlC1rgJNP8Fxn_09VpHtoCxKgRBTG9J?IR0RqZWq+KXf^M5d;sS zSKNl9cR-bbhXU~XVu_|QaG{aIClNk8an<*-0FgiJcJdIYYv>KOqnk7PckZE z8@HWE7^I{0AA=I)igr;l4Rb4Nff&KRK!y)V^Sc_kNjUI)s63U_NgGn-#k{jHhpSjR zxR7rZFir16PE3r4Bilw7Wln?B{gOx)T#VvN5*FRmGaD6TL|IY{+1So>(MuL|Bv9bt z7lr5PJ*?+vHdS7^*yFtmFCP9BXS8&O#d59qsMPNdwi=>Q(*a&R0yAP+mvk-=A8VaT zB6SDud)*&gn0~mr)Fd?S;6P3LX-(EV=)1>w)&2=y`Lq#P>m0yd+h;$xJ#Z3OK{PYr zrF3u&xR3}i@i|!Ay#OUO6JUM@hNfap3Ka7MCojXFszdc2xr4nTr=!@z9>vkvhx&%Q z5hVUvHm_`>fV29N`)Q5H=1^JIt2@NqHoj({)-QbZ^lYv92K850kh;QFo`(biss{Xj zQM~^VQ~o75{2kG~)X@IA5Y`7gByEBz2)KyEfxj^>N}rmQGIvb9^?`r<^t6P4&1iq5 zhC%e2sv7m?LrRHd#zO*|?V|P;TX&~yVvC$?op8d>y9K@nwna<8M%ZKiV*1PjVfLwX zY3e7xR&_{ReV;LVIu!PY^P|qk^(*~x7Vm51XV){df3=5dKNdfz*&F1ZF7(gKFo^5D zuqP^yIRr3fXu#cID&Y1TIzrNV=DIriflj$ zi}dc}RpJ>XYf{5+4+=Bv`Xp1!P`opa!eONrOHr2dB*3B@RMjQaQw;1A9PSw=W`rA@ z%S9(S5y8M#{q;{#ykGGa`kxXkTZ{ATn0QzltF#LBd6sqTxM*dQv4G{$WhjmVnWk)K%z)?tV$JQ{&+&lcSVhvgit_Ed|Qa ziWM_D+R#blPD@ZWG?2+^&#on{-unFCK?db~8>iE-QvaCJ8Z$6|O$xI?UF)L318%g3 z)K-hTt{JA^5rAnRbJIF&Vmpel(-=r9HrBYJa+TfaVX_ENw|~=W2he%GPuq_)Fl#OK z?%h9wKU(F-!09$%Ivp!{)WA3u9|-g2uyolbE7yp{;>{~BAO8`F%u zPOq>vCSOV1f}MG$h%!^@=((Uq%bnGu`;cj-1J5J12#~O(#GXs~jLy~TDs8HF8(sZk zbKs%(huH5hM@->7{|szyDi$A6H6~(-V}i};wMIDAV>c{kwBj&kv`^3J+8uzgWtMF|z9T#I8>7c*J*Xld|n4H5btLOuBO(cgzllPb1es(tHG&YP1FR3(_9;* zfo}}2!!&Z_k368sf!Xz1L+W!w-!XT@h{Ug38{g+~19M=HR2%~K$Qee^)G?s{Y8V)X z3K$V$RyR=on7l12E;r69N|)xk_agLH>k{tQ0m5(;>MsV;8|n&71@=gn><+}A|K)rN ziVlf}x;v?ljQKM9?G2P4&4R+DM&O=lLD^swI#JW$T~$xbwpLqx8o zj^9PqSfHc|lsH6MI>tXNRe=K%OYBUrEw#;gH4_J-_ip+ty=NzOx^LEu7qOvVD99Bu zT;%8)-tHD+rVvXl1E9?Tg-<76BaRyj2Ge31U8NgHq`d~VxA!DQKYH|D80C4Z&)ifR z$M$9*hTx*rnUfLT=ZoQ6s^m>pUEU}&TwvM@OBi89v`D9*Z~TQPG36HgBmW?s38Mx$Gv9 zwbDs3CLepWu?nh#LJ))Ws|GUFP_pWpx$3CxJZZL?B|tX^8lSBby7_19n`Pc0e4Lma zwWB}o;8?+OyMQFHlw{t@!%d(+Q~aI8SU3pho`9N3u}HN!ytR`ceu0b+2TaodSha&7 zway&02qT3cHHkO2%h)$wsN5yRVR+Iut=RMB2A!=@#R&2Shf19-Dt2#GI=kdZ?c@;d zi`@*0Vg;^%q_$>KPlDM5zuc5KuZ6+Jx6FX4M|<#wsembu4w1l}bANuw5MP1c!1Ajp zOW%(ba-{dL_CK?V=8|&`mCD?@buX35Mv%gUSYwo?iLFNunGQF6RPLpiMs=C^!epF7 zhm(aJBF4I0z?iW7s)DE9;nO2gQY_py!MO8yrJIs;U^1o%f1%6BXtF037hIwIoZAZ>*tx1y=!}G$CftUmCnI4 z6^j=rIWF~2aZ>BewFh83U+A2Bm7Zxzd&dda2S4ifRmMvr$Pz{u{@n4X-d*&!kYUn41|}bEGQ@eoTz%Mo zZP|)v(8W>H$6?Ut9U&n%Ck5k}&F^}ym^O-Ge{wOtKp4I$6M-*Q;0`G*8AiEL1vrMu zc9;fQ0eTuaP<_Q?jKZ$T@bcM3H zyIcjYzsqjoJhbG#URxhaYQiB|iZlv4PzwTo2FlNECQ%55P>4lS5WefNK!eE^pc3v4 zy6uh1)kE7FHFtUjk1ccA^65E!$0|WgRouSBY{`JXvOFtJC1~o))2er|2O9nq3mIiD z>Z>9_L23Fdk>w$Y^^_=On=1Szfx_u>PijLcG=q%1tU(>9`LoJpu@0FnL|WmTlJl4) zea!3*8EWqmbqt-VRWVkGl1*S10Z}nB{Q1WB<&B1SvF*Qi9U3P$FxJ2V0ZHQm0rCD{ zb7VPtJ0lx=V{1!0^M4$k#GDLmO@&;|%>FqwzgQE>8+94$v$wS~ecB9|lOTX(2o5TZ zCRji~B*=gxFd*0fIYI)BJX5lvZauoO6SPUSvbj~2a^uI3wSwC|kPslH=IY0W7OmQ! z&4A|LRU3m=wwF)SHg4wQBV-fw>7LhKJFhXH?p^GA^PfLI3H-I{8BnYpt08FDh6~T1 z9eMffZVcG%4(9;~ymtGitHJ7DLziRMoYMXx*@{y}!I?T%wXgB%6BzU(n~SJ!nj5L+H`I|z(B?%U4*`#*g4 zerfCYMhAdf12EsdSp2)Q*tE~lw`WPRTi%S2+&K2)9jf2WF6WzK|9zDuhI3cnA;x-4>eh221pUFR z&APtE5jD?u)qZPeJ&ZAHUCrJC$IA*?xa!~2)a=cyIn7D}EYK$O2w_Buw5YnZV8$Im zbx0yIdu9cwW9CNQpLZ!ouCmmd)1+YnhCbpx#@zN6y6qM9)jp=@B{3^v*6WmcH^FM2 z8H5T937Mkz6+{e#^&MU1#nY&J=wsp7S`-bE2ENK`C*|{hSp91CP%c@4x972)tNCq2 ztT$Feg|qwX{G?2I8`H(Uv|NgFp=lCB=_aG!jjmmd1(Y=$D*LEOSl&DHx=RRM5=pwQj=w;R zl!-2f9j%4NE&&=f?ieb(<}Ygwbx#i@23XWUt+U>mL+8vsAGHoQ|D>DL{IkKo?1L0C zr*#|}6aN%RN7MZB;Ek>(#^;xW8I8XQoX>>1NClIJqy!|edkfKzgdBqslCs1$;MaRm zSp>G)f6}MKOiO~ehP@@&5!aYhB$ZQe8XzH{sB2hE<162O;M$f^6S%62S>Tb06a_sY zU0;KKQnwxw>6u55!t(AU>JgyBO=Wk$6hi~DRILTW zC_U~wp`HSp<=#=dRztJdu|nf+Q#l{-33IvTK>IWN6ZKtbu>Bb$RA$JpEKQgp9L!HA zW2VqDPYuS6s!fw|=75c53MV(=E~veedaM8K{kgfvk88_a=*b#kxT6+w^tvgXYCh4Y z7YE)gzq4(b0QNYSa`bpEx$ODJm%_Ck8UeDTAf)+hJYD8+39@O{1>P~-vqz_INHfdK zd_E4TY`xK=**dUSEq^sSY!F1tj}F!D`X-lPI2$je_+^5kTUHAyW-&B)B9$FfdKII; zRw9&Tw&BuaL`ok%=r@Y95D)Zm!bA2rfWdxFWkrArRbT$DXROGuWEyZjcqcV3;M!8y zMlAy9F>O(!2wKIcyagLWq05DFw8-_5GEGHW+72DXbw2cD%!QVDKsYu(O#2p}?^s0y zpDb|1WQ~+bV~{OFLQOxI8d^A)xTwUSj8ajgmQwk~i99*PER0fR(5|l>^4748Qq2x3 zUHMiak%5s73QQy(81M+^S73=bxR6CCZzn3gy(IUkKzl#S?f?uZ&l8+LOu364Tw5{7 z)NZ<^#fsA14Pnvp859GM8Q<=?iXd96^oiACpWT#%X&8XpWK|l_P)NF^B|u)w)%{GM z%F{%15RRli411xb-&fZrL6>j%d1xmH#~W%Xb!6NZck5|M7kN$aO-hH?J#7^1nM6BT zewI#ATvca#-OQKEAOBS{%4e^w+?<*CK|Jw8OxqTx*^ei9u-6v*HbVS8!@238K&TP zej0>S^kmd7p}H}VK33z=c)qo9qmxypO7S#(^btDBJ67YihtiZ*2#{||&!zr2mO}q7 zv2zVJKPd+3;w2*xZSS4Jc>+YU&{<{K;d4Q-k_?EwiW^xaJnHsyi%Pe!ylakBD}}YQ zR@qFAmPL+Rjw~)Iu7Nwno#iwD$by!pL!0e1_DZ;Za`o^Tw|HZ-{$aJeuH@gOb2sW7 zd^wv_9V$6T1!iW{s6QL>9F=qdk@TpihD^V(DbQ;jn6eFwB()N4v)FAjd=@u-!CX21 z{QY9A04Dn;JVkb}T=;X|GA*IS0+{Z^v8dO~QrmNw0kU92G=60S*Wo z@0sLn28&XsyEZf3h*jY7YbYVXfv66qY^N**QA(O4=|Oq|->5{X@mc&J0Sj!KJN&fL zTb)RyRMLZAs{@)H@QbNa!H$lv-Q&8Q7s#4QELHe$APAgWy_*FhY}`8JIA<#guzc-xeGN-WArg$QZK znA1wk8dyYxSa(g7)GiQP&ZplYmbO=Z!h>VtlcoHL_Th-OYpd0{o|xAN;SJ}eHmT0zgI8fJ&(SUPZvbng(z9_mI=ZBjQtoJUGdk%=A>hdYR~#^ zcpo6|BdoSuLM&SMQG{&2MRlbX^$)i0P7$1O-D6x7EL_m`m0tA`Y=u?=phy~#6pb#X zP%R@W)0HHi)yOv)#PWjR?7s%2&&LG9T$?$^OVXVbK~$BFe^)cnq~jGJgtho1q^!a` zuQCG=$Q?Yb4o(s3$_fxbp>YZ{bIOpp=<|%>83@eWdr}JRhqRY@;BY*4$(D=5{s2D$P zh0uB{jgZ@|Y1x%}#@KhCN=NM=dP?};wg5&b?Tugo_CAPP#!A`%CFw?)NU^{5p{N?N zB`nJUE!=}#ki~Q-EUqfLrtuuTE() z(|YtWJiDO&lzu0xI$S}Sx#<(zc)DbiV>S659g(ifUx^!`g}2-lF&y$Y7fq|HDW@(f zND2&i>`D`asqbHinFR*cDC_P&?u_wrCxq+S(&cDir290(ZGpd=E}S2bGLC;i0H*Uk zD0o_(WwRuAQe+d2WH9dTQT3vD^nWJX;Gyr4-gO3f)BTYprzLvoBeN0h>IlRhwMyV^ z&X?Wt9keG%8sQl&_NWov3N&`(U`z6_YwAEqp4}tcP;f?XEu)P87K;ml4@q_DPF{d=Bd(q0No|}6A`*fz5MSOtwDDf zcQo4SqAGKbMQ`msWs)^#m=ec;zbE8FaE&G8_>}~%jOs0JBiJAghxDzU{;s{&E|$_E zPZ*lAFAai0QemF2imfVcUm0pIzO}`zzR{?dW#2e*p9}fz+ng&5t&DTm{KVAJh6#I@ zX!%VlFG^`#$AY56WHX6d+t@IZ0KdS)1L^I)5^8yIX+B^4vF1xtm5TW|cVJm%RvUV) zc4kTRp=&Ri{gqu>CAD`!I)&G*c5~S)*J=K=(onY#@Jrt0a$i98GO2Jj9tPh9qpB9g zQJPlC6mS*_EN?gjH6zv zL;dQKz`K7E3xM%_Zw|i2g12w=kn8{WBJ`g$gYR&Q9Ljeqk61^g#6qD5z9+tz6nqf;o;6K`Se z$0>O+326;CnyA3F1W#6GaD??xXg>aZ0X^5Y>b$H+QNhT-+sCH(m1GH9)Iog;e{>4! zGuT0bXVTB09{{g>PLVrcnWp9-tM^0a7+Iq&6~ zx{>QO!Ou}fkFDjXKa{|e@_N?U{&9TU}2TKkaNx`@NWoL=vKrq-6y#Isd|1XNA zf^#ev(07vj3GII>ZTvTN;lI8_D*-G4hK|an_TTMu|45CM)d-{Qb!o@!)#H~LaTkv ztGT@~e3K(==&R!?MS21>bbI+q>azWe>*(iE_feMHXCp;6aLun$#fkwHqKZCvIJIE; z06b=gNY>>bTf8lj$p_{Rq5zzmEkx_SNg{Zg*uy16>;4Ns3&>Uc)>~n#QjkmHj`aqK zOm|S`Z6`+n<7K=MLCh9Jp-cBYe$1Bt+*`~&KP@(Y-cCM|a7{iaLHv~u?N8Fq;KCPI z$mqW)*!$!bLddHjxILLMPoE7X-6!XI$_1QFM_8uqAy~oQnXqjxk1tCMwTR%6~$R6yn8HD z-^N5}j)|q{qGBfre!hrrs}_G)(zbns)~c2}E@(cU32ki2IKujFA&X8+x@-oAlD(c> zf29eR&*FI&0A}m@8^$Lklfv}`+MLdro6f_zQ}9B4V5AqII%ls+slI5){gTwlZxb(Q zD^s?KdZZyy-&))rc_ymm$AT7F+7i2BWJHVg7BA2%`sB8=vXaUa=^RLAc&qlQkq4jI z#b;fFN0V6aH&0qF&Z<#eb!!*%riz^8;taog@|f9Uj*cr!dO9WfF$RbZ>^Y~#Qd$-l zU1V0bi7cBTFvZKUZe#tnBxu^=8CdAtE*Y_XfjhhW<#YN(Kvmr0ag?H$63>#cH}ngI`FNA+%v#?y(~|8i$p~fDWvs znW5oi(MN{4TuS+#0iqobJlph7W`G0iWUvCZoVxKGm)5)L`2(6PxA`SPZI(ogM)aTk zERzlJs;_&un3aeQNnr}i7T#sYU{JBLcL%Pj6VDvB^c zJd=C{F%(TSayXHF>HbS2`Z+u9rBn4tB{olm;pA%o-t-;~_tIZhIK9OiHcy>?4o6QE zhGSEq@+eYGHczSH<{Lb??Zq2DPd!!doc;j>r+3Jo#*j|mYxIjZEFC3`cOxxM@7e>O zf{%K>E~n3h_w_8Mz$08u`e$k*CMn7b)8PG?7p zl)aARq|n@)?pse~{t9aYcaAlQuo?vRX!I(@t~0m^yWqe>6>~DxC={h2x}#1z&0>9y z^mRNn_(HJw%beTmPfx3X7^ZfmPSPyn)%1t}k$T7R$1I}gSfcTyfovRc@+XKchof+Z zVkPe^7nIVdK&>-uB|JRcN#lZ1M(FCv;q$_d!aGsv7mXN*aoVp*?c_rbuKczg@pP$- z1da#MmM-GMbp`2y^d_v-eM+WPQZ<8pPeWgvb8GnFO$cw-UXi=u(KCtxrgsy5?hP}s z5t|0D1Eed_{$tb$Gzqn@Z0JKGn&>iCMqJg3OlgZiPo0nglsVY!y`@%VG!7lPBFkjI zstW7oF{szprMgWHGb=gb*`r0;18=B}m~$DY(HkpWE=639I6D?!>Q5i-L4qa$WpSup z-9S|M%VZ}o)T!S;ed@_&6Q~0|5RcMkCR&|vx!!@a2W)6H>v5>tAbgL#QLVQ8|5`_c z4>{*^wqaJd{ z1ZG*Fo=`2n_@YUOG{yvlJGaDoN)M^!4=A%?@SXaSYGA6sL9Ab z`PkZx0LmEIS%2S|0Ge0}*LXuB3NNFM8sBxTnwm0@MW--ga`}DT29&^IFE!YaMw{2J z&9UvvGa8h0mJD}~uFL{r2XEL8v{(iPvmlz0r&+6*89cvWoRLc}Sl@GcYcA9t zmM@iBqXJ>Af_^CvwNcu%OTQTSrqX;iPkF$QgRy5?T---%EMuAb*#7NgbZm3x{p+!D z3-$M6?bO2?ToQq(BKHjO&_X;Rn&1!OJOXjgTxWX%b39iT-yl+c_#(XswocgjUgs~R zi6M;9=_(=o7~AqQKv{4Dk$a022li-{dimt8BS%%l+?bR*D-z+!_QYB!w_gQ zEVvk~a>|Th9q?w1VjmV0&KUYOA3)Qfndu_Z2iX-SL5ie+H_$+yEHSt-bh|x`RE-om zmg_-7!6yRrP6hs78tVwZB6f77#DtHVvzMtpfj%)AY;DZT8zrbV*v(}0WcN?R&kP! zw}hD*nalY{p_IJbE5gj536;RNN+Z$N54fTCt)w?p5e6tkbeCc&*<>Fn=WQh6g&_RL zIyNEed<8B)fwsoWoe9boJ~##VQo?Zt534@4lWQuF7-6o6Ij2qME)dIHzYdo4vg*s$ zo2fHQ7V9!eEUy(Qt&|XEgMuXn#BLpf9oqW2HV@p|q;lYMKqpy@SgicRMon z(1gl5E1ob_e!}Zq3<)3RN;cY5oKm=-ZeI*NNV2x%0DJ0N_oae1$8Dp7>irYt4CzNR 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, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("AlreadyExists"); + private static final TField MESSAGE_FIELD_DESC = new TField("message", TType.STRING, (short)1); public String message; - public static final int MESSAGE = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + MESSAGE((short)1, "message"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -68,7 +121,11 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa } } - @Override + public AlreadyExists deepCopy() { + return new AlreadyExists(this); + } + + @Deprecated public AlreadyExists clone() { return new AlreadyExists(this); } @@ -77,15 +134,16 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa return this.message; } - public void setMessage(String message) { + public AlreadyExists setMessage(String message) { this.message = message; + return this; } public void unsetMessage() { this.message = null; } - // Returns true if field message is set (has been asigned a value) and false otherwise + /** Returns true if field message is set (has been asigned a value) and false otherwise */ public boolean isSetMessage() { return this.message != null; } @@ -96,8 +154,8 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case MESSAGE: if (value == null) { unsetMessage(); @@ -106,29 +164,37 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case MESSAGE: return getMessage(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case MESSAGE: return isSetMessage(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -158,6 +224,32 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_message = true && (isSetMessage()); + builder.append(present_message); + if (present_message) + builder.append(message); + + return builder.toHashCode(); + } + + public int compareTo(AlreadyExists other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + AlreadyExists typedOther = (AlreadyExists)other; + + lastComparison = Boolean.valueOf(isSetMessage()).compareTo(isSetMessage()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(message, typedOther.message); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -170,24 +262,24 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa if (field.type == TType.STOP) { break; } - switch (field.id) - { - case MESSAGE: - if (field.type == TType.STRING) { - this.message = iprot.readString(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case MESSAGE: + if (field.type == TType.STRING) { + this.message = iprot.readString(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -208,6 +300,7 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa @Override public String toString() { StringBuilder sb = new StringBuilder("AlreadyExists("); + boolean first = true; sb.append("message:"); if (this.message == null) { @@ -215,13 +308,13 @@ public class AlreadyExists extends Exception implements TBase, java.io.Serializa } else { sb.append(this.message); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java b/src/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java index 23fabc3a726..0db226f4466 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,13 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -33,21 +39,77 @@ import org.apache.thrift.protocol.*; /** * A BatchMutation object is used to apply a number of Mutations to a single row. */ -public class BatchMutation implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class BatchMutation implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("BatchMutation"); + private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)1); private static final TField MUTATIONS_FIELD_DESC = new TField("mutations", TType.LIST, (short)2); public byte[] row; - public static final int ROW = 1; public List mutations; - public static final int MUTATIONS = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + ROW((short)1, "row"), + MUTATIONS((short)2, "mutations"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(MUTATIONS, new FieldMetaData("mutations", TFieldRequirementType.DEFAULT, + put(_Fields.MUTATIONS, new FieldMetaData("mutations", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, Mutation.class)))); }}); @@ -84,7 +146,11 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { } } - @Override + public BatchMutation deepCopy() { + return new BatchMutation(this); + } + + @Deprecated public BatchMutation clone() { return new BatchMutation(this); } @@ -93,15 +159,16 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { return this.row; } - public void setRow(byte[] row) { + public BatchMutation setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -131,15 +198,16 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { return this.mutations; } - public void setMutations(List mutations) { + public BatchMutation setMutations(List mutations) { this.mutations = mutations; + return this; } public void unsetMutations() { this.mutations = null; } - // Returns true if field mutations is set (has been asigned a value) and false otherwise + /** Returns true if field mutations is set (has been asigned a value) and false otherwise */ public boolean isSetMutations() { return this.mutations != null; } @@ -150,8 +218,8 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case ROW: if (value == null) { unsetRow(); @@ -168,34 +236,42 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case ROW: return getRow(); case MUTATIONS: return getMutations(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case ROW: return isSetRow(); case MUTATIONS: return isSetMutations(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -234,6 +310,45 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_mutations = true && (isSetMutations()); + builder.append(present_mutations); + if (present_mutations) + builder.append(mutations); + + return builder.toHashCode(); + } + + public int compareTo(BatchMutation other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + BatchMutation typedOther = (BatchMutation)other; + + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetMutations()).compareTo(isSetMutations()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(mutations, typedOther.mutations); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -246,42 +361,42 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case MUTATIONS: - if (field.type == TType.LIST) { - { - TList _list0 = iprot.readListBegin(); - this.mutations = new ArrayList(_list0.size); - for (int _i1 = 0; _i1 < _list0.size; ++_i1) - { - Mutation _elem2; - _elem2 = new Mutation(); - _elem2.read(iprot); - this.mutations.add(_elem2); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case MUTATIONS: + if (field.type == TType.LIST) { + { + TList _list0 = iprot.readListBegin(); + this.mutations = new ArrayList(_list0.size); + for (int _i1 = 0; _i1 < _list0.size; ++_i1) + { + Mutation _elem2; + _elem2 = new Mutation(); + _elem2.read(iprot); + this.mutations.add(_elem2); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -299,7 +414,8 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { oprot.writeFieldBegin(MUTATIONS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.mutations.size())); - for (Mutation _iter3 : this.mutations) { + for (Mutation _iter3 : this.mutations) + { _iter3.write(oprot); } oprot.writeListEnd(); @@ -319,7 +435,7 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -336,7 +452,6 @@ public class BatchMutation implements TBase, java.io.Serializable, Cloneable { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java b/src/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java index 4cda41554d3..a38d9f0ad38 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,11 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -33,9 +41,9 @@ import org.apache.thrift.protocol.*; * such as the number of versions, compression settings, etc. It is * used as input when creating a table or adding a column. */ -public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("ColumnDescriptor"); + private static final TField NAME_FIELD_DESC = new TField("name", TType.STRING, (short)1); private static final TField MAX_VERSIONS_FIELD_DESC = new TField("maxVersions", TType.I32, (short)2); private static final TField COMPRESSION_FIELD_DESC = new TField("compression", TType.STRING, (short)3); @@ -47,53 +55,105 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable private static final TField TIME_TO_LIVE_FIELD_DESC = new TField("timeToLive", TType.I32, (short)9); public byte[] name; - public static final int NAME = 1; public int maxVersions; - public static final int MAXVERSIONS = 2; public String compression; - public static final int COMPRESSION = 3; public boolean inMemory; - public static final int INMEMORY = 4; public String bloomFilterType; - public static final int BLOOMFILTERTYPE = 5; public int bloomFilterVectorSize; - public static final int BLOOMFILTERVECTORSIZE = 6; public int bloomFilterNbHashes; - public static final int BLOOMFILTERNBHASHES = 7; public boolean blockCacheEnabled; - public static final int BLOCKCACHEENABLED = 8; public int timeToLive; - public static final int TIMETOLIVE = 9; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean maxVersions = false; - public boolean inMemory = false; - public boolean bloomFilterVectorSize = false; - public boolean bloomFilterNbHashes = false; - public boolean blockCacheEnabled = false; - public boolean timeToLive = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + NAME((short)1, "name"), + MAX_VERSIONS((short)2, "maxVersions"), + COMPRESSION((short)3, "compression"), + IN_MEMORY((short)4, "inMemory"), + BLOOM_FILTER_TYPE((short)5, "bloomFilterType"), + BLOOM_FILTER_VECTOR_SIZE((short)6, "bloomFilterVectorSize"), + BLOOM_FILTER_NB_HASHES((short)7, "bloomFilterNbHashes"), + BLOCK_CACHE_ENABLED((short)8, "blockCacheEnabled"), + TIME_TO_LIVE((short)9, "timeToLive"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(NAME, new FieldMetaData("name", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __MAXVERSIONS_ISSET_ID = 0; + private static final int __INMEMORY_ISSET_ID = 1; + private static final int __BLOOMFILTERVECTORSIZE_ISSET_ID = 2; + private static final int __BLOOMFILTERNBHASHES_ISSET_ID = 3; + private static final int __BLOCKCACHEENABLED_ISSET_ID = 4; + private static final int __TIMETOLIVE_ISSET_ID = 5; + private BitSet __isset_bit_vector = new BitSet(6); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.NAME, new FieldMetaData("name", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(MAXVERSIONS, new FieldMetaData("maxVersions", TFieldRequirementType.DEFAULT, + put(_Fields.MAX_VERSIONS, new FieldMetaData("maxVersions", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(COMPRESSION, new FieldMetaData("compression", TFieldRequirementType.DEFAULT, + put(_Fields.COMPRESSION, new FieldMetaData("compression", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(INMEMORY, new FieldMetaData("inMemory", TFieldRequirementType.DEFAULT, + put(_Fields.IN_MEMORY, new FieldMetaData("inMemory", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.BOOL))); - put(BLOOMFILTERTYPE, new FieldMetaData("bloomFilterType", TFieldRequirementType.DEFAULT, + put(_Fields.BLOOM_FILTER_TYPE, new FieldMetaData("bloomFilterType", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(BLOOMFILTERVECTORSIZE, new FieldMetaData("bloomFilterVectorSize", TFieldRequirementType.DEFAULT, + put(_Fields.BLOOM_FILTER_VECTOR_SIZE, new FieldMetaData("bloomFilterVectorSize", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(BLOOMFILTERNBHASHES, new FieldMetaData("bloomFilterNbHashes", TFieldRequirementType.DEFAULT, + put(_Fields.BLOOM_FILTER_NB_HASHES, new FieldMetaData("bloomFilterNbHashes", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(BLOCKCACHEENABLED, new FieldMetaData("blockCacheEnabled", TFieldRequirementType.DEFAULT, + put(_Fields.BLOCK_CACHE_ENABLED, new FieldMetaData("blockCacheEnabled", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.BOOL))); - put(TIMETOLIVE, new FieldMetaData("timeToLive", TFieldRequirementType.DEFAULT, + put(_Fields.TIME_TO_LIVE, new FieldMetaData("timeToLive", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); }}); @@ -134,49 +194,49 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable this(); this.name = name; this.maxVersions = maxVersions; - this.__isset.maxVersions = true; + setMaxVersionsIsSet(true); this.compression = compression; this.inMemory = inMemory; - this.__isset.inMemory = true; + setInMemoryIsSet(true); this.bloomFilterType = bloomFilterType; this.bloomFilterVectorSize = bloomFilterVectorSize; - this.__isset.bloomFilterVectorSize = true; + setBloomFilterVectorSizeIsSet(true); this.bloomFilterNbHashes = bloomFilterNbHashes; - this.__isset.bloomFilterNbHashes = true; + setBloomFilterNbHashesIsSet(true); this.blockCacheEnabled = blockCacheEnabled; - this.__isset.blockCacheEnabled = true; + setBlockCacheEnabledIsSet(true); this.timeToLive = timeToLive; - this.__isset.timeToLive = true; + setTimeToLiveIsSet(true); } /** * Performs a deep copy on other. */ public ColumnDescriptor(ColumnDescriptor other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetName()) { this.name = other.name; } - __isset.maxVersions = other.__isset.maxVersions; this.maxVersions = other.maxVersions; if (other.isSetCompression()) { this.compression = other.compression; } - __isset.inMemory = other.__isset.inMemory; this.inMemory = other.inMemory; if (other.isSetBloomFilterType()) { this.bloomFilterType = other.bloomFilterType; } - __isset.bloomFilterVectorSize = other.__isset.bloomFilterVectorSize; this.bloomFilterVectorSize = other.bloomFilterVectorSize; - __isset.bloomFilterNbHashes = other.__isset.bloomFilterNbHashes; this.bloomFilterNbHashes = other.bloomFilterNbHashes; - __isset.blockCacheEnabled = other.__isset.blockCacheEnabled; this.blockCacheEnabled = other.blockCacheEnabled; - __isset.timeToLive = other.__isset.timeToLive; this.timeToLive = other.timeToLive; } - @Override + public ColumnDescriptor deepCopy() { + return new ColumnDescriptor(this); + } + + @Deprecated public ColumnDescriptor clone() { return new ColumnDescriptor(this); } @@ -185,15 +245,16 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable return this.name; } - public void setName(byte[] name) { + public ColumnDescriptor setName(byte[] name) { this.name = name; + return this; } public void unsetName() { this.name = null; } - // Returns true if field name is set (has been asigned a value) and false otherwise + /** Returns true if field name is set (has been asigned a value) and false otherwise */ public boolean isSetName() { return this.name != null; } @@ -208,37 +269,39 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable return this.maxVersions; } - public void setMaxVersions(int maxVersions) { + public ColumnDescriptor setMaxVersions(int maxVersions) { this.maxVersions = maxVersions; - this.__isset.maxVersions = true; + setMaxVersionsIsSet(true); + return this; } public void unsetMaxVersions() { - this.__isset.maxVersions = false; + __isset_bit_vector.clear(__MAXVERSIONS_ISSET_ID); } - // Returns true if field maxVersions is set (has been asigned a value) and false otherwise + /** Returns true if field maxVersions is set (has been asigned a value) and false otherwise */ public boolean isSetMaxVersions() { - return this.__isset.maxVersions; + return __isset_bit_vector.get(__MAXVERSIONS_ISSET_ID); } public void setMaxVersionsIsSet(boolean value) { - this.__isset.maxVersions = value; + __isset_bit_vector.set(__MAXVERSIONS_ISSET_ID, value); } public String getCompression() { return this.compression; } - public void setCompression(String compression) { + public ColumnDescriptor setCompression(String compression) { this.compression = compression; + return this; } public void unsetCompression() { this.compression = null; } - // Returns true if field compression is set (has been asigned a value) and false otherwise + /** Returns true if field compression is set (has been asigned a value) and false otherwise */ public boolean isSetCompression() { return this.compression != null; } @@ -253,37 +316,39 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable return this.inMemory; } - public void setInMemory(boolean inMemory) { + public ColumnDescriptor setInMemory(boolean inMemory) { this.inMemory = inMemory; - this.__isset.inMemory = true; + setInMemoryIsSet(true); + return this; } public void unsetInMemory() { - this.__isset.inMemory = false; + __isset_bit_vector.clear(__INMEMORY_ISSET_ID); } - // Returns true if field inMemory is set (has been asigned a value) and false otherwise + /** Returns true if field inMemory is set (has been asigned a value) and false otherwise */ public boolean isSetInMemory() { - return this.__isset.inMemory; + return __isset_bit_vector.get(__INMEMORY_ISSET_ID); } public void setInMemoryIsSet(boolean value) { - this.__isset.inMemory = value; + __isset_bit_vector.set(__INMEMORY_ISSET_ID, value); } public String getBloomFilterType() { return this.bloomFilterType; } - public void setBloomFilterType(String bloomFilterType) { + public ColumnDescriptor setBloomFilterType(String bloomFilterType) { this.bloomFilterType = bloomFilterType; + return this; } public void unsetBloomFilterType() { this.bloomFilterType = null; } - // Returns true if field bloomFilterType is set (has been asigned a value) and false otherwise + /** Returns true if field bloomFilterType is set (has been asigned a value) and false otherwise */ public boolean isSetBloomFilterType() { return this.bloomFilterType != null; } @@ -298,92 +363,96 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable return this.bloomFilterVectorSize; } - public void setBloomFilterVectorSize(int bloomFilterVectorSize) { + public ColumnDescriptor setBloomFilterVectorSize(int bloomFilterVectorSize) { this.bloomFilterVectorSize = bloomFilterVectorSize; - this.__isset.bloomFilterVectorSize = true; + setBloomFilterVectorSizeIsSet(true); + return this; } public void unsetBloomFilterVectorSize() { - this.__isset.bloomFilterVectorSize = false; + __isset_bit_vector.clear(__BLOOMFILTERVECTORSIZE_ISSET_ID); } - // Returns true if field bloomFilterVectorSize is set (has been asigned a value) and false otherwise + /** Returns true if field bloomFilterVectorSize is set (has been asigned a value) and false otherwise */ public boolean isSetBloomFilterVectorSize() { - return this.__isset.bloomFilterVectorSize; + return __isset_bit_vector.get(__BLOOMFILTERVECTORSIZE_ISSET_ID); } public void setBloomFilterVectorSizeIsSet(boolean value) { - this.__isset.bloomFilterVectorSize = value; + __isset_bit_vector.set(__BLOOMFILTERVECTORSIZE_ISSET_ID, value); } public int getBloomFilterNbHashes() { return this.bloomFilterNbHashes; } - public void setBloomFilterNbHashes(int bloomFilterNbHashes) { + public ColumnDescriptor setBloomFilterNbHashes(int bloomFilterNbHashes) { this.bloomFilterNbHashes = bloomFilterNbHashes; - this.__isset.bloomFilterNbHashes = true; + setBloomFilterNbHashesIsSet(true); + return this; } public void unsetBloomFilterNbHashes() { - this.__isset.bloomFilterNbHashes = false; + __isset_bit_vector.clear(__BLOOMFILTERNBHASHES_ISSET_ID); } - // Returns true if field bloomFilterNbHashes is set (has been asigned a value) and false otherwise + /** Returns true if field bloomFilterNbHashes is set (has been asigned a value) and false otherwise */ public boolean isSetBloomFilterNbHashes() { - return this.__isset.bloomFilterNbHashes; + return __isset_bit_vector.get(__BLOOMFILTERNBHASHES_ISSET_ID); } public void setBloomFilterNbHashesIsSet(boolean value) { - this.__isset.bloomFilterNbHashes = value; + __isset_bit_vector.set(__BLOOMFILTERNBHASHES_ISSET_ID, value); } public boolean isBlockCacheEnabled() { return this.blockCacheEnabled; } - public void setBlockCacheEnabled(boolean blockCacheEnabled) { + public ColumnDescriptor setBlockCacheEnabled(boolean blockCacheEnabled) { this.blockCacheEnabled = blockCacheEnabled; - this.__isset.blockCacheEnabled = true; + setBlockCacheEnabledIsSet(true); + return this; } public void unsetBlockCacheEnabled() { - this.__isset.blockCacheEnabled = false; + __isset_bit_vector.clear(__BLOCKCACHEENABLED_ISSET_ID); } - // Returns true if field blockCacheEnabled is set (has been asigned a value) and false otherwise + /** Returns true if field blockCacheEnabled is set (has been asigned a value) and false otherwise */ public boolean isSetBlockCacheEnabled() { - return this.__isset.blockCacheEnabled; + return __isset_bit_vector.get(__BLOCKCACHEENABLED_ISSET_ID); } public void setBlockCacheEnabledIsSet(boolean value) { - this.__isset.blockCacheEnabled = value; + __isset_bit_vector.set(__BLOCKCACHEENABLED_ISSET_ID, value); } public int getTimeToLive() { return this.timeToLive; } - public void setTimeToLive(int timeToLive) { + public ColumnDescriptor setTimeToLive(int timeToLive) { this.timeToLive = timeToLive; - this.__isset.timeToLive = true; + setTimeToLiveIsSet(true); + return this; } public void unsetTimeToLive() { - this.__isset.timeToLive = false; + __isset_bit_vector.clear(__TIMETOLIVE_ISSET_ID); } - // Returns true if field timeToLive is set (has been asigned a value) and false otherwise + /** Returns true if field timeToLive is set (has been asigned a value) and false otherwise */ public boolean isSetTimeToLive() { - return this.__isset.timeToLive; + return __isset_bit_vector.get(__TIMETOLIVE_ISSET_ID); } public void setTimeToLiveIsSet(boolean value) { - this.__isset.timeToLive = value; + __isset_bit_vector.set(__TIMETOLIVE_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case NAME: if (value == null) { unsetName(); @@ -392,7 +461,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case MAXVERSIONS: + case MAX_VERSIONS: if (value == null) { unsetMaxVersions(); } else { @@ -408,7 +477,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case INMEMORY: + case IN_MEMORY: if (value == null) { unsetInMemory(); } else { @@ -416,7 +485,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case BLOOMFILTERTYPE: + case BLOOM_FILTER_TYPE: if (value == null) { unsetBloomFilterType(); } else { @@ -424,7 +493,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case BLOOMFILTERVECTORSIZE: + case BLOOM_FILTER_VECTOR_SIZE: if (value == null) { unsetBloomFilterVectorSize(); } else { @@ -432,7 +501,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case BLOOMFILTERNBHASHES: + case BLOOM_FILTER_NB_HASHES: if (value == null) { unsetBloomFilterNbHashes(); } else { @@ -440,7 +509,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case BLOCKCACHEENABLED: + case BLOCK_CACHE_ENABLED: if (value == null) { unsetBlockCacheEnabled(); } else { @@ -448,7 +517,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - case TIMETOLIVE: + case TIME_TO_LIVE: if (value == null) { unsetTimeToLive(); } else { @@ -456,69 +525,77 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case NAME: return getName(); - case MAXVERSIONS: - return Integer.valueOf(getMaxVersions()); + case MAX_VERSIONS: + return new Integer(getMaxVersions()); case COMPRESSION: return getCompression(); - case INMEMORY: - return Boolean.valueOf(isInMemory()); + case IN_MEMORY: + return new Boolean(isInMemory()); - case BLOOMFILTERTYPE: + case BLOOM_FILTER_TYPE: return getBloomFilterType(); - case BLOOMFILTERVECTORSIZE: - return Integer.valueOf(getBloomFilterVectorSize()); + case BLOOM_FILTER_VECTOR_SIZE: + return new Integer(getBloomFilterVectorSize()); - case BLOOMFILTERNBHASHES: - return Integer.valueOf(getBloomFilterNbHashes()); + case BLOOM_FILTER_NB_HASHES: + return new Integer(getBloomFilterNbHashes()); - case BLOCKCACHEENABLED: - return Boolean.valueOf(isBlockCacheEnabled()); + case BLOCK_CACHE_ENABLED: + return new Boolean(isBlockCacheEnabled()); - case TIMETOLIVE: - return Integer.valueOf(getTimeToLive()); + case TIME_TO_LIVE: + return new Integer(getTimeToLive()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case NAME: return isSetName(); - case MAXVERSIONS: + case MAX_VERSIONS: return isSetMaxVersions(); case COMPRESSION: return isSetCompression(); - case INMEMORY: + case IN_MEMORY: return isSetInMemory(); - case BLOOMFILTERTYPE: + case BLOOM_FILTER_TYPE: return isSetBloomFilterType(); - case BLOOMFILTERVECTORSIZE: + case BLOOM_FILTER_VECTOR_SIZE: return isSetBloomFilterVectorSize(); - case BLOOMFILTERNBHASHES: + case BLOOM_FILTER_NB_HASHES: return isSetBloomFilterNbHashes(); - case BLOCKCACHEENABLED: + case BLOCK_CACHE_ENABLED: return isSetBlockCacheEnabled(); - case TIMETOLIVE: + case TIME_TO_LIVE: return isSetTimeToLive(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -620,6 +697,136 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_name = true && (isSetName()); + builder.append(present_name); + if (present_name) + builder.append(name); + + boolean present_maxVersions = true; + builder.append(present_maxVersions); + if (present_maxVersions) + builder.append(maxVersions); + + boolean present_compression = true && (isSetCompression()); + builder.append(present_compression); + if (present_compression) + builder.append(compression); + + boolean present_inMemory = true; + builder.append(present_inMemory); + if (present_inMemory) + builder.append(inMemory); + + boolean present_bloomFilterType = true && (isSetBloomFilterType()); + builder.append(present_bloomFilterType); + if (present_bloomFilterType) + builder.append(bloomFilterType); + + boolean present_bloomFilterVectorSize = true; + builder.append(present_bloomFilterVectorSize); + if (present_bloomFilterVectorSize) + builder.append(bloomFilterVectorSize); + + boolean present_bloomFilterNbHashes = true; + builder.append(present_bloomFilterNbHashes); + if (present_bloomFilterNbHashes) + builder.append(bloomFilterNbHashes); + + boolean present_blockCacheEnabled = true; + builder.append(present_blockCacheEnabled); + if (present_blockCacheEnabled) + builder.append(blockCacheEnabled); + + boolean present_timeToLive = true; + builder.append(present_timeToLive); + if (present_timeToLive) + builder.append(timeToLive); + + return builder.toHashCode(); + } + + public int compareTo(ColumnDescriptor other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + ColumnDescriptor typedOther = (ColumnDescriptor)other; + + lastComparison = Boolean.valueOf(isSetName()).compareTo(isSetName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(name, typedOther.name); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetMaxVersions()).compareTo(isSetMaxVersions()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(maxVersions, typedOther.maxVersions); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetCompression()).compareTo(isSetCompression()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(compression, typedOther.compression); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetInMemory()).compareTo(isSetInMemory()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(inMemory, typedOther.inMemory); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetBloomFilterType()).compareTo(isSetBloomFilterType()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(bloomFilterType, typedOther.bloomFilterType); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetBloomFilterVectorSize()).compareTo(isSetBloomFilterVectorSize()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(bloomFilterVectorSize, typedOther.bloomFilterVectorSize); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetBloomFilterNbHashes()).compareTo(isSetBloomFilterNbHashes()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(bloomFilterNbHashes, typedOther.bloomFilterNbHashes); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetBlockCacheEnabled()).compareTo(isSetBlockCacheEnabled()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(blockCacheEnabled, typedOther.blockCacheEnabled); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimeToLive()).compareTo(isSetTimeToLive()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timeToLive, typedOther.timeToLive); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -632,86 +839,86 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable if (field.type == TType.STOP) { break; } - switch (field.id) - { - case NAME: - if (field.type == TType.STRING) { - this.name = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case MAXVERSIONS: - if (field.type == TType.I32) { - this.maxVersions = iprot.readI32(); - this.__isset.maxVersions = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COMPRESSION: - if (field.type == TType.STRING) { - this.compression = iprot.readString(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case INMEMORY: - if (field.type == TType.BOOL) { - this.inMemory = iprot.readBool(); - this.__isset.inMemory = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case BLOOMFILTERTYPE: - if (field.type == TType.STRING) { - this.bloomFilterType = iprot.readString(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case BLOOMFILTERVECTORSIZE: - if (field.type == TType.I32) { - this.bloomFilterVectorSize = iprot.readI32(); - this.__isset.bloomFilterVectorSize = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case BLOOMFILTERNBHASHES: - if (field.type == TType.I32) { - this.bloomFilterNbHashes = iprot.readI32(); - this.__isset.bloomFilterNbHashes = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case BLOCKCACHEENABLED: - if (field.type == TType.BOOL) { - this.blockCacheEnabled = iprot.readBool(); - this.__isset.blockCacheEnabled = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMETOLIVE: - if (field.type == TType.I32) { - this.timeToLive = iprot.readI32(); - this.__isset.timeToLive = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case NAME: + if (field.type == TType.STRING) { + this.name = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case MAX_VERSIONS: + if (field.type == TType.I32) { + this.maxVersions = iprot.readI32(); + setMaxVersionsIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COMPRESSION: + if (field.type == TType.STRING) { + this.compression = iprot.readString(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IN_MEMORY: + if (field.type == TType.BOOL) { + this.inMemory = iprot.readBool(); + setInMemoryIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case BLOOM_FILTER_TYPE: + if (field.type == TType.STRING) { + this.bloomFilterType = iprot.readString(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case BLOOM_FILTER_VECTOR_SIZE: + if (field.type == TType.I32) { + this.bloomFilterVectorSize = iprot.readI32(); + setBloomFilterVectorSizeIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case BLOOM_FILTER_NB_HASHES: + if (field.type == TType.I32) { + this.bloomFilterNbHashes = iprot.readI32(); + setBloomFilterNbHashesIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case BLOCK_CACHE_ENABLED: + if (field.type == TType.BOOL) { + this.blockCacheEnabled = iprot.readBool(); + setBlockCacheEnabledIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIME_TO_LIVE: + if (field.type == TType.I32) { + this.timeToLive = iprot.readI32(); + setTimeToLiveIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -766,7 +973,7 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable if (this.name == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.name)); + sb.append(this.name); } first = false; if (!first) sb.append(", "); @@ -815,7 +1022,6 @@ public class ColumnDescriptor implements TBase, java.io.Serializable, Cloneable public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java b/src/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java index 8083045b833..4026367818d 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,13 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -1795,6 +1801,7 @@ public class Hbase { } public static class Processor implements TProcessor { + private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName()); public Processor(Iface iface) { iface_ = iface; @@ -1870,6 +1877,14 @@ public class Hbase { iface_.enableTable(args.tableName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing enableTable", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing enableTable"); + oprot.writeMessageBegin(new TMessage("enableTable", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("enableTable", TMessageType.REPLY, seqid)); result.write(oprot); @@ -1890,6 +1905,14 @@ public class Hbase { iface_.disableTable(args.tableName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing disableTable", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing disableTable"); + oprot.writeMessageBegin(new TMessage("disableTable", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("disableTable", TMessageType.REPLY, seqid)); result.write(oprot); @@ -1908,9 +1931,17 @@ public class Hbase { isTableEnabled_result result = new isTableEnabled_result(); try { result.success = iface_.isTableEnabled(args.tableName); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing isTableEnabled", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing isTableEnabled"); + oprot.writeMessageBegin(new TMessage("isTableEnabled", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("isTableEnabled", TMessageType.REPLY, seqid)); result.write(oprot); @@ -1931,6 +1962,14 @@ public class Hbase { iface_.compact(args.tableNameOrRegionName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing compact", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing compact"); + oprot.writeMessageBegin(new TMessage("compact", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("compact", TMessageType.REPLY, seqid)); result.write(oprot); @@ -1951,6 +1990,14 @@ public class Hbase { iface_.majorCompact(args.tableNameOrRegionName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing majorCompact", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing majorCompact"); + oprot.writeMessageBegin(new TMessage("majorCompact", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("majorCompact", TMessageType.REPLY, seqid)); result.write(oprot); @@ -1971,6 +2018,14 @@ public class Hbase { result.success = iface_.getTableNames(); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getTableNames", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getTableNames"); + oprot.writeMessageBegin(new TMessage("getTableNames", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getTableNames", TMessageType.REPLY, seqid)); result.write(oprot); @@ -1991,6 +2046,14 @@ public class Hbase { result.success = iface_.getColumnDescriptors(args.tableName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getColumnDescriptors", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getColumnDescriptors"); + oprot.writeMessageBegin(new TMessage("getColumnDescriptors", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getColumnDescriptors", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2011,6 +2074,14 @@ public class Hbase { result.success = iface_.getTableRegions(args.tableName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getTableRegions", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getTableRegions"); + oprot.writeMessageBegin(new TMessage("getTableRegions", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getTableRegions", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2035,6 +2106,14 @@ public class Hbase { result.ia = ia; } catch (AlreadyExists exist) { result.exist = exist; + } catch (Throwable th) { + LOGGER.error("Internal error processing createTable", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing createTable"); + oprot.writeMessageBegin(new TMessage("createTable", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("createTable", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2055,6 +2134,14 @@ public class Hbase { iface_.deleteTable(args.tableName); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing deleteTable", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing deleteTable"); + oprot.writeMessageBegin(new TMessage("deleteTable", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("deleteTable", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2075,6 +2162,14 @@ public class Hbase { result.success = iface_.get(args.tableName, args.row, args.column); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing get", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing get"); + oprot.writeMessageBegin(new TMessage("get", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("get", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2095,6 +2190,14 @@ public class Hbase { result.success = iface_.getVer(args.tableName, args.row, args.column, args.numVersions); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getVer", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getVer"); + oprot.writeMessageBegin(new TMessage("getVer", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getVer", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2115,6 +2218,14 @@ public class Hbase { result.success = iface_.getVerTs(args.tableName, args.row, args.column, args.timestamp, args.numVersions); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getVerTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getVerTs"); + oprot.writeMessageBegin(new TMessage("getVerTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getVerTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2135,6 +2246,14 @@ public class Hbase { result.success = iface_.getRow(args.tableName, args.row); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getRow", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getRow"); + oprot.writeMessageBegin(new TMessage("getRow", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getRow", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2155,6 +2274,14 @@ public class Hbase { result.success = iface_.getRowWithColumns(args.tableName, args.row, args.columns); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getRowWithColumns", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getRowWithColumns"); + oprot.writeMessageBegin(new TMessage("getRowWithColumns", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getRowWithColumns", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2175,6 +2302,14 @@ public class Hbase { result.success = iface_.getRowTs(args.tableName, args.row, args.timestamp); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getRowTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getRowTs"); + oprot.writeMessageBegin(new TMessage("getRowTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getRowTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2195,6 +2330,14 @@ public class Hbase { result.success = iface_.getRowWithColumnsTs(args.tableName, args.row, args.columns, args.timestamp); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing getRowWithColumnsTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing getRowWithColumnsTs"); + oprot.writeMessageBegin(new TMessage("getRowWithColumnsTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("getRowWithColumnsTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2217,6 +2360,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing mutateRow", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing mutateRow"); + oprot.writeMessageBegin(new TMessage("mutateRow", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("mutateRow", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2239,6 +2390,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing mutateRowTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing mutateRowTs"); + oprot.writeMessageBegin(new TMessage("mutateRowTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("mutateRowTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2261,6 +2420,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing mutateRows", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing mutateRows"); + oprot.writeMessageBegin(new TMessage("mutateRows", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("mutateRows", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2283,6 +2450,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing mutateRowsTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing mutateRowsTs"); + oprot.writeMessageBegin(new TMessage("mutateRowsTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("mutateRowsTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2301,11 +2476,19 @@ public class Hbase { atomicIncrement_result result = new atomicIncrement_result(); try { result.success = iface_.atomicIncrement(args.tableName, args.row, args.column, args.value); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing atomicIncrement", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing atomicIncrement"); + oprot.writeMessageBegin(new TMessage("atomicIncrement", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("atomicIncrement", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2326,6 +2509,14 @@ public class Hbase { iface_.deleteAll(args.tableName, args.row, args.column); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing deleteAll", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing deleteAll"); + oprot.writeMessageBegin(new TMessage("deleteAll", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("deleteAll", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2346,6 +2537,14 @@ public class Hbase { iface_.deleteAllTs(args.tableName, args.row, args.column, args.timestamp); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing deleteAllTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing deleteAllTs"); + oprot.writeMessageBegin(new TMessage("deleteAllTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("deleteAllTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2366,6 +2565,14 @@ public class Hbase { iface_.deleteAllRow(args.tableName, args.row); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing deleteAllRow", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing deleteAllRow"); + oprot.writeMessageBegin(new TMessage("deleteAllRow", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("deleteAllRow", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2386,6 +2593,14 @@ public class Hbase { iface_.deleteAllRowTs(args.tableName, args.row, args.timestamp); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing deleteAllRowTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing deleteAllRowTs"); + oprot.writeMessageBegin(new TMessage("deleteAllRowTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("deleteAllRowTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2404,9 +2619,17 @@ public class Hbase { scannerOpen_result result = new scannerOpen_result(); try { result.success = iface_.scannerOpen(args.tableName, args.startRow, args.columns); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerOpen", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpen"); + oprot.writeMessageBegin(new TMessage("scannerOpen", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerOpen", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2425,9 +2648,17 @@ public class Hbase { scannerOpenWithStop_result result = new scannerOpenWithStop_result(); try { result.success = iface_.scannerOpenWithStop(args.tableName, args.startRow, args.stopRow, args.columns); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerOpenWithStop", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithStop"); + oprot.writeMessageBegin(new TMessage("scannerOpenWithStop", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerOpenWithStop", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2446,9 +2677,17 @@ public class Hbase { scannerOpenWithPrefix_result result = new scannerOpenWithPrefix_result(); try { result.success = iface_.scannerOpenWithPrefix(args.tableName, args.startAndPrefix, args.columns); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerOpenWithPrefix", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithPrefix"); + oprot.writeMessageBegin(new TMessage("scannerOpenWithPrefix", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerOpenWithPrefix", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2467,9 +2706,17 @@ public class Hbase { scannerOpenTs_result result = new scannerOpenTs_result(); try { result.success = iface_.scannerOpenTs(args.tableName, args.startRow, args.columns, args.timestamp); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerOpenTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenTs"); + oprot.writeMessageBegin(new TMessage("scannerOpenTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerOpenTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2488,9 +2735,17 @@ public class Hbase { scannerOpenWithStopTs_result result = new scannerOpenWithStopTs_result(); try { result.success = iface_.scannerOpenWithStopTs(args.tableName, args.startRow, args.stopRow, args.columns, args.timestamp); - result.__isset.success = true; + result.setSuccessIsSet(true); } catch (IOError io) { result.io = io; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerOpenWithStopTs", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerOpenWithStopTs"); + oprot.writeMessageBegin(new TMessage("scannerOpenWithStopTs", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerOpenWithStopTs", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2513,6 +2768,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerGet", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerGet"); + oprot.writeMessageBegin(new TMessage("scannerGet", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerGet", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2535,6 +2798,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerGetList", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerGetList"); + oprot.writeMessageBegin(new TMessage("scannerGetList", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerGetList", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2557,6 +2828,14 @@ public class Hbase { result.io = io; } catch (IllegalArgument ia) { result.ia = ia; + } catch (Throwable th) { + LOGGER.error("Internal error processing scannerClose", th); + TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing scannerClose"); + oprot.writeMessageBegin(new TMessage("scannerClose", TMessageType.EXCEPTION, seqid)); + x.write(oprot); + oprot.writeMessageEnd(); + oprot.getTransport().flush(); + return; } oprot.writeMessageBegin(new TMessage("scannerClose", TMessageType.REPLY, seqid)); result.write(oprot); @@ -2568,16 +2847,72 @@ public class Hbase { } - public static class enableTable_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class enableTable_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("enableTable_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); public byte[] tableName; - public static final int TABLENAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -2604,7 +2939,11 @@ public class Hbase { } } - @Override + public enableTable_args deepCopy() { + return new enableTable_args(this); + } + + @Deprecated public enableTable_args clone() { return new enableTable_args(this); } @@ -2613,15 +2952,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public enableTable_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -2632,9 +2972,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -2642,29 +2982,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -2694,6 +3042,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + return builder.toHashCode(); + } + + public int compareTo(enableTable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + enableTable_args typedOther = (enableTable_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -2706,24 +3080,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -2744,34 +3118,91 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("enableTable_args("); + boolean first = true; sb.append("tableName:"); if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class enableTable_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class enableTable_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("enableTable_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -2798,7 +3229,11 @@ public class Hbase { } } - @Override + public enableTable_result deepCopy() { + return new enableTable_result(this); + } + + @Deprecated public enableTable_result clone() { return new enableTable_result(this); } @@ -2807,15 +3242,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public enableTable_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -2826,8 +3262,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -2836,29 +3272,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -2888,6 +3332,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(enableTable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + enableTable_result typedOther = (enableTable_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -2900,25 +3370,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -2938,6 +3408,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("enableTable_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -2945,27 +3416,83 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class disableTable_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class disableTable_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("disableTable_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); public byte[] tableName; - public static final int TABLENAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -2992,7 +3519,11 @@ public class Hbase { } } - @Override + public disableTable_args deepCopy() { + return new disableTable_args(this); + } + + @Deprecated public disableTable_args clone() { return new disableTable_args(this); } @@ -3001,15 +3532,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public disableTable_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -3020,9 +3552,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -3030,29 +3562,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -3082,6 +3622,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + return builder.toHashCode(); + } + + public int compareTo(disableTable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + disableTable_args typedOther = (disableTable_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -3094,24 +3660,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -3132,34 +3698,91 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("disableTable_args("); + boolean first = true; sb.append("tableName:"); if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class disableTable_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class disableTable_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("disableTable_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -3186,7 +3809,11 @@ public class Hbase { } } - @Override + public disableTable_result deepCopy() { + return new disableTable_result(this); + } + + @Deprecated public disableTable_result clone() { return new disableTable_result(this); } @@ -3195,15 +3822,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public disableTable_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -3214,8 +3842,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -3224,29 +3852,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -3276,6 +3912,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(disableTable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + disableTable_result typedOther = (disableTable_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -3288,25 +3950,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -3326,6 +3988,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("disableTable_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -3333,27 +3996,83 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class isTableEnabled_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class isTableEnabled_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("isTableEnabled_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); public byte[] tableName; - public static final int TABLENAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -3380,7 +4099,11 @@ public class Hbase { } } - @Override + public isTableEnabled_args deepCopy() { + return new isTableEnabled_args(this); + } + + @Deprecated public isTableEnabled_args clone() { return new isTableEnabled_args(this); } @@ -3389,15 +4112,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public isTableEnabled_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -3408,9 +4132,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -3418,29 +4142,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -3470,6 +4202,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + return builder.toHashCode(); + } + + public int compareTo(isTableEnabled_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + isTableEnabled_args typedOther = (isTableEnabled_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -3482,24 +4240,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -3520,45 +4278,98 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("isTableEnabled_args("); + boolean first = true; sb.append("tableName:"); if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class isTableEnabled_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class isTableEnabled_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("isTableEnabled_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.BOOL, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public boolean success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.BOOL))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -3575,7 +4386,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; } @@ -3583,14 +4394,19 @@ public class Hbase { * Performs a deep copy on other. */ public isTableEnabled_result(isTableEnabled_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); } } - @Override + public isTableEnabled_result deepCopy() { + return new isTableEnabled_result(this); + } + + @Deprecated public isTableEnabled_result clone() { return new isTableEnabled_result(this); } @@ -3599,37 +4415,39 @@ public class Hbase { return this.success; } - public void setSuccess(boolean success) { + public isTableEnabled_result setSuccess(boolean success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public isTableEnabled_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -3640,8 +4458,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -3658,34 +4476,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return Boolean.valueOf(isSuccess()); + return new Boolean(isSuccess()); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -3724,6 +4550,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(isTableEnabled_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + isTableEnabled_result typedOther = (isTableEnabled_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -3736,33 +4601,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.BOOL) { - this.success = iprot.readBool(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.BOOL) { + this.success = iprot.readBool(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -3805,21 +4670,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class compact_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class compact_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("compact_args"); + private static final TField TABLE_NAME_OR_REGION_NAME_FIELD_DESC = new TField("tableNameOrRegionName", TType.STRING, (short)1); public byte[] tableNameOrRegionName; - public static final int TABLENAMEORREGIONNAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAMEORREGIONNAME, new FieldMetaData("tableNameOrRegionName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME_OR_REGION_NAME((short)1, "tableNameOrRegionName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME_OR_REGION_NAME, new FieldMetaData("tableNameOrRegionName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -3846,7 +4766,11 @@ public class Hbase { } } - @Override + public compact_args deepCopy() { + return new compact_args(this); + } + + @Deprecated public compact_args clone() { return new compact_args(this); } @@ -3855,15 +4779,16 @@ public class Hbase { return this.tableNameOrRegionName; } - public void setTableNameOrRegionName(byte[] tableNameOrRegionName) { + public compact_args setTableNameOrRegionName(byte[] tableNameOrRegionName) { this.tableNameOrRegionName = tableNameOrRegionName; + return this; } public void unsetTableNameOrRegionName() { this.tableNameOrRegionName = null; } - // Returns true if field tableNameOrRegionName is set (has been asigned a value) and false otherwise + /** Returns true if field tableNameOrRegionName is set (has been asigned a value) and false otherwise */ public boolean isSetTableNameOrRegionName() { return this.tableNameOrRegionName != null; } @@ -3874,9 +4799,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAMEORREGIONNAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME_OR_REGION_NAME: if (value == null) { unsetTableNameOrRegionName(); } else { @@ -3884,29 +4809,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAMEORREGIONNAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME_OR_REGION_NAME: return getTableNameOrRegionName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAMEORREGIONNAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME_OR_REGION_NAME: return isSetTableNameOrRegionName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -3936,6 +4869,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableNameOrRegionName = true && (isSetTableNameOrRegionName()); + builder.append(present_tableNameOrRegionName); + if (present_tableNameOrRegionName) + builder.append(tableNameOrRegionName); + + return builder.toHashCode(); + } + + public int compareTo(compact_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + compact_args typedOther = (compact_args)other; + + lastComparison = Boolean.valueOf(isSetTableNameOrRegionName()).compareTo(isSetTableNameOrRegionName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableNameOrRegionName, typedOther.tableNameOrRegionName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -3948,24 +4907,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAMEORREGIONNAME: - if (field.type == TType.STRING) { - this.tableNameOrRegionName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME_OR_REGION_NAME: + if (field.type == TType.STRING) { + this.tableNameOrRegionName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -3986,34 +4945,91 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("compact_args("); + boolean first = true; sb.append("tableNameOrRegionName:"); if (this.tableNameOrRegionName == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.tableNameOrRegionName)); + sb.append(this.tableNameOrRegionName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class compact_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; - private static final TStruct STRUCT_DESC = new TStruct("compact_result"); + public static class compact_result implements TBase, java.io.Serializable, Cloneable, Comparable { + private static final TStruct STRUCT_DESC = new TStruct("compact_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -4040,7 +5056,11 @@ public class Hbase { } } - @Override + public compact_result deepCopy() { + return new compact_result(this); + } + + @Deprecated public compact_result clone() { return new compact_result(this); } @@ -4049,15 +5069,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public compact_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -4068,8 +5089,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -4078,29 +5099,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -4130,6 +5159,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(compact_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + compact_result typedOther = (compact_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -4142,25 +5197,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -4180,6 +5235,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("compact_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -4187,27 +5243,83 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class majorCompact_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class majorCompact_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("majorCompact_args"); + private static final TField TABLE_NAME_OR_REGION_NAME_FIELD_DESC = new TField("tableNameOrRegionName", TType.STRING, (short)1); public byte[] tableNameOrRegionName; - public static final int TABLENAMEORREGIONNAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAMEORREGIONNAME, new FieldMetaData("tableNameOrRegionName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME_OR_REGION_NAME((short)1, "tableNameOrRegionName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME_OR_REGION_NAME, new FieldMetaData("tableNameOrRegionName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -4234,7 +5346,11 @@ public class Hbase { } } - @Override + public majorCompact_args deepCopy() { + return new majorCompact_args(this); + } + + @Deprecated public majorCompact_args clone() { return new majorCompact_args(this); } @@ -4243,15 +5359,16 @@ public class Hbase { return this.tableNameOrRegionName; } - public void setTableNameOrRegionName(byte[] tableNameOrRegionName) { + public majorCompact_args setTableNameOrRegionName(byte[] tableNameOrRegionName) { this.tableNameOrRegionName = tableNameOrRegionName; + return this; } public void unsetTableNameOrRegionName() { this.tableNameOrRegionName = null; } - // Returns true if field tableNameOrRegionName is set (has been asigned a value) and false otherwise + /** Returns true if field tableNameOrRegionName is set (has been asigned a value) and false otherwise */ public boolean isSetTableNameOrRegionName() { return this.tableNameOrRegionName != null; } @@ -4262,9 +5379,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAMEORREGIONNAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME_OR_REGION_NAME: if (value == null) { unsetTableNameOrRegionName(); } else { @@ -4272,29 +5389,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAMEORREGIONNAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME_OR_REGION_NAME: return getTableNameOrRegionName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAMEORREGIONNAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME_OR_REGION_NAME: return isSetTableNameOrRegionName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -4324,6 +5449,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableNameOrRegionName = true && (isSetTableNameOrRegionName()); + builder.append(present_tableNameOrRegionName); + if (present_tableNameOrRegionName) + builder.append(tableNameOrRegionName); + + return builder.toHashCode(); + } + + public int compareTo(majorCompact_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + majorCompact_args typedOther = (majorCompact_args)other; + + lastComparison = Boolean.valueOf(isSetTableNameOrRegionName()).compareTo(isSetTableNameOrRegionName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableNameOrRegionName, typedOther.tableNameOrRegionName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -4336,24 +5487,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAMEORREGIONNAME: - if (field.type == TType.STRING) { - this.tableNameOrRegionName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME_OR_REGION_NAME: + if (field.type == TType.STRING) { + this.tableNameOrRegionName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -4374,34 +5525,91 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("majorCompact_args("); + boolean first = true; sb.append("tableNameOrRegionName:"); if (this.tableNameOrRegionName == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.tableNameOrRegionName)); + sb.append(this.tableNameOrRegionName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class majorCompact_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class majorCompact_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("majorCompact_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -4428,7 +5636,11 @@ public class Hbase { } } - @Override + public majorCompact_result deepCopy() { + return new majorCompact_result(this); + } + + @Deprecated public majorCompact_result clone() { return new majorCompact_result(this); } @@ -4437,15 +5649,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public majorCompact_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -4456,8 +5669,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -4466,29 +5679,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -4518,6 +5739,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(majorCompact_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + majorCompact_result typedOther = (majorCompact_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -4530,25 +5777,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -4568,6 +5815,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("majorCompact_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -4575,22 +5823,77 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getTableNames_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getTableNames_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getTableNames_args"); - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { +; + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ }}); static { @@ -4606,31 +5909,43 @@ public class Hbase { public getTableNames_args(getTableNames_args other) { } - @Override + public getTableNames_args deepCopy() { + return new getTableNames_args(this); + } + + @Deprecated public getTableNames_args clone() { return new getTableNames_args(this); } + public void setFieldValue(_Fields field, Object value) { + switch (field) { + } + } + public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); - } + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + public Object getFieldValue(_Fields field) { + switch (field) { } + throw new IllegalStateException(); + } + + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise public boolean isSet(int fieldID) { - switch (fieldID) { - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); - } + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -4651,6 +5966,19 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + return builder.toHashCode(); + } + + public int compareTo(getTableNames_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getTableNames_args typedOther = (getTableNames_args)other; + return 0; } @@ -4663,17 +5991,17 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -4689,33 +6017,90 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("getTableNames_args("); + boolean first = true; + sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getTableNames_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getTableNames_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getTableNames_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -4751,7 +6136,11 @@ public class Hbase { } } - @Override + public getTableNames_result deepCopy() { + return new getTableNames_result(this); + } + + @Deprecated public getTableNames_result clone() { return new getTableNames_result(this); } @@ -4775,15 +6164,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getTableNames_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -4798,15 +6188,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getTableNames_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -4817,8 +6208,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -4835,34 +6226,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -4901,6 +6300,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(getTableNames_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getTableNames_result typedOther = (getTableNames_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -4913,42 +6351,42 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list9 = iprot.readListBegin(); - this.success = new ArrayList(_list9.size); - for (int _i10 = 0; _i10 < _list9.size; ++_i10) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - byte[] _elem11; - _elem11 = iprot.readBinary(); - this.success.add(_elem11); + TList _list9 = iprot.readListBegin(); + this.success = new ArrayList(_list9.size); + for (int _i10 = 0; _i10 < _list9.size; ++_i10) + { + byte[] _elem11; + _elem11 = iprot.readBinary(); + this.success.add(_elem11); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -4960,7 +6398,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.success.size())); - for (byte[] _iter12 : this.success) { + for (byte[] _iter12 : this.success) + { oprot.writeBinary(_iter12); } oprot.writeListEnd(); @@ -5001,21 +6440,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getColumnDescriptors_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getColumnDescriptors_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getColumnDescriptors_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); public byte[] tableName; - public static final int TABLENAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -5042,7 +6536,11 @@ public class Hbase { } } - @Override + public getColumnDescriptors_args deepCopy() { + return new getColumnDescriptors_args(this); + } + + @Deprecated public getColumnDescriptors_args clone() { return new getColumnDescriptors_args(this); } @@ -5051,15 +6549,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getColumnDescriptors_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -5070,9 +6569,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -5080,29 +6579,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -5132,6 +6639,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + return builder.toHashCode(); + } + + public int compareTo(getColumnDescriptors_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getColumnDescriptors_args typedOther = (getColumnDescriptors_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -5144,24 +6677,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -5182,41 +6715,98 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("getColumnDescriptors_args("); + boolean first = true; sb.append("tableName:"); if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getColumnDescriptors_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getColumnDescriptors_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("getColumnDescriptors_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.MAP, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public Map success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new MapMetaData(TType.MAP, new FieldValueMetaData(TType.STRING), new StructMetaData(TType.STRUCT, ColumnDescriptor.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -5260,7 +6850,11 @@ public class Hbase { } } - @Override + public getColumnDescriptors_result deepCopy() { + return new getColumnDescriptors_result(this); + } + + @Deprecated public getColumnDescriptors_result clone() { return new getColumnDescriptors_result(this); } @@ -5280,15 +6874,16 @@ public class Hbase { return this.success; } - public void setSuccess(Map success) { + public getColumnDescriptors_result setSuccess(Map success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -5303,15 +6898,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getColumnDescriptors_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -5322,8 +6918,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -5340,34 +6936,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -5406,7 +7010,19 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -5418,45 +7034,45 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.MAP) { - { - TMap _map13 = iprot.readMapBegin(); - this.success = new HashMap(2*_map13.size); - for (int _i14 = 0; _i14 < _map13.size; ++_i14) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.MAP) { { - byte[] _key15; - ColumnDescriptor _val16; - _key15 = iprot.readBinary(); - _val16 = new ColumnDescriptor(); - _val16.read(iprot); - this.success.put(_key15, _val16); + TMap _map13 = iprot.readMapBegin(); + this.success = new HashMap(2*_map13.size); + for (int _i14 = 0; _i14 < _map13.size; ++_i14) + { + byte[] _key15; + ColumnDescriptor _val16; + _key15 = iprot.readBinary(); + _val16 = new ColumnDescriptor(); + _val16.read(iprot); + this.success.put(_key15, _val16); + } + iprot.readMapEnd(); } - iprot.readMapEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -5468,7 +7084,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeMapBegin(new TMap(TType.STRING, TType.STRUCT, this.success.size())); - for (Map.Entry _iter17 : this.success.entrySet()) { + for (Map.Entry _iter17 : this.success.entrySet()) + { oprot.writeBinary(_iter17.getKey()); _iter17.getValue().write(oprot); } @@ -5510,21 +7127,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getTableRegions_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getTableRegions_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getTableRegions_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); public byte[] tableName; - public static final int TABLENAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -5551,7 +7223,11 @@ public class Hbase { } } - @Override + public getTableRegions_args deepCopy() { + return new getTableRegions_args(this); + } + + @Deprecated public getTableRegions_args clone() { return new getTableRegions_args(this); } @@ -5560,15 +7236,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getTableRegions_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -5579,9 +7256,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -5589,29 +7266,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -5641,6 +7326,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + return builder.toHashCode(); + } + + public int compareTo(getTableRegions_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getTableRegions_args typedOther = (getTableRegions_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -5653,24 +7364,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -5691,40 +7402,97 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("getTableRegions_args("); + boolean first = true; sb.append("tableName:"); if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getTableRegions_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getTableRegions_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getTableRegions_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRegionInfo.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -5760,7 +7528,11 @@ public class Hbase { } } - @Override + public getTableRegions_result deepCopy() { + return new getTableRegions_result(this); + } + + @Deprecated public getTableRegions_result clone() { return new getTableRegions_result(this); } @@ -5784,15 +7556,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getTableRegions_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -5807,15 +7580,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getTableRegions_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -5826,8 +7600,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -5844,34 +7618,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -5910,6 +7692,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(getTableRegions_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getTableRegions_result typedOther = (getTableRegions_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -5922,43 +7743,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list18 = iprot.readListBegin(); - this.success = new ArrayList(_list18.size); - for (int _i19 = 0; _i19 < _list18.size; ++_i19) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRegionInfo _elem20; - _elem20 = new TRegionInfo(); - _elem20.read(iprot); - this.success.add(_elem20); + TList _list18 = iprot.readListBegin(); + this.success = new ArrayList(_list18.size); + for (int _i19 = 0; _i19 < _list18.size; ++_i19) + { + TRegionInfo _elem20; + _elem20 = new TRegionInfo(); + _elem20.read(iprot); + this.success.add(_elem20); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -5970,7 +7791,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRegionInfo _iter21 : this.success) { + for (TRegionInfo _iter21 : this.success) + { _iter21.write(oprot); } oprot.writeListEnd(); @@ -6011,26 +7833,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class createTable_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class createTable_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("createTable_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField COLUMN_FAMILIES_FIELD_DESC = new TField("columnFamilies", TType.LIST, (short)2); public byte[] tableName; - public static final int TABLENAME = 1; public List columnFamilies; - public static final int COLUMNFAMILIES = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + COLUMN_FAMILIES((short)2, "columnFamilies"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNFAMILIES, new FieldMetaData("columnFamilies", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN_FAMILIES, new FieldMetaData("columnFamilies", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, ColumnDescriptor.class)))); }}); @@ -6067,7 +7944,11 @@ public class Hbase { } } - @Override + public createTable_args deepCopy() { + return new createTable_args(this); + } + + @Deprecated public createTable_args clone() { return new createTable_args(this); } @@ -6076,15 +7957,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public createTable_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -6114,15 +7996,16 @@ public class Hbase { return this.columnFamilies; } - public void setColumnFamilies(List columnFamilies) { + public createTable_args setColumnFamilies(List columnFamilies) { this.columnFamilies = columnFamilies; + return this; } public void unsetColumnFamilies() { this.columnFamilies = null; } - // Returns true if field columnFamilies is set (has been asigned a value) and false otherwise + /** Returns true if field columnFamilies is set (has been asigned a value) and false otherwise */ public boolean isSetColumnFamilies() { return this.columnFamilies != null; } @@ -6133,9 +8016,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -6143,7 +8026,7 @@ public class Hbase { } break; - case COLUMNFAMILIES: + case COLUMN_FAMILIES: if (value == null) { unsetColumnFamilies(); } else { @@ -6151,34 +8034,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case COLUMNFAMILIES: + case COLUMN_FAMILIES: return getColumnFamilies(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case COLUMNFAMILIES: + case COLUMN_FAMILIES: return isSetColumnFamilies(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -6217,6 +8108,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_columnFamilies = true && (isSetColumnFamilies()); + builder.append(present_columnFamilies); + if (present_columnFamilies) + builder.append(columnFamilies); + + return builder.toHashCode(); + } + + public int compareTo(createTable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + createTable_args typedOther = (createTable_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumnFamilies()).compareTo(isSetColumnFamilies()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columnFamilies, typedOther.columnFamilies); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -6229,42 +8159,42 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNFAMILIES: - if (field.type == TType.LIST) { - { - TList _list22 = iprot.readListBegin(); - this.columnFamilies = new ArrayList(_list22.size); - for (int _i23 = 0; _i23 < _list22.size; ++_i23) - { - ColumnDescriptor _elem24; - _elem24 = new ColumnDescriptor(); - _elem24.read(iprot); - this.columnFamilies.add(_elem24); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case COLUMN_FAMILIES: + if (field.type == TType.LIST) { + { + TList _list22 = iprot.readListBegin(); + this.columnFamilies = new ArrayList(_list22.size); + for (int _i23 = 0; _i23 < _list22.size; ++_i23) + { + ColumnDescriptor _elem24; + _elem24 = new ColumnDescriptor(); + _elem24.read(iprot); + this.columnFamilies.add(_elem24); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -6282,7 +8212,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMN_FAMILIES_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.columnFamilies.size())); - for (ColumnDescriptor _iter25 : this.columnFamilies) { + for (ColumnDescriptor _iter25 : this.columnFamilies) + { _iter25.write(oprot); } oprot.writeListEnd(); @@ -6302,7 +8233,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -6319,31 +8250,86 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class createTable_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class createTable_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("createTable_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); private static final TField EXIST_FIELD_DESC = new TField("exist", TType.STRUCT, (short)3); public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; public AlreadyExists exist; - public static final int EXIST = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"), + IA((short)2, "ia"), + EXIST((short)3, "exist"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(EXIST, new FieldMetaData("exist", TFieldRequirementType.DEFAULT, + put(_Fields.EXIST, new FieldMetaData("exist", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -6380,7 +8366,11 @@ public class Hbase { } } - @Override + public createTable_result deepCopy() { + return new createTable_result(this); + } + + @Deprecated public createTable_result clone() { return new createTable_result(this); } @@ -6389,15 +8379,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public createTable_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -6412,15 +8403,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public createTable_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -6435,15 +8427,16 @@ public class Hbase { return this.exist; } - public void setExist(AlreadyExists exist) { + public createTable_result setExist(AlreadyExists exist) { this.exist = exist; + return this; } public void unsetExist() { this.exist = null; } - // Returns true if field exist is set (has been asigned a value) and false otherwise + /** Returns true if field exist is set (has been asigned a value) and false otherwise */ public boolean isSetExist() { return this.exist != null; } @@ -6454,8 +8447,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -6480,13 +8473,15 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); @@ -6496,23 +8491,29 @@ public class Hbase { case EXIST: return getExist(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); case IA: return isSetIa(); case EXIST: return isSetExist(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -6560,6 +8561,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + boolean present_exist = true && (isSetExist()); + builder.append(present_exist); + if (present_exist) + builder.append(exist); + + return builder.toHashCode(); + } + + public int compareTo(createTable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + createTable_result typedOther = (createTable_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetExist()).compareTo(isSetExist()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(exist, typedOther.exist); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -6572,41 +8625,41 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case EXIST: - if (field.type == TType.STRUCT) { - this.exist = new AlreadyExists(); - this.exist.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case EXIST: + if (field.type == TType.STRUCT) { + this.exist = new AlreadyExists(); + this.exist.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -6665,21 +8718,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteTable_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteTable_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteTable_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); public byte[] tableName; - public static final int TABLENAME = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -6706,7 +8814,11 @@ public class Hbase { } } - @Override + public deleteTable_args deepCopy() { + return new deleteTable_args(this); + } + + @Deprecated public deleteTable_args clone() { return new deleteTable_args(this); } @@ -6715,15 +8827,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public deleteTable_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -6734,9 +8847,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -6744,29 +8857,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -6796,6 +8917,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + return builder.toHashCode(); + } + + public int compareTo(deleteTable_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteTable_args typedOther = (deleteTable_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -6808,24 +8955,24 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -6846,34 +8993,91 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("deleteTable_args("); + boolean first = true; sb.append("tableName:"); if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteTable_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteTable_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteTable_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -6900,7 +9104,11 @@ public class Hbase { } } - @Override + public deleteTable_result deepCopy() { + return new deleteTable_result(this); + } + + @Deprecated public deleteTable_result clone() { return new deleteTable_result(this); } @@ -6909,15 +9117,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public deleteTable_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -6928,8 +9137,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -6938,29 +9147,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -6990,6 +9207,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(deleteTable_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteTable_result typedOther = (deleteTable_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -7002,25 +9245,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -7040,6 +9283,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("deleteTable_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -7047,37 +9291,93 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class get_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class get_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("get_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public byte[] column; - public static final int COLUMN = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMN((short)3, "column"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -7114,7 +9414,11 @@ public class Hbase { } } - @Override + public get_args deepCopy() { + return new get_args(this); + } + + @Deprecated public get_args clone() { return new get_args(this); } @@ -7123,15 +9427,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public get_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -7146,15 +9451,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public get_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -7169,15 +9475,16 @@ public class Hbase { return this.column; } - public void setColumn(byte[] column) { + public get_args setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -7188,9 +9495,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -7214,14 +9521,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -7230,23 +9539,29 @@ public class Hbase { case COLUMN: return getColumn(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case COLUMN: return isSetColumn(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -7294,6 +9609,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + return builder.toHashCode(); + } + + public int compareTo(get_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + get_args typedOther = (get_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -7306,38 +9673,38 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -7374,7 +9741,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -7382,7 +9749,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -7390,7 +9757,7 @@ public class Hbase { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; sb.append(")"); @@ -7399,27 +9766,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class get_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class get_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("get_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TCell.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -7455,7 +9877,11 @@ public class Hbase { } } - @Override + public get_result deepCopy() { + return new get_result(this); + } + + @Deprecated public get_result clone() { return new get_result(this); } @@ -7479,15 +9905,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public get_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -7502,15 +9929,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public get_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -7521,8 +9949,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -7539,34 +9967,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -7605,6 +10041,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(get_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + get_result typedOther = (get_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -7617,43 +10092,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list26 = iprot.readListBegin(); - this.success = new ArrayList(_list26.size); - for (int _i27 = 0; _i27 < _list26.size; ++_i27) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TCell _elem28; - _elem28 = new TCell(); - _elem28.read(iprot); - this.success.add(_elem28); + TList _list26 = iprot.readListBegin(); + this.success = new ArrayList(_list26.size); + for (int _i27 = 0; _i27 < _list26.size; ++_i27) + { + TCell _elem28; + _elem28 = new TCell(); + _elem28.read(iprot); + this.success.add(_elem28); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -7665,7 +10140,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TCell _iter29 : this.success) { + for (TCell _iter29 : this.success) + { _iter29.write(oprot); } oprot.writeListEnd(); @@ -7706,42 +10182,93 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getVer_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getVer_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getVer_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)3); private static final TField NUM_VERSIONS_FIELD_DESC = new TField("numVersions", TType.I32, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public byte[] column; - public static final int COLUMN = 3; public int numVersions; - public static final int NUMVERSIONS = 4; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean numVersions = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMN((short)3, "column"), + NUM_VERSIONS((short)4, "numVersions"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __NUMVERSIONS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(NUMVERSIONS, new FieldMetaData("numVersions", TFieldRequirementType.DEFAULT, + put(_Fields.NUM_VERSIONS, new FieldMetaData("numVersions", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); }}); @@ -7763,13 +10290,15 @@ public class Hbase { this.row = row; this.column = column; this.numVersions = numVersions; - this.__isset.numVersions = true; + setNumVersionsIsSet(true); } /** * Performs a deep copy on other. */ public getVer_args(getVer_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -7779,11 +10308,14 @@ public class Hbase { if (other.isSetColumn()) { this.column = other.column; } - __isset.numVersions = other.__isset.numVersions; this.numVersions = other.numVersions; } - @Override + public getVer_args deepCopy() { + return new getVer_args(this); + } + + @Deprecated public getVer_args clone() { return new getVer_args(this); } @@ -7792,15 +10324,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getVer_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -7815,15 +10348,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public getVer_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -7838,15 +10372,16 @@ public class Hbase { return this.column; } - public void setColumn(byte[] column) { + public getVer_args setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -7861,27 +10396,28 @@ public class Hbase { return this.numVersions; } - public void setNumVersions(int numVersions) { + public getVer_args setNumVersions(int numVersions) { this.numVersions = numVersions; - this.__isset.numVersions = true; + setNumVersionsIsSet(true); + return this; } public void unsetNumVersions() { - this.__isset.numVersions = false; + __isset_bit_vector.clear(__NUMVERSIONS_ISSET_ID); } - // Returns true if field numVersions is set (has been asigned a value) and false otherwise + /** Returns true if field numVersions is set (has been asigned a value) and false otherwise */ public boolean isSetNumVersions() { - return this.__isset.numVersions; + return __isset_bit_vector.get(__NUMVERSIONS_ISSET_ID); } public void setNumVersionsIsSet(boolean value) { - this.__isset.numVersions = value; + __isset_bit_vector.set(__NUMVERSIONS_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -7905,7 +10441,7 @@ public class Hbase { } break; - case NUMVERSIONS: + case NUM_VERSIONS: if (value == null) { unsetNumVersions(); } else { @@ -7913,14 +10449,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -7929,28 +10467,34 @@ public class Hbase { case COLUMN: return getColumn(); - case NUMVERSIONS: - return getNumVersions(); + case NUM_VERSIONS: + return new Integer(getNumVersions()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case COLUMN: return isSetColumn(); - case NUMVERSIONS: + case NUM_VERSIONS: return isSetNumVersions(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -8007,6 +10551,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + boolean present_numVersions = true; + builder.append(present_numVersions); + if (present_numVersions) + builder.append(numVersions); + + return builder.toHashCode(); + } + + public int compareTo(getVer_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getVer_args typedOther = (getVer_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetNumVersions()).compareTo(isSetNumVersions()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(numVersions, typedOther.numVersions); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -8019,46 +10628,46 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case NUMVERSIONS: - if (field.type == TType.I32) { - this.numVersions = iprot.readI32(); - this.__isset.numVersions = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case NUM_VERSIONS: + if (field.type == TType.I32) { + this.numVersions = iprot.readI32(); + setNumVersionsIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -8098,7 +10707,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -8106,7 +10715,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -8114,7 +10723,7 @@ public class Hbase { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; if (!first) sb.append(", "); @@ -8127,27 +10736,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getVer_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getVer_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getVer_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TCell.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -8183,7 +10847,11 @@ public class Hbase { } } - @Override + public getVer_result deepCopy() { + return new getVer_result(this); + } + + @Deprecated public getVer_result clone() { return new getVer_result(this); } @@ -8207,15 +10875,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getVer_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -8230,15 +10899,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getVer_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -8249,8 +10919,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -8267,34 +10937,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -8333,6 +11011,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(getVer_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getVer_result typedOther = (getVer_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -8345,43 +11062,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list30 = iprot.readListBegin(); - this.success = new ArrayList(_list30.size); - for (int _i31 = 0; _i31 < _list30.size; ++_i31) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TCell _elem32; - _elem32 = new TCell(); - _elem32.read(iprot); - this.success.add(_elem32); + TList _list30 = iprot.readListBegin(); + this.success = new ArrayList(_list30.size); + for (int _i31 = 0; _i31 < _list30.size; ++_i31) + { + TCell _elem32; + _elem32 = new TCell(); + _elem32.read(iprot); + this.success.add(_elem32); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -8393,7 +11110,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TCell _iter33 : this.success) { + for (TCell _iter33 : this.success) + { _iter33.write(oprot); } oprot.writeListEnd(); @@ -8434,14 +11152,13 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getVerTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getVerTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getVerTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)3); @@ -8449,33 +11166,85 @@ public class Hbase { private static final TField NUM_VERSIONS_FIELD_DESC = new TField("numVersions", TType.I32, (short)5); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public byte[] column; - public static final int COLUMN = 3; public long timestamp; - public static final int TIMESTAMP = 4; public int numVersions; - public static final int NUMVERSIONS = 5; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; - public boolean numVersions = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMN((short)3, "column"), + TIMESTAMP((short)4, "timestamp"), + NUM_VERSIONS((short)5, "numVersions"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private static final int __NUMVERSIONS_ISSET_ID = 1; + private BitSet __isset_bit_vector = new BitSet(2); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); - put(NUMVERSIONS, new FieldMetaData("numVersions", TFieldRequirementType.DEFAULT, + put(_Fields.NUM_VERSIONS, new FieldMetaData("numVersions", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); }}); @@ -8498,15 +11267,17 @@ public class Hbase { this.row = row; this.column = column; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); this.numVersions = numVersions; - this.__isset.numVersions = true; + setNumVersionsIsSet(true); } /** * Performs a deep copy on other. */ public getVerTs_args(getVerTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -8516,13 +11287,15 @@ public class Hbase { if (other.isSetColumn()) { this.column = other.column; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; - __isset.numVersions = other.__isset.numVersions; this.numVersions = other.numVersions; } - @Override + public getVerTs_args deepCopy() { + return new getVerTs_args(this); + } + + @Deprecated public getVerTs_args clone() { return new getVerTs_args(this); } @@ -8531,15 +11304,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getVerTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -8554,15 +11328,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public getVerTs_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -8577,15 +11352,16 @@ public class Hbase { return this.column; } - public void setColumn(byte[] column) { + public getVerTs_args setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -8600,49 +11376,51 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public getVerTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } public int getNumVersions() { return this.numVersions; } - public void setNumVersions(int numVersions) { + public getVerTs_args setNumVersions(int numVersions) { this.numVersions = numVersions; - this.__isset.numVersions = true; + setNumVersionsIsSet(true); + return this; } public void unsetNumVersions() { - this.__isset.numVersions = false; + __isset_bit_vector.clear(__NUMVERSIONS_ISSET_ID); } - // Returns true if field numVersions is set (has been asigned a value) and false otherwise + /** Returns true if field numVersions is set (has been asigned a value) and false otherwise */ public boolean isSetNumVersions() { - return this.__isset.numVersions; + return __isset_bit_vector.get(__NUMVERSIONS_ISSET_ID); } public void setNumVersionsIsSet(boolean value) { - this.__isset.numVersions = value; + __isset_bit_vector.set(__NUMVERSIONS_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -8674,7 +11452,7 @@ public class Hbase { } break; - case NUMVERSIONS: + case NUM_VERSIONS: if (value == null) { unsetNumVersions(); } else { @@ -8682,14 +11460,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -8699,20 +11479,23 @@ public class Hbase { return getColumn(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - case NUMVERSIONS: - return getNumVersions(); + case NUM_VERSIONS: + return new Integer(getNumVersions()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); @@ -8720,11 +11503,14 @@ public class Hbase { return isSetColumn(); case TIMESTAMP: return isSetTimestamp(); - case NUMVERSIONS: + case NUM_VERSIONS: return isSetNumVersions(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -8790,6 +11576,84 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + boolean present_numVersions = true; + builder.append(present_numVersions); + if (present_numVersions) + builder.append(numVersions); + + return builder.toHashCode(); + } + + public int compareTo(getVerTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getVerTs_args typedOther = (getVerTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetNumVersions()).compareTo(isSetNumVersions()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(numVersions, typedOther.numVersions); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -8802,54 +11666,54 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case NUMVERSIONS: - if (field.type == TType.I32) { - this.numVersions = iprot.readI32(); - this.__isset.numVersions = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case NUM_VERSIONS: + if (field.type == TType.I32) { + this.numVersions = iprot.readI32(); + setNumVersionsIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -8892,7 +11756,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -8900,7 +11764,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -8908,7 +11772,7 @@ public class Hbase { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; if (!first) sb.append(", "); @@ -8925,27 +11789,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getVerTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getVerTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getVerTs_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TCell.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -8981,7 +11900,11 @@ public class Hbase { } } - @Override + public getVerTs_result deepCopy() { + return new getVerTs_result(this); + } + + @Deprecated public getVerTs_result clone() { return new getVerTs_result(this); } @@ -9005,15 +11928,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getVerTs_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -9028,15 +11952,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getVerTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -9047,8 +11972,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -9065,34 +11990,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -9131,6 +12064,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(getVerTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getVerTs_result typedOther = (getVerTs_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -9143,43 +12115,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list34 = iprot.readListBegin(); - this.success = new ArrayList(_list34.size); - for (int _i35 = 0; _i35 < _list34.size; ++_i35) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TCell _elem36; - _elem36 = new TCell(); - _elem36.read(iprot); - this.success.add(_elem36); + TList _list34 = iprot.readListBegin(); + this.success = new ArrayList(_list34.size); + for (int _i35 = 0; _i35 < _list34.size; ++_i35) + { + TCell _elem36; + _elem36 = new TCell(); + _elem36.read(iprot); + this.success.add(_elem36); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -9191,7 +12163,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TCell _iter37 : this.success) { + for (TCell _iter37 : this.success) + { _iter37.write(oprot); } oprot.writeListEnd(); @@ -9232,26 +12205,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRow_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRow_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getRow_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -9283,7 +12311,11 @@ public class Hbase { } } - @Override + public getRow_args deepCopy() { + return new getRow_args(this); + } + + @Deprecated public getRow_args clone() { return new getRow_args(this); } @@ -9292,15 +12324,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getRow_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -9315,15 +12348,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public getRow_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -9334,9 +12368,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -9352,34 +12386,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: return getRow(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -9418,6 +12460,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + return builder.toHashCode(); + } + + public int compareTo(getRow_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getRow_args typedOther = (getRow_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -9430,31 +12511,31 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -9486,7 +12567,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -9494,7 +12575,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; sb.append(")"); @@ -9503,27 +12584,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRow_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRow_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("getRow_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRowResult.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -9559,7 +12695,11 @@ public class Hbase { } } - @Override + public getRow_result deepCopy() { + return new getRow_result(this); + } + + @Deprecated public getRow_result clone() { return new getRow_result(this); } @@ -9583,15 +12723,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getRow_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -9606,15 +12747,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getRow_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -9625,8 +12767,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -9643,34 +12785,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -9709,7 +12859,19 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -9721,43 +12883,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list38 = iprot.readListBegin(); - this.success = new ArrayList(_list38.size); - for (int _i39 = 0; _i39 < _list38.size; ++_i39) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRowResult _elem40; - _elem40 = new TRowResult(); - _elem40.read(iprot); - this.success.add(_elem40); + TList _list38 = iprot.readListBegin(); + this.success = new ArrayList(_list38.size); + for (int _i39 = 0; _i39 < _list38.size; ++_i39) + { + TRowResult _elem40; + _elem40 = new TRowResult(); + _elem40.read(iprot); + this.success.add(_elem40); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -9769,7 +12931,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRowResult _iter41 : this.success) { + for (TRowResult _iter41 : this.success) + { _iter41.write(oprot); } oprot.writeListEnd(); @@ -9810,31 +12973,86 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRowWithColumns_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRowWithColumns_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getRowWithColumns_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public List columns; - public static final int COLUMNS = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMNS((short)3, "columns"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); }}); @@ -9876,7 +13094,11 @@ public class Hbase { } } - @Override + public getRowWithColumns_args deepCopy() { + return new getRowWithColumns_args(this); + } + + @Deprecated public getRowWithColumns_args clone() { return new getRowWithColumns_args(this); } @@ -9885,15 +13107,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getRowWithColumns_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -9908,15 +13131,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public getRowWithColumns_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -9946,15 +13170,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public getRowWithColumns_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -9965,9 +13190,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -9991,14 +13216,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -10007,23 +13234,29 @@ public class Hbase { case COLUMNS: return getColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case COLUMNS: return isSetColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -10071,6 +13304,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + return builder.toHashCode(); + } + + public int compareTo(getRowWithColumns_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getRowWithColumns_args typedOther = (getRowWithColumns_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -10083,48 +13368,48 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list42 = iprot.readListBegin(); - this.columns = new ArrayList(_list42.size); - for (int _i43 = 0; _i43 < _list42.size; ++_i43) - { - byte[] _elem44; - _elem44 = iprot.readBinary(); - this.columns.add(_elem44); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list42 = iprot.readListBegin(); + this.columns = new ArrayList(_list42.size); + for (int _i43 = 0; _i43 < _list42.size; ++_i43) + { + byte[] _elem44; + _elem44 = iprot.readBinary(); + this.columns.add(_elem44); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -10147,7 +13432,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter45 : this.columns) { + for (byte[] _iter45 : this.columns) + { oprot.writeBinary(_iter45); } oprot.writeListEnd(); @@ -10167,7 +13453,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -10175,7 +13461,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -10192,27 +13478,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRowWithColumns_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRowWithColumns_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("getRowWithColumns_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRowResult.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -10248,7 +13589,11 @@ public class Hbase { } } - @Override + public getRowWithColumns_result deepCopy() { + return new getRowWithColumns_result(this); + } + + @Deprecated public getRowWithColumns_result clone() { return new getRowWithColumns_result(this); } @@ -10272,15 +13617,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getRowWithColumns_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -10295,15 +13641,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getRowWithColumns_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -10314,8 +13661,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -10332,34 +13679,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -10398,7 +13753,19 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -10410,43 +13777,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list46 = iprot.readListBegin(); - this.success = new ArrayList(_list46.size); - for (int _i47 = 0; _i47 < _list46.size; ++_i47) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRowResult _elem48; - _elem48 = new TRowResult(); - _elem48.read(iprot); - this.success.add(_elem48); + TList _list46 = iprot.readListBegin(); + this.success = new ArrayList(_list46.size); + for (int _i47 = 0; _i47 < _list46.size; ++_i47) + { + TRowResult _elem48; + _elem48 = new TRowResult(); + _elem48.read(iprot); + this.success.add(_elem48); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -10458,7 +13825,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRowResult _iter49 : this.success) { + for (TRowResult _iter49 : this.success) + { _iter49.write(oprot); } oprot.writeListEnd(); @@ -10499,37 +13867,88 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRowTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRowTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getRowTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public long timestamp; - public static final int TIMESTAMP = 3; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - private boolean timestamp; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + TIMESTAMP((short)3, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -10549,24 +13968,29 @@ public class Hbase { this.tableName = tableName; this.row = row; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public getRowTs_args(getRowTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } if (other.isSetRow()) { this.row = other.row; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public getRowTs_args deepCopy() { + return new getRowTs_args(this); + } + + @Deprecated public getRowTs_args clone() { return new getRowTs_args(this); } @@ -10575,15 +13999,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getRowTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -10598,15 +14023,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public getRowTs_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -10621,27 +14047,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public getRowTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -10665,39 +14092,47 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: return getRow(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -10745,6 +14180,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(getRowTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getRowTs_args typedOther = (getRowTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -10757,39 +14244,39 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -10824,7 +14311,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -10832,7 +14319,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -10845,27 +14332,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRowTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRowTs_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("getRowTs_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRowResult.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -10901,7 +14443,11 @@ public class Hbase { } } - @Override + public getRowTs_result deepCopy() { + return new getRowTs_result(this); + } + + @Deprecated public getRowTs_result clone() { return new getRowTs_result(this); } @@ -10925,15 +14471,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getRowTs_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -10948,15 +14495,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getRowTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -10967,8 +14515,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -10985,34 +14533,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -11051,7 +14607,19 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -11063,43 +14631,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list50 = iprot.readListBegin(); - this.success = new ArrayList(_list50.size); - for (int _i51 = 0; _i51 < _list50.size; ++_i51) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRowResult _elem52; - _elem52 = new TRowResult(); - _elem52.read(iprot); - this.success.add(_elem52); + TList _list50 = iprot.readListBegin(); + this.success = new ArrayList(_list50.size); + for (int _i51 = 0; _i51 < _list50.size; ++_i51) + { + TRowResult _elem52; + _elem52 = new TRowResult(); + _elem52.read(iprot); + this.success.add(_elem52); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -11111,7 +14679,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRowResult _iter53 : this.success) { + for (TRowResult _iter53 : this.success) + { _iter53.write(oprot); } oprot.writeListEnd(); @@ -11152,43 +14721,94 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRowWithColumnsTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRowWithColumnsTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("getRowWithColumnsTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)3); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public List columns; - public static final int COLUMNS = 3; public long timestamp; - public static final int TIMESTAMP = 4; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMNS((short)3, "columns"), + TIMESTAMP((short)4, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -11210,13 +14830,15 @@ public class Hbase { this.row = row; this.columns = columns; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public getRowWithColumnsTs_args(getRowWithColumnsTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -11230,11 +14852,14 @@ public class Hbase { } this.columns = __this__columns; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public getRowWithColumnsTs_args deepCopy() { + return new getRowWithColumnsTs_args(this); + } + + @Deprecated public getRowWithColumnsTs_args clone() { return new getRowWithColumnsTs_args(this); } @@ -11243,15 +14868,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public getRowWithColumnsTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -11266,15 +14892,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public getRowWithColumnsTs_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -11304,15 +14931,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public getRowWithColumnsTs_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -11327,27 +14955,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public getRowWithColumnsTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -11379,14 +15008,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -11396,17 +15027,20 @@ public class Hbase { return getColumns(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); @@ -11414,9 +15048,12 @@ public class Hbase { return isSetColumns(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -11473,6 +15110,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(getRowWithColumnsTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getRowWithColumnsTs_args typedOther = (getRowWithColumnsTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -11485,56 +15187,56 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list54 = iprot.readListBegin(); - this.columns = new ArrayList(_list54.size); - for (int _i55 = 0; _i55 < _list54.size; ++_i55) - { - byte[] _elem56; - _elem56 = iprot.readBinary(); - this.columns.add(_elem56); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list54 = iprot.readListBegin(); + this.columns = new ArrayList(_list54.size); + for (int _i55 = 0; _i55 < _list54.size; ++_i55) + { + byte[] _elem56; + _elem56 = iprot.readBinary(); + this.columns.add(_elem56); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -11557,7 +15259,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter57 : this.columns) { + for (byte[] _iter57 : this.columns) + { oprot.writeBinary(_iter57); } oprot.writeListEnd(); @@ -11580,7 +15283,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -11588,7 +15291,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -11609,27 +15312,82 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class getRowWithColumnsTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class getRowWithColumnsTs_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("getRowWithColumnsTs_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRowResult.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -11665,7 +15423,11 @@ public class Hbase { } } - @Override + public getRowWithColumnsTs_result deepCopy() { + return new getRowWithColumnsTs_result(this); + } + + @Deprecated public getRowWithColumnsTs_result clone() { return new getRowWithColumnsTs_result(this); } @@ -11689,15 +15451,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public getRowWithColumnsTs_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -11712,15 +15475,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public getRowWithColumnsTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -11731,8 +15495,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -11749,34 +15513,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -11815,7 +15587,19 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -11827,43 +15611,43 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list58 = iprot.readListBegin(); - this.success = new ArrayList(_list58.size); - for (int _i59 = 0; _i59 < _list58.size; ++_i59) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRowResult _elem60; - _elem60 = new TRowResult(); - _elem60.read(iprot); - this.success.add(_elem60); + TList _list58 = iprot.readListBegin(); + this.success = new ArrayList(_list58.size); + for (int _i59 = 0; _i59 < _list58.size; ++_i59) + { + TRowResult _elem60; + _elem60 = new TRowResult(); + _elem60.read(iprot); + this.success.add(_elem60); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -11875,7 +15659,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRowResult _iter61 : this.success) { + for (TRowResult _iter61 : this.success) + { _iter61.write(oprot); } oprot.writeListEnd(); @@ -11916,31 +15701,86 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRow_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRow_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRow_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField MUTATIONS_FIELD_DESC = new TField("mutations", TType.LIST, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public List mutations; - public static final int MUTATIONS = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + MUTATIONS((short)3, "mutations"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(MUTATIONS, new FieldMetaData("mutations", TFieldRequirementType.DEFAULT, + put(_Fields.MUTATIONS, new FieldMetaData("mutations", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, Mutation.class)))); }}); @@ -11982,7 +15822,11 @@ public class Hbase { } } - @Override + public mutateRow_args deepCopy() { + return new mutateRow_args(this); + } + + @Deprecated public mutateRow_args clone() { return new mutateRow_args(this); } @@ -11991,15 +15835,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public mutateRow_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -12014,15 +15859,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public mutateRow_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -12052,15 +15898,16 @@ public class Hbase { return this.mutations; } - public void setMutations(List mutations) { + public mutateRow_args setMutations(List mutations) { this.mutations = mutations; + return this; } public void unsetMutations() { this.mutations = null; } - // Returns true if field mutations is set (has been asigned a value) and false otherwise + /** Returns true if field mutations is set (has been asigned a value) and false otherwise */ public boolean isSetMutations() { return this.mutations != null; } @@ -12071,9 +15918,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -12097,14 +15944,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -12113,23 +15962,29 @@ public class Hbase { case MUTATIONS: return getMutations(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case MUTATIONS: return isSetMutations(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -12177,6 +16032,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_mutations = true && (isSetMutations()); + builder.append(present_mutations); + if (present_mutations) + builder.append(mutations); + + return builder.toHashCode(); + } + + public int compareTo(mutateRow_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRow_args typedOther = (mutateRow_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetMutations()).compareTo(isSetMutations()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(mutations, typedOther.mutations); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -12189,49 +16096,49 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case MUTATIONS: - if (field.type == TType.LIST) { - { - TList _list62 = iprot.readListBegin(); - this.mutations = new ArrayList(_list62.size); - for (int _i63 = 0; _i63 < _list62.size; ++_i63) - { - Mutation _elem64; - _elem64 = new Mutation(); - _elem64.read(iprot); - this.mutations.add(_elem64); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case MUTATIONS: + if (field.type == TType.LIST) { + { + TList _list62 = iprot.readListBegin(); + this.mutations = new ArrayList(_list62.size); + for (int _i63 = 0; _i63 < _list62.size; ++_i63) + { + Mutation _elem64; + _elem64 = new Mutation(); + _elem64.read(iprot); + this.mutations.add(_elem64); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -12254,7 +16161,8 @@ public class Hbase { oprot.writeFieldBegin(MUTATIONS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.mutations.size())); - for (Mutation _iter65 : this.mutations) { + for (Mutation _iter65 : this.mutations) + { _iter65.write(oprot); } oprot.writeListEnd(); @@ -12274,7 +16182,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -12282,7 +16190,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -12299,26 +16207,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRow_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRow_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRow_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -12350,7 +16313,11 @@ public class Hbase { } } - @Override + public mutateRow_result deepCopy() { + return new mutateRow_result(this); + } + + @Deprecated public mutateRow_result clone() { return new mutateRow_result(this); } @@ -12359,15 +16326,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public mutateRow_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -12382,15 +16350,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public mutateRow_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -12401,8 +16370,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -12419,34 +16388,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -12485,6 +16462,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); + } + + public int compareTo(mutateRow_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRow_result typedOther = (mutateRow_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -12497,33 +16513,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -12570,43 +16586,94 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRowTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRowTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRowTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField MUTATIONS_FIELD_DESC = new TField("mutations", TType.LIST, (short)3); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public List mutations; - public static final int MUTATIONS = 3; public long timestamp; - public static final int TIMESTAMP = 4; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + MUTATIONS((short)3, "mutations"), + TIMESTAMP((short)4, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(MUTATIONS, new FieldMetaData("mutations", TFieldRequirementType.DEFAULT, + put(_Fields.MUTATIONS, new FieldMetaData("mutations", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, Mutation.class)))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -12628,13 +16695,15 @@ public class Hbase { this.row = row; this.mutations = mutations; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public mutateRowTs_args(mutateRowTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -12648,11 +16717,14 @@ public class Hbase { } this.mutations = __this__mutations; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public mutateRowTs_args deepCopy() { + return new mutateRowTs_args(this); + } + + @Deprecated public mutateRowTs_args clone() { return new mutateRowTs_args(this); } @@ -12661,15 +16733,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public mutateRowTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -12684,15 +16757,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public mutateRowTs_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -12722,15 +16796,16 @@ public class Hbase { return this.mutations; } - public void setMutations(List mutations) { + public mutateRowTs_args setMutations(List mutations) { this.mutations = mutations; + return this; } public void unsetMutations() { this.mutations = null; } - // Returns true if field mutations is set (has been asigned a value) and false otherwise + /** Returns true if field mutations is set (has been asigned a value) and false otherwise */ public boolean isSetMutations() { return this.mutations != null; } @@ -12745,27 +16820,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public mutateRowTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -12797,14 +16873,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -12814,17 +16892,20 @@ public class Hbase { return getMutations(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); @@ -12832,9 +16913,12 @@ public class Hbase { return isSetMutations(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -12891,6 +16975,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_mutations = true && (isSetMutations()); + builder.append(present_mutations); + if (present_mutations) + builder.append(mutations); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(mutateRowTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRowTs_args typedOther = (mutateRowTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetMutations()).compareTo(isSetMutations()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(mutations, typedOther.mutations); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -12903,57 +17052,57 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case MUTATIONS: - if (field.type == TType.LIST) { - { - TList _list66 = iprot.readListBegin(); - this.mutations = new ArrayList(_list66.size); - for (int _i67 = 0; _i67 < _list66.size; ++_i67) - { - Mutation _elem68; - _elem68 = new Mutation(); - _elem68.read(iprot); - this.mutations.add(_elem68); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case MUTATIONS: + if (field.type == TType.LIST) { + { + TList _list66 = iprot.readListBegin(); + this.mutations = new ArrayList(_list66.size); + for (int _i67 = 0; _i67 < _list66.size; ++_i67) + { + Mutation _elem68; + _elem68 = new Mutation(); + _elem68.read(iprot); + this.mutations.add(_elem68); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -12976,7 +17125,8 @@ public class Hbase { oprot.writeFieldBegin(MUTATIONS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.mutations.size())); - for (Mutation _iter69 : this.mutations) { + for (Mutation _iter69 : this.mutations) + { _iter69.write(oprot); } oprot.writeListEnd(); @@ -12999,7 +17149,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -13007,7 +17157,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -13028,26 +17178,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRowTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRowTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRowTs_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -13079,7 +17284,11 @@ public class Hbase { } } - @Override + public mutateRowTs_result deepCopy() { + return new mutateRowTs_result(this); + } + + @Deprecated public mutateRowTs_result clone() { return new mutateRowTs_result(this); } @@ -13088,15 +17297,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public mutateRowTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -13111,15 +17321,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public mutateRowTs_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -13130,8 +17341,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -13148,34 +17359,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -13214,6 +17433,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); + } + + public int compareTo(mutateRowTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRowTs_result typedOther = (mutateRowTs_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -13226,33 +17484,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -13299,26 +17557,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRows_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRows_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRows_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_BATCHES_FIELD_DESC = new TField("rowBatches", TType.LIST, (short)2); public byte[] tableName; - public static final int TABLENAME = 1; public List rowBatches; - public static final int ROWBATCHES = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW_BATCHES((short)2, "rowBatches"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROWBATCHES, new FieldMetaData("rowBatches", TFieldRequirementType.DEFAULT, + put(_Fields.ROW_BATCHES, new FieldMetaData("rowBatches", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, BatchMutation.class)))); }}); @@ -13355,7 +17668,11 @@ public class Hbase { } } - @Override + public mutateRows_args deepCopy() { + return new mutateRows_args(this); + } + + @Deprecated public mutateRows_args clone() { return new mutateRows_args(this); } @@ -13364,15 +17681,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public mutateRows_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -13402,15 +17720,16 @@ public class Hbase { return this.rowBatches; } - public void setRowBatches(List rowBatches) { + public mutateRows_args setRowBatches(List rowBatches) { this.rowBatches = rowBatches; + return this; } public void unsetRowBatches() { this.rowBatches = null; } - // Returns true if field rowBatches is set (has been asigned a value) and false otherwise + /** Returns true if field rowBatches is set (has been asigned a value) and false otherwise */ public boolean isSetRowBatches() { return this.rowBatches != null; } @@ -13421,9 +17740,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -13431,7 +17750,7 @@ public class Hbase { } break; - case ROWBATCHES: + case ROW_BATCHES: if (value == null) { unsetRowBatches(); } else { @@ -13439,34 +17758,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case ROWBATCHES: + case ROW_BATCHES: return getRowBatches(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case ROWBATCHES: + case ROW_BATCHES: return isSetRowBatches(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -13505,6 +17832,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_rowBatches = true && (isSetRowBatches()); + builder.append(present_rowBatches); + if (present_rowBatches) + builder.append(rowBatches); + + return builder.toHashCode(); + } + + public int compareTo(mutateRows_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRows_args typedOther = (mutateRows_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRowBatches()).compareTo(isSetRowBatches()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(rowBatches, typedOther.rowBatches); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -13517,42 +17883,42 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROWBATCHES: - if (field.type == TType.LIST) { - { - TList _list70 = iprot.readListBegin(); - this.rowBatches = new ArrayList(_list70.size); - for (int _i71 = 0; _i71 < _list70.size; ++_i71) - { - BatchMutation _elem72; - _elem72 = new BatchMutation(); - _elem72.read(iprot); - this.rowBatches.add(_elem72); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case ROW_BATCHES: + if (field.type == TType.LIST) { + { + TList _list70 = iprot.readListBegin(); + this.rowBatches = new ArrayList(_list70.size); + for (int _i71 = 0; _i71 < _list70.size; ++_i71) + { + BatchMutation _elem72; + _elem72 = new BatchMutation(); + _elem72.read(iprot); + this.rowBatches.add(_elem72); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -13570,7 +17936,8 @@ public class Hbase { oprot.writeFieldBegin(ROW_BATCHES_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.rowBatches.size())); - for (BatchMutation _iter73 : this.rowBatches) { + for (BatchMutation _iter73 : this.rowBatches) + { _iter73.write(oprot); } oprot.writeListEnd(); @@ -13590,7 +17957,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -13607,26 +17974,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRows_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRows_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRows_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -13658,7 +18080,11 @@ public class Hbase { } } - @Override + public mutateRows_result deepCopy() { + return new mutateRows_result(this); + } + + @Deprecated public mutateRows_result clone() { return new mutateRows_result(this); } @@ -13667,15 +18093,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public mutateRows_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -13690,15 +18117,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public mutateRows_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -13709,8 +18137,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -13727,34 +18155,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -13793,6 +18229,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); + } + + public int compareTo(mutateRows_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRows_result typedOther = (mutateRows_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -13805,33 +18280,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -13878,38 +18353,89 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRowsTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRowsTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRowsTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_BATCHES_FIELD_DESC = new TField("rowBatches", TType.LIST, (short)2); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public List rowBatches; - public static final int ROWBATCHES = 2; public long timestamp; - public static final int TIMESTAMP = 3; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW_BATCHES((short)2, "rowBatches"), + TIMESTAMP((short)3, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROWBATCHES, new FieldMetaData("rowBatches", TFieldRequirementType.DEFAULT, + put(_Fields.ROW_BATCHES, new FieldMetaData("rowBatches", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, BatchMutation.class)))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -13929,13 +18455,15 @@ public class Hbase { this.tableName = tableName; this.rowBatches = rowBatches; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public mutateRowsTs_args(mutateRowsTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -13946,11 +18474,14 @@ public class Hbase { } this.rowBatches = __this__rowBatches; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public mutateRowsTs_args deepCopy() { + return new mutateRowsTs_args(this); + } + + @Deprecated public mutateRowsTs_args clone() { return new mutateRowsTs_args(this); } @@ -13959,15 +18490,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public mutateRowsTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -13997,15 +18529,16 @@ public class Hbase { return this.rowBatches; } - public void setRowBatches(List rowBatches) { + public mutateRowsTs_args setRowBatches(List rowBatches) { this.rowBatches = rowBatches; + return this; } public void unsetRowBatches() { this.rowBatches = null; } - // Returns true if field rowBatches is set (has been asigned a value) and false otherwise + /** Returns true if field rowBatches is set (has been asigned a value) and false otherwise */ public boolean isSetRowBatches() { return this.rowBatches != null; } @@ -14020,27 +18553,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public mutateRowsTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -14048,7 +18582,7 @@ public class Hbase { } break; - case ROWBATCHES: + case ROW_BATCHES: if (value == null) { unsetRowBatches(); } else { @@ -14064,39 +18598,47 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case ROWBATCHES: + case ROW_BATCHES: return getRowBatches(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case ROWBATCHES: + case ROW_BATCHES: return isSetRowBatches(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -14144,6 +18686,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_rowBatches = true && (isSetRowBatches()); + builder.append(present_rowBatches); + if (present_rowBatches) + builder.append(rowBatches); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(mutateRowsTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRowsTs_args typedOther = (mutateRowsTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRowBatches()).compareTo(isSetRowBatches()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(rowBatches, typedOther.rowBatches); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -14156,50 +18750,50 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROWBATCHES: - if (field.type == TType.LIST) { - { - TList _list74 = iprot.readListBegin(); - this.rowBatches = new ArrayList(_list74.size); - for (int _i75 = 0; _i75 < _list74.size; ++_i75) - { - BatchMutation _elem76; - _elem76 = new BatchMutation(); - _elem76.read(iprot); - this.rowBatches.add(_elem76); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case ROW_BATCHES: + if (field.type == TType.LIST) { + { + TList _list74 = iprot.readListBegin(); + this.rowBatches = new ArrayList(_list74.size); + for (int _i75 = 0; _i75 < _list74.size; ++_i75) + { + BatchMutation _elem76; + _elem76 = new BatchMutation(); + _elem76.read(iprot); + this.rowBatches.add(_elem76); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -14217,7 +18811,8 @@ public class Hbase { oprot.writeFieldBegin(ROW_BATCHES_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.rowBatches.size())); - for (BatchMutation _iter77 : this.rowBatches) { + for (BatchMutation _iter77 : this.rowBatches) + { _iter77.write(oprot); } oprot.writeListEnd(); @@ -14240,7 +18835,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -14261,26 +18856,81 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class mutateRowsTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class mutateRowsTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("mutateRowsTs_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -14312,7 +18962,11 @@ public class Hbase { } } - @Override + public mutateRowsTs_result deepCopy() { + return new mutateRowsTs_result(this); + } + + @Deprecated public mutateRowsTs_result clone() { return new mutateRowsTs_result(this); } @@ -14321,15 +18975,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public mutateRowsTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -14344,15 +18999,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public mutateRowsTs_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -14363,8 +19019,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -14381,34 +19037,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -14447,6 +19111,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); + } + + public int compareTo(mutateRowsTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + mutateRowsTs_result typedOther = (mutateRowsTs_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -14459,33 +19162,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -14532,42 +19235,93 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class atomicIncrement_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class atomicIncrement_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("atomicIncrement_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)3); private static final TField VALUE_FIELD_DESC = new TField("value", TType.I64, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public byte[] column; - public static final int COLUMN = 3; public long value; - public static final int VALUE = 4; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean value = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMN((short)3, "column"), + VALUE((short)4, "value"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __VALUE_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, + put(_Fields.VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -14589,13 +19343,15 @@ public class Hbase { this.row = row; this.column = column; this.value = value; - this.__isset.value = true; + setValueIsSet(true); } /** * Performs a deep copy on other. */ public atomicIncrement_args(atomicIncrement_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -14605,11 +19361,14 @@ public class Hbase { if (other.isSetColumn()) { this.column = other.column; } - __isset.value = other.__isset.value; this.value = other.value; } - @Override + public atomicIncrement_args deepCopy() { + return new atomicIncrement_args(this); + } + + @Deprecated public atomicIncrement_args clone() { return new atomicIncrement_args(this); } @@ -14618,15 +19377,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public atomicIncrement_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -14641,15 +19401,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public atomicIncrement_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -14664,15 +19425,16 @@ public class Hbase { return this.column; } - public void setColumn(byte[] column) { + public atomicIncrement_args setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -14687,27 +19449,28 @@ public class Hbase { return this.value; } - public void setValue(long value) { + public atomicIncrement_args setValue(long value) { this.value = value; - this.__isset.value = true; + setValueIsSet(true); + return this; } public void unsetValue() { - this.__isset.value = false; + __isset_bit_vector.clear(__VALUE_ISSET_ID); } - // Returns true if field value is set (has been asigned a value) and false otherwise + /** Returns true if field value is set (has been asigned a value) and false otherwise */ public boolean isSetValue() { - return this.__isset.value; + return __isset_bit_vector.get(__VALUE_ISSET_ID); } public void setValueIsSet(boolean value) { - this.__isset.value = value; + __isset_bit_vector.set(__VALUE_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -14739,14 +19502,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -14756,17 +19521,20 @@ public class Hbase { return getColumn(); case VALUE: - return getValue(); + return new Long(getValue()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); @@ -14774,9 +19542,12 @@ public class Hbase { return isSetColumn(); case VALUE: return isSetValue(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -14833,6 +19604,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + boolean present_value = true; + builder.append(present_value); + if (present_value) + builder.append(value); + + return builder.toHashCode(); + } + + public int compareTo(atomicIncrement_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + atomicIncrement_args typedOther = (atomicIncrement_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetValue()).compareTo(isSetValue()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(value, typedOther.value); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -14845,46 +19681,46 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case VALUE: - if (field.type == TType.I64) { - this.value = iprot.readI64(); - this.__isset.value = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case VALUE: + if (field.type == TType.I64) { + this.value = iprot.readI64(); + setValueIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -14924,7 +19760,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -14932,7 +19768,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -14940,7 +19776,7 @@ public class Hbase { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; if (!first) sb.append(", "); @@ -14953,37 +19789,88 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class atomicIncrement_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class atomicIncrement_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("atomicIncrement_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I64, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public long success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -15001,7 +19888,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; this.ia = ia; } @@ -15010,7 +19897,8 @@ public class Hbase { * Performs a deep copy on other. */ public atomicIncrement_result(atomicIncrement_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); @@ -15020,7 +19908,11 @@ public class Hbase { } } - @Override + public atomicIncrement_result deepCopy() { + return new atomicIncrement_result(this); + } + + @Deprecated public atomicIncrement_result clone() { return new atomicIncrement_result(this); } @@ -15029,37 +19921,39 @@ public class Hbase { return this.success; } - public void setSuccess(long success) { + public atomicIncrement_result setSuccess(long success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public atomicIncrement_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -15074,15 +19968,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public atomicIncrement_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -15093,8 +19988,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -15119,15 +20014,17 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return getSuccess(); + return new Long(getSuccess()); case IO: return getIo(); @@ -15135,23 +20032,29 @@ public class Hbase { case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -15199,6 +20102,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); + } + + public int compareTo(atomicIncrement_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + atomicIncrement_result typedOther = (atomicIncrement_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -15211,41 +20166,41 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.I64) { - this.success = iprot.readI64(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.I64) { + this.success = iprot.readI64(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -15300,31 +20255,86 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAll_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAll_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAll_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public byte[] column; - public static final int COLUMN = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMN((short)3, "column"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -15361,7 +20371,11 @@ public class Hbase { } } - @Override + public deleteAll_args deepCopy() { + return new deleteAll_args(this); + } + + @Deprecated public deleteAll_args clone() { return new deleteAll_args(this); } @@ -15370,15 +20384,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public deleteAll_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -15393,15 +20408,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public deleteAll_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -15416,15 +20432,16 @@ public class Hbase { return this.column; } - public void setColumn(byte[] column) { + public deleteAll_args setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -15435,9 +20452,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -15461,14 +20478,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -15477,23 +20496,29 @@ public class Hbase { case COLUMN: return getColumn(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case COLUMN: return isSetColumn(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -15541,6 +20566,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + return builder.toHashCode(); + } + + public int compareTo(deleteAll_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAll_args typedOther = (deleteAll_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -15553,38 +20630,38 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -15621,7 +20698,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -15629,7 +20706,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -15637,7 +20714,7 @@ public class Hbase { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; sb.append(")"); @@ -15646,21 +20723,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAll_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAll_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAll_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -15687,7 +20819,11 @@ public class Hbase { } } - @Override + public deleteAll_result deepCopy() { + return new deleteAll_result(this); + } + + @Deprecated public deleteAll_result clone() { return new deleteAll_result(this); } @@ -15696,15 +20832,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public deleteAll_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -15715,8 +20852,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -15725,29 +20862,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -15777,6 +20922,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(deleteAll_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAll_result typedOther = (deleteAll_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -15789,25 +20960,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -15827,6 +20998,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("deleteAll_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -15834,48 +21006,100 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAllTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAllTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAllTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)3); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public byte[] column; - public static final int COLUMN = 3; public long timestamp; - public static final int TIMESTAMP = 4; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + COLUMN((short)3, "column"), + TIMESTAMP((short)4, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -15897,13 +21121,15 @@ public class Hbase { this.row = row; this.column = column; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public deleteAllTs_args(deleteAllTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -15913,11 +21139,14 @@ public class Hbase { if (other.isSetColumn()) { this.column = other.column; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public deleteAllTs_args deepCopy() { + return new deleteAllTs_args(this); + } + + @Deprecated public deleteAllTs_args clone() { return new deleteAllTs_args(this); } @@ -15926,15 +21155,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public deleteAllTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -15949,15 +21179,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public deleteAllTs_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -15972,15 +21203,16 @@ public class Hbase { return this.column; } - public void setColumn(byte[] column) { + public deleteAllTs_args setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -15995,27 +21227,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public deleteAllTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -16047,14 +21280,16 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: @@ -16064,17 +21299,20 @@ public class Hbase { return getColumn(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); @@ -16082,9 +21320,12 @@ public class Hbase { return isSetColumn(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -16141,6 +21382,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(deleteAllTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAllTs_args typedOther = (deleteAllTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -16153,46 +21459,46 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -16232,7 +21538,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -16240,7 +21546,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -16248,7 +21554,7 @@ public class Hbase { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; if (!first) sb.append(", "); @@ -16261,21 +21567,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAllTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAllTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAllTs_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -16302,7 +21663,11 @@ public class Hbase { } } - @Override + public deleteAllTs_result deepCopy() { + return new deleteAllTs_result(this); + } + + @Deprecated public deleteAllTs_result clone() { return new deleteAllTs_result(this); } @@ -16311,15 +21676,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public deleteAllTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -16330,8 +21696,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -16340,29 +21706,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -16392,6 +21766,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(deleteAllTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAllTs_result typedOther = (deleteAllTs_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -16404,25 +21804,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -16442,6 +21842,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("deleteAllTs_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -16449,32 +21850,88 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAllRow_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAllRow_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAllRow_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -16506,7 +21963,11 @@ public class Hbase { } } - @Override + public deleteAllRow_args deepCopy() { + return new deleteAllRow_args(this); + } + + @Deprecated public deleteAllRow_args clone() { return new deleteAllRow_args(this); } @@ -16515,15 +21976,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public deleteAllRow_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -16538,15 +22000,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public deleteAllRow_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -16557,9 +22020,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -16575,34 +22038,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: return getRow(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -16641,6 +22112,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + return builder.toHashCode(); + } + + public int compareTo(deleteAllRow_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAllRow_args typedOther = (deleteAllRow_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -16653,31 +22163,31 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -16709,7 +22219,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -16717,7 +22227,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; sb.append(")"); @@ -16726,21 +22236,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAllRow_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAllRow_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAllRow_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -16767,7 +22332,11 @@ public class Hbase { } } - @Override + public deleteAllRow_result deepCopy() { + return new deleteAllRow_result(this); + } + + @Deprecated public deleteAllRow_result clone() { return new deleteAllRow_result(this); } @@ -16776,15 +22345,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public deleteAllRow_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -16795,8 +22365,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -16805,29 +22375,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -16857,6 +22435,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(deleteAllRow_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAllRow_result typedOther = (deleteAllRow_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -16869,25 +22473,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -16907,6 +22511,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("deleteAllRow_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -16914,43 +22519,95 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAllRowTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAllRowTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAllRowTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)2); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] row; - public static final int ROW = 2; public long timestamp; - public static final int TIMESTAMP = 3; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + ROW((short)2, "row"), + TIMESTAMP((short)3, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -16970,24 +22627,29 @@ public class Hbase { this.tableName = tableName; this.row = row; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public deleteAllRowTs_args(deleteAllRowTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } if (other.isSetRow()) { this.row = other.row; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public deleteAllRowTs_args deepCopy() { + return new deleteAllRowTs_args(this); + } + + @Deprecated public deleteAllRowTs_args clone() { return new deleteAllRowTs_args(this); } @@ -16996,15 +22658,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public deleteAllRowTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -17019,15 +22682,16 @@ public class Hbase { return this.row; } - public void setRow(byte[] row) { + public deleteAllRowTs_args setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -17042,27 +22706,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public deleteAllRowTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -17086,39 +22751,47 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); case ROW: return getRow(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); case ROW: return isSetRow(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -17166,6 +22839,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(deleteAllRowTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAllRowTs_args typedOther = (deleteAllRowTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetRow()).compareTo(isSetRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(row, typedOther.row); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -17178,39 +22903,39 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -17245,7 +22970,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -17253,7 +22978,7 @@ public class Hbase { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -17266,21 +22991,76 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class deleteAllRowTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class deleteAllRowTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("deleteAllRowTs_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public IOError io; - public static final int IO = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -17307,7 +23087,11 @@ public class Hbase { } } - @Override + public deleteAllRowTs_result deepCopy() { + return new deleteAllRowTs_result(this); + } + + @Deprecated public deleteAllRowTs_result clone() { return new deleteAllRowTs_result(this); } @@ -17316,15 +23100,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public deleteAllRowTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -17335,8 +23120,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -17345,29 +23130,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -17397,6 +23190,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(deleteAllRowTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + deleteAllRowTs_result typedOther = (deleteAllRowTs_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -17409,25 +23228,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -17447,6 +23266,7 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("deleteAllRowTs_result("); + boolean first = true; sb.append("io:"); if (this.io == null) { @@ -17454,37 +23274,93 @@ public class Hbase { } else { sb.append(this.io); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpen_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpen_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpen_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField START_ROW_FIELD_DESC = new TField("startRow", TType.STRING, (short)2); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] startRow; - public static final int STARTROW = 2; public List columns; - public static final int COLUMNS = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + START_ROW((short)2, "startRow"), + COLUMNS((short)3, "columns"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STARTROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, + put(_Fields.START_ROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); }}); @@ -17526,7 +23402,11 @@ public class Hbase { } } - @Override + public scannerOpen_args deepCopy() { + return new scannerOpen_args(this); + } + + @Deprecated public scannerOpen_args clone() { return new scannerOpen_args(this); } @@ -17535,15 +23415,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public scannerOpen_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -17558,15 +23439,16 @@ public class Hbase { return this.startRow; } - public void setStartRow(byte[] startRow) { + public scannerOpen_args setStartRow(byte[] startRow) { this.startRow = startRow; + return this; } public void unsetStartRow() { this.startRow = null; } - // Returns true if field startRow is set (has been asigned a value) and false otherwise + /** Returns true if field startRow is set (has been asigned a value) and false otherwise */ public boolean isSetStartRow() { return this.startRow != null; } @@ -17596,15 +23478,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public scannerOpen_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -17615,9 +23498,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -17625,7 +23508,7 @@ public class Hbase { } break; - case STARTROW: + case START_ROW: if (value == null) { unsetStartRow(); } else { @@ -17641,39 +23524,47 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case STARTROW: + case START_ROW: return getStartRow(); case COLUMNS: return getColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case STARTROW: + case START_ROW: return isSetStartRow(); case COLUMNS: return isSetColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -17721,6 +23612,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_startRow = true && (isSetStartRow()); + builder.append(present_startRow); + if (present_startRow) + builder.append(startRow); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpen_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpen_args typedOther = (scannerOpen_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(isSetStartRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(startRow, typedOther.startRow); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -17733,48 +23676,48 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STARTROW: - if (field.type == TType.STRING) { - this.startRow = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list78 = iprot.readListBegin(); - this.columns = new ArrayList(_list78.size); - for (int _i79 = 0; _i79 < _list78.size; ++_i79) - { - byte[] _elem80; - _elem80 = iprot.readBinary(); - this.columns.add(_elem80); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case START_ROW: + if (field.type == TType.STRING) { + this.startRow = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list78 = iprot.readListBegin(); + this.columns = new ArrayList(_list78.size); + for (int _i79 = 0; _i79 < _list78.size; ++_i79) + { + byte[] _elem80; + _elem80 = iprot.readBinary(); + this.columns.add(_elem80); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -17797,7 +23740,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter81 : this.columns) { + for (byte[] _iter81 : this.columns) + { oprot.writeBinary(_iter81); } oprot.writeListEnd(); @@ -17817,7 +23761,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -17825,7 +23769,7 @@ public class Hbase { if (this.startRow == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.startRow)); + sb.append(this.startRow); } first = false; if (!first) sb.append(", "); @@ -17842,32 +23786,83 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpen_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpen_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpen_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public int success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -17884,7 +23879,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; } @@ -17892,14 +23887,19 @@ public class Hbase { * Performs a deep copy on other. */ public scannerOpen_result(scannerOpen_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); } } - @Override + public scannerOpen_result deepCopy() { + return new scannerOpen_result(this); + } + + @Deprecated public scannerOpen_result clone() { return new scannerOpen_result(this); } @@ -17908,37 +23908,39 @@ public class Hbase { return this.success; } - public void setSuccess(int success) { + public scannerOpen_result setSuccess(int success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public scannerOpen_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -17949,8 +23951,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -17967,34 +23969,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return getSuccess(); + return new Integer(getSuccess()); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -18033,6 +24043,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpen_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpen_result typedOther = (scannerOpen_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -18045,33 +24094,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.I32) { - this.success = iprot.readI32(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.I32) { + this.success = iprot.readI32(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -18114,36 +24163,91 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenWithStop_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenWithStop_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStop_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField START_ROW_FIELD_DESC = new TField("startRow", TType.STRING, (short)2); private static final TField STOP_ROW_FIELD_DESC = new TField("stopRow", TType.STRING, (short)3); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] startRow; - public static final int STARTROW = 2; public byte[] stopRow; - public static final int STOPROW = 3; public List columns; - public static final int COLUMNS = 4; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + START_ROW((short)2, "startRow"), + STOP_ROW((short)3, "stopRow"), + COLUMNS((short)4, "columns"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STARTROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, + put(_Fields.START_ROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STOPROW, new FieldMetaData("stopRow", TFieldRequirementType.DEFAULT, + put(_Fields.STOP_ROW, new FieldMetaData("stopRow", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); }}); @@ -18190,7 +24294,11 @@ public class Hbase { } } - @Override + public scannerOpenWithStop_args deepCopy() { + return new scannerOpenWithStop_args(this); + } + + @Deprecated public scannerOpenWithStop_args clone() { return new scannerOpenWithStop_args(this); } @@ -18199,15 +24307,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public scannerOpenWithStop_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -18222,15 +24331,16 @@ public class Hbase { return this.startRow; } - public void setStartRow(byte[] startRow) { + public scannerOpenWithStop_args setStartRow(byte[] startRow) { this.startRow = startRow; + return this; } public void unsetStartRow() { this.startRow = null; } - // Returns true if field startRow is set (has been asigned a value) and false otherwise + /** Returns true if field startRow is set (has been asigned a value) and false otherwise */ public boolean isSetStartRow() { return this.startRow != null; } @@ -18245,15 +24355,16 @@ public class Hbase { return this.stopRow; } - public void setStopRow(byte[] stopRow) { + public scannerOpenWithStop_args setStopRow(byte[] stopRow) { this.stopRow = stopRow; + return this; } public void unsetStopRow() { this.stopRow = null; } - // Returns true if field stopRow is set (has been asigned a value) and false otherwise + /** Returns true if field stopRow is set (has been asigned a value) and false otherwise */ public boolean isSetStopRow() { return this.stopRow != null; } @@ -18283,15 +24394,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public scannerOpenWithStop_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -18302,9 +24414,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -18312,7 +24424,7 @@ public class Hbase { } break; - case STARTROW: + case START_ROW: if (value == null) { unsetStartRow(); } else { @@ -18320,7 +24432,7 @@ public class Hbase { } break; - case STOPROW: + case STOP_ROW: if (value == null) { unsetStopRow(); } else { @@ -18336,44 +24448,52 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case STARTROW: + case START_ROW: return getStartRow(); - case STOPROW: + case STOP_ROW: return getStopRow(); case COLUMNS: return getColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case STARTROW: + case START_ROW: return isSetStartRow(); - case STOPROW: + case STOP_ROW: return isSetStopRow(); case COLUMNS: return isSetColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -18430,6 +24550,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_startRow = true && (isSetStartRow()); + builder.append(present_startRow); + if (present_startRow) + builder.append(startRow); + + boolean present_stopRow = true && (isSetStopRow()); + builder.append(present_stopRow); + if (present_stopRow) + builder.append(stopRow); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenWithStop_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenWithStop_args typedOther = (scannerOpenWithStop_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(isSetStartRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(startRow, typedOther.startRow); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStopRow()).compareTo(isSetStopRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(stopRow, typedOther.stopRow); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -18442,55 +24627,55 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STARTROW: - if (field.type == TType.STRING) { - this.startRow = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STOPROW: - if (field.type == TType.STRING) { - this.stopRow = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list82 = iprot.readListBegin(); - this.columns = new ArrayList(_list82.size); - for (int _i83 = 0; _i83 < _list82.size; ++_i83) - { - byte[] _elem84; - _elem84 = iprot.readBinary(); - this.columns.add(_elem84); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case START_ROW: + if (field.type == TType.STRING) { + this.startRow = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case STOP_ROW: + if (field.type == TType.STRING) { + this.stopRow = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list82 = iprot.readListBegin(); + this.columns = new ArrayList(_list82.size); + for (int _i83 = 0; _i83 < _list82.size; ++_i83) + { + byte[] _elem84; + _elem84 = iprot.readBinary(); + this.columns.add(_elem84); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -18518,7 +24703,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter85 : this.columns) { + for (byte[] _iter85 : this.columns) + { oprot.writeBinary(_iter85); } oprot.writeListEnd(); @@ -18538,7 +24724,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -18546,7 +24732,7 @@ public class Hbase { if (this.startRow == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.startRow)); + sb.append(this.startRow); } first = false; if (!first) sb.append(", "); @@ -18554,7 +24740,7 @@ public class Hbase { if (this.stopRow == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.stopRow)); + sb.append(this.stopRow); } first = false; if (!first) sb.append(", "); @@ -18571,32 +24757,83 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenWithStop_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenWithStop_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStop_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public int success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -18613,7 +24850,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; } @@ -18621,14 +24858,19 @@ public class Hbase { * Performs a deep copy on other. */ public scannerOpenWithStop_result(scannerOpenWithStop_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); } } - @Override + public scannerOpenWithStop_result deepCopy() { + return new scannerOpenWithStop_result(this); + } + + @Deprecated public scannerOpenWithStop_result clone() { return new scannerOpenWithStop_result(this); } @@ -18637,37 +24879,39 @@ public class Hbase { return this.success; } - public void setSuccess(int success) { + public scannerOpenWithStop_result setSuccess(int success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public scannerOpenWithStop_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -18678,8 +24922,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -18696,34 +24940,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return getSuccess(); + return new Integer(getSuccess()); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -18762,6 +25014,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenWithStop_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenWithStop_result typedOther = (scannerOpenWithStop_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -18774,33 +25065,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.I32) { - this.success = iprot.readI32(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.I32) { + this.success = iprot.readI32(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -18843,31 +25134,86 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenWithPrefix_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenWithPrefix_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithPrefix_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField START_AND_PREFIX_FIELD_DESC = new TField("startAndPrefix", TType.STRING, (short)2); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)3); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] startAndPrefix; - public static final int STARTANDPREFIX = 2; public List columns; - public static final int COLUMNS = 3; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + START_AND_PREFIX((short)2, "startAndPrefix"), + COLUMNS((short)3, "columns"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STARTANDPREFIX, new FieldMetaData("startAndPrefix", TFieldRequirementType.DEFAULT, + put(_Fields.START_AND_PREFIX, new FieldMetaData("startAndPrefix", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); }}); @@ -18909,7 +25255,11 @@ public class Hbase { } } - @Override + public scannerOpenWithPrefix_args deepCopy() { + return new scannerOpenWithPrefix_args(this); + } + + @Deprecated public scannerOpenWithPrefix_args clone() { return new scannerOpenWithPrefix_args(this); } @@ -18918,15 +25268,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public scannerOpenWithPrefix_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -18941,15 +25292,16 @@ public class Hbase { return this.startAndPrefix; } - public void setStartAndPrefix(byte[] startAndPrefix) { + public scannerOpenWithPrefix_args setStartAndPrefix(byte[] startAndPrefix) { this.startAndPrefix = startAndPrefix; + return this; } public void unsetStartAndPrefix() { this.startAndPrefix = null; } - // Returns true if field startAndPrefix is set (has been asigned a value) and false otherwise + /** Returns true if field startAndPrefix is set (has been asigned a value) and false otherwise */ public boolean isSetStartAndPrefix() { return this.startAndPrefix != null; } @@ -18979,15 +25331,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public scannerOpenWithPrefix_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -18998,9 +25351,9 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -19008,7 +25361,7 @@ public class Hbase { } break; - case STARTANDPREFIX: + case START_AND_PREFIX: if (value == null) { unsetStartAndPrefix(); } else { @@ -19024,39 +25377,47 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case STARTANDPREFIX: + case START_AND_PREFIX: return getStartAndPrefix(); case COLUMNS: return getColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case STARTANDPREFIX: + case START_AND_PREFIX: return isSetStartAndPrefix(); case COLUMNS: return isSetColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -19104,6 +25465,58 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_startAndPrefix = true && (isSetStartAndPrefix()); + builder.append(present_startAndPrefix); + if (present_startAndPrefix) + builder.append(startAndPrefix); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenWithPrefix_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenWithPrefix_args typedOther = (scannerOpenWithPrefix_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStartAndPrefix()).compareTo(isSetStartAndPrefix()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(startAndPrefix, typedOther.startAndPrefix); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -19116,48 +25529,48 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STARTANDPREFIX: - if (field.type == TType.STRING) { - this.startAndPrefix = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list86 = iprot.readListBegin(); - this.columns = new ArrayList(_list86.size); - for (int _i87 = 0; _i87 < _list86.size; ++_i87) - { - byte[] _elem88; - _elem88 = iprot.readBinary(); - this.columns.add(_elem88); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case START_AND_PREFIX: + if (field.type == TType.STRING) { + this.startAndPrefix = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list86 = iprot.readListBegin(); + this.columns = new ArrayList(_list86.size); + for (int _i87 = 0; _i87 < _list86.size; ++_i87) + { + byte[] _elem88; + _elem88 = iprot.readBinary(); + this.columns.add(_elem88); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -19180,7 +25593,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter89 : this.columns) { + for (byte[] _iter89 : this.columns) + { oprot.writeBinary(_iter89); } oprot.writeListEnd(); @@ -19200,7 +25614,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -19208,7 +25622,7 @@ public class Hbase { if (this.startAndPrefix == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.startAndPrefix)); + sb.append(this.startAndPrefix); } first = false; if (!first) sb.append(", "); @@ -19225,32 +25639,83 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenWithPrefix_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenWithPrefix_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithPrefix_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public int success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -19267,7 +25732,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; } @@ -19275,14 +25740,19 @@ public class Hbase { * Performs a deep copy on other. */ public scannerOpenWithPrefix_result(scannerOpenWithPrefix_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); } } - @Override + public scannerOpenWithPrefix_result deepCopy() { + return new scannerOpenWithPrefix_result(this); + } + + @Deprecated public scannerOpenWithPrefix_result clone() { return new scannerOpenWithPrefix_result(this); } @@ -19291,37 +25761,39 @@ public class Hbase { return this.success; } - public void setSuccess(int success) { + public scannerOpenWithPrefix_result setSuccess(int success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public scannerOpenWithPrefix_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -19332,8 +25804,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -19350,34 +25822,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return getSuccess(); + return new Integer(getSuccess()); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -19416,6 +25896,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenWithPrefix_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenWithPrefix_result typedOther = (scannerOpenWithPrefix_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -19428,33 +25947,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.I32) { - this.success = iprot.readI32(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.I32) { + this.success = iprot.readI32(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -19497,43 +26016,94 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField START_ROW_FIELD_DESC = new TField("startRow", TType.STRING, (short)2); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)3); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)4); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] startRow; - public static final int STARTROW = 2; public List columns; - public static final int COLUMNS = 3; public long timestamp; - public static final int TIMESTAMP = 4; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + START_ROW((short)2, "startRow"), + COLUMNS((short)3, "columns"), + TIMESTAMP((short)4, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STARTROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, + put(_Fields.START_ROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -19555,13 +26125,15 @@ public class Hbase { this.startRow = startRow; this.columns = columns; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public scannerOpenTs_args(scannerOpenTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -19575,11 +26147,14 @@ public class Hbase { } this.columns = __this__columns; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public scannerOpenTs_args deepCopy() { + return new scannerOpenTs_args(this); + } + + @Deprecated public scannerOpenTs_args clone() { return new scannerOpenTs_args(this); } @@ -19588,15 +26163,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public scannerOpenTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -19611,15 +26187,16 @@ public class Hbase { return this.startRow; } - public void setStartRow(byte[] startRow) { + public scannerOpenTs_args setStartRow(byte[] startRow) { this.startRow = startRow; + return this; } public void unsetStartRow() { this.startRow = null; } - // Returns true if field startRow is set (has been asigned a value) and false otherwise + /** Returns true if field startRow is set (has been asigned a value) and false otherwise */ public boolean isSetStartRow() { return this.startRow != null; } @@ -19649,15 +26226,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public scannerOpenTs_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -19672,27 +26250,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public scannerOpenTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -19700,7 +26279,7 @@ public class Hbase { } break; - case STARTROW: + case START_ROW: if (value == null) { unsetStartRow(); } else { @@ -19724,44 +26303,52 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case STARTROW: + case START_ROW: return getStartRow(); case COLUMNS: return getColumns(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case STARTROW: + case START_ROW: return isSetStartRow(); case COLUMNS: return isSetColumns(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -19818,6 +26405,71 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_startRow = true && (isSetStartRow()); + builder.append(present_startRow); + if (present_startRow) + builder.append(startRow); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenTs_args typedOther = (scannerOpenTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(isSetStartRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(startRow, typedOther.startRow); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -19830,56 +26482,56 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STARTROW: - if (field.type == TType.STRING) { - this.startRow = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list90 = iprot.readListBegin(); - this.columns = new ArrayList(_list90.size); - for (int _i91 = 0; _i91 < _list90.size; ++_i91) - { - byte[] _elem92; - _elem92 = iprot.readBinary(); - this.columns.add(_elem92); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case START_ROW: + if (field.type == TType.STRING) { + this.startRow = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list90 = iprot.readListBegin(); + this.columns = new ArrayList(_list90.size); + for (int _i91 = 0; _i91 < _list90.size; ++_i91) + { + byte[] _elem92; + _elem92 = iprot.readBinary(); + this.columns.add(_elem92); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -19902,7 +26554,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter93 : this.columns) { + for (byte[] _iter93 : this.columns) + { oprot.writeBinary(_iter93); } oprot.writeListEnd(); @@ -19925,7 +26578,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -19933,7 +26586,7 @@ public class Hbase { if (this.startRow == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.startRow)); + sb.append(this.startRow); } first = false; if (!first) sb.append(", "); @@ -19954,32 +26607,83 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenTs_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public int success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -19996,7 +26700,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; } @@ -20004,14 +26708,19 @@ public class Hbase { * Performs a deep copy on other. */ public scannerOpenTs_result(scannerOpenTs_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); } } - @Override + public scannerOpenTs_result deepCopy() { + return new scannerOpenTs_result(this); + } + + @Deprecated public scannerOpenTs_result clone() { return new scannerOpenTs_result(this); } @@ -20020,37 +26729,39 @@ public class Hbase { return this.success; } - public void setSuccess(int success) { + public scannerOpenTs_result setSuccess(int success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public scannerOpenTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -20061,8 +26772,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -20079,34 +26790,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return getSuccess(); + return new Integer(getSuccess()); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -20145,6 +26864,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenTs_result typedOther = (scannerOpenTs_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -20157,33 +26915,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.I32) { - this.success = iprot.readI32(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.I32) { + this.success = iprot.readI32(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -20226,14 +26984,13 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenWithStopTs_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenWithStopTs_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStopTs_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)1); private static final TField START_ROW_FIELD_DESC = new TField("startRow", TType.STRING, (short)2); private static final TField STOP_ROW_FIELD_DESC = new TField("stopRow", TType.STRING, (short)3); @@ -20241,33 +26998,85 @@ public class Hbase { private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)5); public byte[] tableName; - public static final int TABLENAME = 1; public byte[] startRow; - public static final int STARTROW = 2; public byte[] stopRow; - public static final int STOPROW = 3; public List columns; - public static final int COLUMNS = 4; public long timestamp; - public static final int TIMESTAMP = 5; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + TABLE_NAME((short)1, "tableName"), + START_ROW((short)2, "startRow"), + STOP_ROW((short)3, "stopRow"), + COLUMNS((short)4, "columns"), + TIMESTAMP((short)5, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.TABLE_NAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STARTROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, + put(_Fields.START_ROW, new FieldMetaData("startRow", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(STOPROW, new FieldMetaData("stopRow", TFieldRequirementType.DEFAULT, + put(_Fields.STOP_ROW, new FieldMetaData("stopRow", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new FieldValueMetaData(TType.STRING)))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -20291,13 +27100,15 @@ public class Hbase { this.stopRow = stopRow; this.columns = columns; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public scannerOpenWithStopTs_args(scannerOpenWithStopTs_args other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetTableName()) { this.tableName = other.tableName; } @@ -20314,11 +27125,14 @@ public class Hbase { } this.columns = __this__columns; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public scannerOpenWithStopTs_args deepCopy() { + return new scannerOpenWithStopTs_args(this); + } + + @Deprecated public scannerOpenWithStopTs_args clone() { return new scannerOpenWithStopTs_args(this); } @@ -20327,15 +27141,16 @@ public class Hbase { return this.tableName; } - public void setTableName(byte[] tableName) { + public scannerOpenWithStopTs_args setTableName(byte[] tableName) { this.tableName = tableName; + return this; } public void unsetTableName() { this.tableName = null; } - // Returns true if field tableName is set (has been asigned a value) and false otherwise + /** Returns true if field tableName is set (has been asigned a value) and false otherwise */ public boolean isSetTableName() { return this.tableName != null; } @@ -20350,15 +27165,16 @@ public class Hbase { return this.startRow; } - public void setStartRow(byte[] startRow) { + public scannerOpenWithStopTs_args setStartRow(byte[] startRow) { this.startRow = startRow; + return this; } public void unsetStartRow() { this.startRow = null; } - // Returns true if field startRow is set (has been asigned a value) and false otherwise + /** Returns true if field startRow is set (has been asigned a value) and false otherwise */ public boolean isSetStartRow() { return this.startRow != null; } @@ -20373,15 +27189,16 @@ public class Hbase { return this.stopRow; } - public void setStopRow(byte[] stopRow) { + public scannerOpenWithStopTs_args setStopRow(byte[] stopRow) { this.stopRow = stopRow; + return this; } public void unsetStopRow() { this.stopRow = null; } - // Returns true if field stopRow is set (has been asigned a value) and false otherwise + /** Returns true if field stopRow is set (has been asigned a value) and false otherwise */ public boolean isSetStopRow() { return this.stopRow != null; } @@ -20411,15 +27228,16 @@ public class Hbase { return this.columns; } - public void setColumns(List columns) { + public scannerOpenWithStopTs_args setColumns(List columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -20434,27 +27252,28 @@ public class Hbase { return this.timestamp; } - public void setTimestamp(long timestamp) { + public scannerOpenWithStopTs_args setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case TABLE_NAME: if (value == null) { unsetTableName(); } else { @@ -20462,7 +27281,7 @@ public class Hbase { } break; - case STARTROW: + case START_ROW: if (value == null) { unsetStartRow(); } else { @@ -20470,7 +27289,7 @@ public class Hbase { } break; - case STOPROW: + case STOP_ROW: if (value == null) { unsetStopRow(); } else { @@ -20494,49 +27313,57 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case TABLENAME: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case TABLE_NAME: return getTableName(); - case STARTROW: + case START_ROW: return getStartRow(); - case STOPROW: + case STOP_ROW: return getStopRow(); case COLUMNS: return getColumns(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case TABLENAME: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case TABLE_NAME: return isSetTableName(); - case STARTROW: + case START_ROW: return isSetStartRow(); - case STOPROW: + case STOP_ROW: return isSetStopRow(); case COLUMNS: return isSetColumns(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -20602,6 +27429,84 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_startRow = true && (isSetStartRow()); + builder.append(present_startRow); + if (present_startRow) + builder.append(startRow); + + boolean present_stopRow = true && (isSetStopRow()); + builder.append(present_stopRow); + if (present_stopRow) + builder.append(stopRow); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenWithStopTs_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenWithStopTs_args typedOther = (scannerOpenWithStopTs_args)other; + + lastComparison = Boolean.valueOf(isSetTableName()).compareTo(isSetTableName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(tableName, typedOther.tableName); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStartRow()).compareTo(isSetStartRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(startRow, typedOther.startRow); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetStopRow()).compareTo(isSetStopRow()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(stopRow, typedOther.stopRow); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumns()).compareTo(isSetColumns()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(columns, typedOther.columns); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -20614,63 +27519,63 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case TABLENAME: - if (field.type == TType.STRING) { - this.tableName = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STARTROW: - if (field.type == TType.STRING) { - this.startRow = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case STOPROW: - if (field.type == TType.STRING) { - this.stopRow = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.LIST) { - { - TList _list94 = iprot.readListBegin(); - this.columns = new ArrayList(_list94.size); - for (int _i95 = 0; _i95 < _list94.size; ++_i95) - { - byte[] _elem96; - _elem96 = iprot.readBinary(); - this.columns.add(_elem96); - } - iprot.readListEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case TABLE_NAME: + if (field.type == TType.STRING) { + this.tableName = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case START_ROW: + if (field.type == TType.STRING) { + this.startRow = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case STOP_ROW: + if (field.type == TType.STRING) { + this.stopRow = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMNS: + if (field.type == TType.LIST) { + { + TList _list94 = iprot.readListBegin(); + this.columns = new ArrayList(_list94.size); + for (int _i95 = 0; _i95 < _list94.size; ++_i95) + { + byte[] _elem96; + _elem96 = iprot.readBinary(); + this.columns.add(_elem96); + } + iprot.readListEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -20698,7 +27603,8 @@ public class Hbase { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columns.size())); - for (byte[] _iter97 : this.columns) { + for (byte[] _iter97 : this.columns) + { oprot.writeBinary(_iter97); } oprot.writeListEnd(); @@ -20721,7 +27627,7 @@ public class Hbase { if (this.tableName == null) { sb.append("null"); } else { - sb.append(Bytes.toString(this.tableName)); + sb.append(this.tableName); } first = false; if (!first) sb.append(", "); @@ -20729,7 +27635,7 @@ public class Hbase { if (this.startRow == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.startRow)); + sb.append(this.startRow); } first = false; if (!first) sb.append(", "); @@ -20737,7 +27643,7 @@ public class Hbase { if (this.stopRow == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.stopRow)); + sb.append(this.stopRow); } first = false; if (!first) sb.append(", "); @@ -20758,32 +27664,83 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerOpenWithStopTs_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerOpenWithStopTs_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerOpenWithStopTs_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); public int success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean success = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __SUCCESS_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -20800,7 +27757,7 @@ public class Hbase { { this(); this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); this.io = io; } @@ -20808,14 +27765,19 @@ public class Hbase { * Performs a deep copy on other. */ public scannerOpenWithStopTs_result(scannerOpenWithStopTs_result other) { - __isset.success = other.__isset.success; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.success = other.success; if (other.isSetIo()) { this.io = new IOError(other.io); } } - @Override + public scannerOpenWithStopTs_result deepCopy() { + return new scannerOpenWithStopTs_result(this); + } + + @Deprecated public scannerOpenWithStopTs_result clone() { return new scannerOpenWithStopTs_result(this); } @@ -20824,37 +27786,39 @@ public class Hbase { return this.success; } - public void setSuccess(int success) { + public scannerOpenWithStopTs_result setSuccess(int success) { this.success = success; - this.__isset.success = true; + setSuccessIsSet(true); + return this; } public void unsetSuccess() { - this.__isset.success = false; + __isset_bit_vector.clear(__SUCCESS_ISSET_ID); } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { - return this.__isset.success; + return __isset_bit_vector.get(__SUCCESS_ISSET_ID); } public void setSuccessIsSet(boolean value) { - this.__isset.success = value; + __isset_bit_vector.set(__SUCCESS_ISSET_ID, value); } public IOError getIo() { return this.io; } - public void setIo(IOError io) { + public scannerOpenWithStopTs_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -20865,8 +27829,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -20883,34 +27847,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: - return getSuccess(); + return new Integer(getSuccess()); case IO: return getIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -20949,6 +27921,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true; + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + return builder.toHashCode(); + } + + public int compareTo(scannerOpenWithStopTs_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerOpenWithStopTs_result typedOther = (scannerOpenWithStopTs_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(success, typedOther.success); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -20961,33 +27972,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.I32) { - this.success = iprot.readI32(); - this.__isset.success = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.I32) { + this.success = iprot.readI32(); + setSuccessIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -21030,27 +28041,78 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerGet_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerGet_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerGet_args"); + private static final TField ID_FIELD_DESC = new TField("id", TType.I32, (short)1); public int id; - public static final int ID = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean id = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + ID((short)1, "id"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __ID_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); }}); @@ -21066,18 +28128,23 @@ public class Hbase { { this(); this.id = id; - this.__isset.id = true; + setIdIsSet(true); } /** * Performs a deep copy on other. */ public scannerGet_args(scannerGet_args other) { - __isset.id = other.__isset.id; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.id = other.id; } - @Override + public scannerGet_args deepCopy() { + return new scannerGet_args(this); + } + + @Deprecated public scannerGet_args clone() { return new scannerGet_args(this); } @@ -21086,26 +28153,27 @@ public class Hbase { return this.id; } - public void setId(int id) { + public scannerGet_args setId(int id) { this.id = id; - this.__isset.id = true; + setIdIsSet(true); + return this; } public void unsetId() { - this.__isset.id = false; + __isset_bit_vector.clear(__ID_ISSET_ID); } - // Returns true if field id is set (has been asigned a value) and false otherwise + /** Returns true if field id is set (has been asigned a value) and false otherwise */ public boolean isSetId() { - return this.__isset.id; + return __isset_bit_vector.get(__ID_ISSET_ID); } public void setIdIsSet(boolean value) { - this.__isset.id = value; + __isset_bit_vector.set(__ID_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case ID: if (value == null) { unsetId(); @@ -21114,29 +28182,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case ID: - return getId(); + return new Integer(getId()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case ID: return isSetId(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -21166,6 +28242,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_id = true; + builder.append(present_id); + if (present_id) + builder.append(id); + + return builder.toHashCode(); + } + + public int compareTo(scannerGet_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerGet_args typedOther = (scannerGet_args)other; + + lastComparison = Boolean.valueOf(isSetId()).compareTo(isSetId()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(id, typedOther.id); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -21178,25 +28280,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case ID: - if (field.type == TType.I32) { - this.id = iprot.readI32(); - this.__isset.id = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case ID: + if (field.type == TType.I32) { + this.id = iprot.readI32(); + setIdIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -21215,40 +28317,98 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("scannerGet_args("); + boolean first = true; + sb.append("id:"); sb.append(this.id); + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerGet_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerGet_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("scannerGet_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRowResult.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -21289,7 +28449,11 @@ public class Hbase { } } - @Override + public scannerGet_result deepCopy() { + return new scannerGet_result(this); + } + + @Deprecated public scannerGet_result clone() { return new scannerGet_result(this); } @@ -21313,15 +28477,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public scannerGet_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -21336,15 +28501,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public scannerGet_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -21359,15 +28525,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public scannerGet_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -21378,8 +28545,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -21404,13 +28571,15 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); @@ -21420,23 +28589,29 @@ public class Hbase { case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -21484,7 +28659,24 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -21496,51 +28688,51 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list98 = iprot.readListBegin(); - this.success = new ArrayList(_list98.size); - for (int _i99 = 0; _i99 < _list98.size; ++_i99) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRowResult _elem100; - _elem100 = new TRowResult(); - _elem100.read(iprot); - this.success.add(_elem100); + TList _list98 = iprot.readListBegin(); + this.success = new ArrayList(_list98.size); + for (int _i99 = 0; _i99 < _list98.size; ++_i99) + { + TRowResult _elem100; + _elem100 = new TRowResult(); + _elem100.read(iprot); + this.success.add(_elem100); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -21552,7 +28744,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRowResult _iter101 : this.success) { + for (TRowResult _iter101 : this.success) + { _iter101.write(oprot); } oprot.writeListEnd(); @@ -21605,33 +28798,84 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerGetList_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerGetList_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerGetList_args"); + private static final TField ID_FIELD_DESC = new TField("id", TType.I32, (short)1); private static final TField NB_ROWS_FIELD_DESC = new TField("nbRows", TType.I32, (short)2); public int id; - public static final int ID = 1; public int nbRows; - public static final int NBROWS = 2; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean id = false; - public boolean nbRows = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + ID((short)1, "id"), + NB_ROWS((short)2, "nbRows"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __ID_ISSET_ID = 0; + private static final int __NBROWS_ISSET_ID = 1; + private BitSet __isset_bit_vector = new BitSet(2); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); - put(NBROWS, new FieldMetaData("nbRows", TFieldRequirementType.DEFAULT, + put(_Fields.NB_ROWS, new FieldMetaData("nbRows", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); }}); @@ -21648,22 +28892,26 @@ public class Hbase { { this(); this.id = id; - this.__isset.id = true; + setIdIsSet(true); this.nbRows = nbRows; - this.__isset.nbRows = true; + setNbRowsIsSet(true); } /** * Performs a deep copy on other. */ public scannerGetList_args(scannerGetList_args other) { - __isset.id = other.__isset.id; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.id = other.id; - __isset.nbRows = other.__isset.nbRows; this.nbRows = other.nbRows; } - @Override + public scannerGetList_args deepCopy() { + return new scannerGetList_args(this); + } + + @Deprecated public scannerGetList_args clone() { return new scannerGetList_args(this); } @@ -21672,48 +28920,50 @@ public class Hbase { return this.id; } - public void setId(int id) { + public scannerGetList_args setId(int id) { this.id = id; - this.__isset.id = true; + setIdIsSet(true); + return this; } public void unsetId() { - this.__isset.id = false; + __isset_bit_vector.clear(__ID_ISSET_ID); } - // Returns true if field id is set (has been asigned a value) and false otherwise + /** Returns true if field id is set (has been asigned a value) and false otherwise */ public boolean isSetId() { - return this.__isset.id; + return __isset_bit_vector.get(__ID_ISSET_ID); } public void setIdIsSet(boolean value) { - this.__isset.id = value; + __isset_bit_vector.set(__ID_ISSET_ID, value); } public int getNbRows() { return this.nbRows; } - public void setNbRows(int nbRows) { + public scannerGetList_args setNbRows(int nbRows) { this.nbRows = nbRows; - this.__isset.nbRows = true; + setNbRowsIsSet(true); + return this; } public void unsetNbRows() { - this.__isset.nbRows = false; + __isset_bit_vector.clear(__NBROWS_ISSET_ID); } - // Returns true if field nbRows is set (has been asigned a value) and false otherwise + /** Returns true if field nbRows is set (has been asigned a value) and false otherwise */ public boolean isSetNbRows() { - return this.__isset.nbRows; + return __isset_bit_vector.get(__NBROWS_ISSET_ID); } public void setNbRowsIsSet(boolean value) { - this.__isset.nbRows = value; + __isset_bit_vector.set(__NBROWS_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case ID: if (value == null) { unsetId(); @@ -21722,7 +28972,7 @@ public class Hbase { } break; - case NBROWS: + case NB_ROWS: if (value == null) { unsetNbRows(); } else { @@ -21730,34 +28980,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case ID: - return getId(); + return new Integer(getId()); - case NBROWS: - return getNbRows(); + case NB_ROWS: + return new Integer(getNbRows()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case ID: return isSetId(); - case NBROWS: + case NB_ROWS: return isSetNbRows(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -21796,6 +29054,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_id = true; + builder.append(present_id); + if (present_id) + builder.append(id); + + boolean present_nbRows = true; + builder.append(present_nbRows); + if (present_nbRows) + builder.append(nbRows); + + return builder.toHashCode(); + } + + public int compareTo(scannerGetList_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerGetList_args typedOther = (scannerGetList_args)other; + + lastComparison = Boolean.valueOf(isSetId()).compareTo(isSetId()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(id, typedOther.id); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetNbRows()).compareTo(isSetNbRows()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(nbRows, typedOther.nbRows); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -21808,33 +29105,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case ID: - if (field.type == TType.I32) { - this.id = iprot.readI32(); - this.__isset.id = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case NBROWS: - if (field.type == TType.I32) { - this.nbRows = iprot.readI32(); - this.__isset.nbRows = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case ID: + if (field.type == TType.I32) { + this.id = iprot.readI32(); + setIdIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case NB_ROWS: + if (field.type == TType.I32) { + this.nbRows = iprot.readI32(); + setNbRowsIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -21871,32 +29168,87 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerGetList_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerGetList_result implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("scannerGetList_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public List success; - public static final int SUCCESS = 0; public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + SUCCESS((short)0, "success"), + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, new ListMetaData(TType.LIST, new StructMetaData(TType.STRUCT, TRowResult.class)))); - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -21937,7 +29289,11 @@ public class Hbase { } } - @Override + public scannerGetList_result deepCopy() { + return new scannerGetList_result(this); + } + + @Deprecated public scannerGetList_result clone() { return new scannerGetList_result(this); } @@ -21961,15 +29317,16 @@ public class Hbase { return this.success; } - public void setSuccess(List success) { + public scannerGetList_result setSuccess(List success) { this.success = success; + return this; } public void unsetSuccess() { this.success = null; } - // Returns true if field success is set (has been asigned a value) and false otherwise + /** Returns true if field success is set (has been asigned a value) and false otherwise */ public boolean isSetSuccess() { return this.success != null; } @@ -21984,15 +29341,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public scannerGetList_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -22007,15 +29365,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public scannerGetList_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -22026,8 +29385,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case SUCCESS: if (value == null) { unsetSuccess(); @@ -22052,13 +29411,15 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case SUCCESS: return getSuccess(); @@ -22068,23 +29429,29 @@ public class Hbase { case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case SUCCESS: return isSetSuccess(); case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -22132,7 +29499,24 @@ public class Hbase { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -22144,51 +29528,51 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case SUCCESS: - if (field.type == TType.LIST) { - { - TList _list102 = iprot.readListBegin(); - this.success = new ArrayList(_list102.size); - for (int _i103 = 0; _i103 < _list102.size; ++_i103) + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case SUCCESS: + if (field.type == TType.LIST) { { - TRowResult _elem104; - _elem104 = new TRowResult(); - _elem104.read(iprot); - this.success.add(_elem104); + TList _list102 = iprot.readListBegin(); + this.success = new ArrayList(_list102.size); + for (int _i103 = 0; _i103 < _list102.size; ++_i103) + { + TRowResult _elem104; + _elem104 = new TRowResult(); + _elem104.read(iprot); + this.success.add(_elem104); + } + iprot.readListEnd(); } - iprot.readListEnd(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -22200,7 +29584,8 @@ public class Hbase { oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); - for (TRowResult _iter105 : this.success) { + for (TRowResult _iter105 : this.success) + { _iter105.write(oprot); } oprot.writeListEnd(); @@ -22253,27 +29638,78 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerClose_args implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerClose_args implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerClose_args"); + private static final TField ID_FIELD_DESC = new TField("id", TType.I32, (short)1); public int id; - public static final int ID = 1; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean id = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + ID((short)1, "id"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __ID_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I32))); }}); @@ -22289,18 +29725,23 @@ public class Hbase { { this(); this.id = id; - this.__isset.id = true; + setIdIsSet(true); } /** * Performs a deep copy on other. */ public scannerClose_args(scannerClose_args other) { - __isset.id = other.__isset.id; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.id = other.id; } - @Override + public scannerClose_args deepCopy() { + return new scannerClose_args(this); + } + + @Deprecated public scannerClose_args clone() { return new scannerClose_args(this); } @@ -22309,26 +29750,27 @@ public class Hbase { return this.id; } - public void setId(int id) { + public scannerClose_args setId(int id) { this.id = id; - this.__isset.id = true; + setIdIsSet(true); + return this; } public void unsetId() { - this.__isset.id = false; + __isset_bit_vector.clear(__ID_ISSET_ID); } - // Returns true if field id is set (has been asigned a value) and false otherwise + /** Returns true if field id is set (has been asigned a value) and false otherwise */ public boolean isSetId() { - return this.__isset.id; + return __isset_bit_vector.get(__ID_ISSET_ID); } public void setIdIsSet(boolean value) { - this.__isset.id = value; + __isset_bit_vector.set(__ID_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case ID: if (value == null) { unsetId(); @@ -22337,29 +29779,37 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case ID: - return getId(); + return new Integer(getId()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case ID: return isSetId(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -22389,6 +29839,32 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_id = true; + builder.append(present_id); + if (present_id) + builder.append(id); + + return builder.toHashCode(); + } + + public int compareTo(scannerClose_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerClose_args typedOther = (scannerClose_args)other; + + lastComparison = Boolean.valueOf(isSetId()).compareTo(isSetId()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(id, typedOther.id); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -22401,25 +29877,25 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case ID: - if (field.type == TType.I32) { - this.id = iprot.readI32(); - this.__isset.id = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case ID: + if (field.type == TType.I32) { + this.id = iprot.readI32(); + setIdIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -22438,34 +29914,92 @@ public class Hbase { @Override public String toString() { StringBuilder sb = new StringBuilder("scannerClose_args("); + boolean first = true; + sb.append("id:"); sb.append(this.id); + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } - public static class scannerClose_result implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; + public static class scannerClose_result implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("scannerClose_result"); + private static final TField IO_FIELD_DESC = new TField("io", TType.STRUCT, (short)1); private static final TField IA_FIELD_DESC = new TField("ia", TType.STRUCT, (short)2); public IOError io; - public static final int IO = 1; public IllegalArgument ia; - public static final int IA = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IO((short)1, "io"), + IA((short)2, "ia"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IO, new FieldMetaData("io", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); - put(IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, + put(_Fields.IA, new FieldMetaData("ia", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRUCT))); }}); @@ -22497,7 +30031,11 @@ public class Hbase { } } - @Override + public scannerClose_result deepCopy() { + return new scannerClose_result(this); + } + + @Deprecated public scannerClose_result clone() { return new scannerClose_result(this); } @@ -22506,15 +30044,16 @@ public class Hbase { return this.io; } - public void setIo(IOError io) { + public scannerClose_result setIo(IOError io) { this.io = io; + return this; } public void unsetIo() { this.io = null; } - // Returns true if field io is set (has been asigned a value) and false otherwise + /** Returns true if field io is set (has been asigned a value) and false otherwise */ public boolean isSetIo() { return this.io != null; } @@ -22529,15 +30068,16 @@ public class Hbase { return this.ia; } - public void setIa(IllegalArgument ia) { + public scannerClose_result setIa(IllegalArgument ia) { this.ia = ia; + return this; } public void unsetIa() { this.ia = null; } - // Returns true if field ia is set (has been asigned a value) and false otherwise + /** Returns true if field ia is set (has been asigned a value) and false otherwise */ public boolean isSetIa() { return this.ia != null; } @@ -22548,8 +30088,8 @@ public class Hbase { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case IO: if (value == null) { unsetIo(); @@ -22566,34 +30106,42 @@ public class Hbase { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case IO: return getIo(); case IA: return getIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case IO: return isSetIo(); case IA: return isSetIa(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -22632,6 +30180,45 @@ public class Hbase { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_io = true && (isSetIo()); + builder.append(present_io); + if (present_io) + builder.append(io); + + boolean present_ia = true && (isSetIa()); + builder.append(present_ia); + if (present_ia) + builder.append(ia); + + return builder.toHashCode(); + } + + public int compareTo(scannerClose_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + scannerClose_result typedOther = (scannerClose_result)other; + + lastComparison = Boolean.valueOf(isSetIo()).compareTo(isSetIo()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(io, typedOther.io); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetIa()).compareTo(isSetIa()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(ia, typedOther.ia); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -22644,33 +30231,33 @@ public class Hbase { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case IO: - if (field.type == TType.STRUCT) { - this.io = new IOError(); - this.io.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case IA: - if (field.type == TType.STRUCT) { - this.ia = new IllegalArgument(); - this.ia.read(iprot); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IO: + if (field.type == TType.STRUCT) { + this.io = new IOError(); + this.io.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case IA: + if (field.type == TType.STRUCT) { + this.ia = new IllegalArgument(); + this.ia.read(iprot); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -22717,7 +30304,6 @@ public class Hbase { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/IOError.java b/src/java/org/apache/hadoop/hbase/thrift/generated/IOError.java index 058a2935f4c..191d30155f8 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/IOError.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/IOError.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,9 +17,20 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; @@ -32,16 +41,72 @@ import org.apache.thrift.protocol.*; * to the Hbase master or an Hbase region server. Also used to return * more general Hbase error conditions. */ -public class IOError extends Exception implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class IOError extends Exception implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("IOError"); + private static final TField MESSAGE_FIELD_DESC = new TField("message", TType.STRING, (short)1); public String message; - public static final int MESSAGE = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + MESSAGE((short)1, "message"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -68,7 +133,11 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C } } - @Override + public IOError deepCopy() { + return new IOError(this); + } + + @Deprecated public IOError clone() { return new IOError(this); } @@ -77,15 +146,16 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C return this.message; } - public void setMessage(String message) { + public IOError setMessage(String message) { this.message = message; + return this; } public void unsetMessage() { this.message = null; } - // Returns true if field message is set (has been asigned a value) and false otherwise + /** Returns true if field message is set (has been asigned a value) and false otherwise */ public boolean isSetMessage() { return this.message != null; } @@ -96,8 +166,8 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case MESSAGE: if (value == null) { unsetMessage(); @@ -106,29 +176,37 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case MESSAGE: return getMessage(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case MESSAGE: return isSetMessage(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -158,6 +236,32 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_message = true && (isSetMessage()); + builder.append(present_message); + if (present_message) + builder.append(message); + + return builder.toHashCode(); + } + + public int compareTo(IOError other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + IOError typedOther = (IOError)other; + + lastComparison = Boolean.valueOf(isSetMessage()).compareTo(isSetMessage()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(message, typedOther.message); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -170,24 +274,24 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C if (field.type == TType.STOP) { break; } - switch (field.id) - { - case MESSAGE: - if (field.type == TType.STRING) { - this.message = iprot.readString(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case MESSAGE: + if (field.type == TType.STRING) { + this.message = iprot.readString(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -208,6 +312,7 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C @Override public String toString() { StringBuilder sb = new StringBuilder("IOError("); + boolean first = true; sb.append("message:"); if (this.message == null) { @@ -215,13 +320,13 @@ public class IOError extends Exception implements TBase, java.io.Serializable, C } else { sb.append(this.message); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java b/src/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java index 406661f0095..63e15bd28db 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,9 +17,20 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; @@ -31,16 +40,72 @@ import org.apache.thrift.protocol.*; * An IllegalArgument exception indicates an illegal or invalid * argument was passed into a procedure. */ -public class IllegalArgument extends Exception implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class IllegalArgument extends Exception implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("IllegalArgument"); + private static final TField MESSAGE_FIELD_DESC = new TField("message", TType.STRING, (short)1); public String message; - public static final int MESSAGE = 1; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + MESSAGE((short)1, "message"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.MESSAGE, new FieldMetaData("message", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -67,7 +132,11 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali } } - @Override + public IllegalArgument deepCopy() { + return new IllegalArgument(this); + } + + @Deprecated public IllegalArgument clone() { return new IllegalArgument(this); } @@ -76,15 +145,16 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali return this.message; } - public void setMessage(String message) { + public IllegalArgument setMessage(String message) { this.message = message; + return this; } public void unsetMessage() { this.message = null; } - // Returns true if field message is set (has been asigned a value) and false otherwise + /** Returns true if field message is set (has been asigned a value) and false otherwise */ public boolean isSetMessage() { return this.message != null; } @@ -95,8 +165,8 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case MESSAGE: if (value == null) { unsetMessage(); @@ -105,29 +175,37 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case MESSAGE: return getMessage(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case MESSAGE: return isSetMessage(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -157,6 +235,32 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_message = true && (isSetMessage()); + builder.append(present_message); + if (present_message) + builder.append(message); + + return builder.toHashCode(); + } + + public int compareTo(IllegalArgument other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + IllegalArgument typedOther = (IllegalArgument)other; + + lastComparison = Boolean.valueOf(isSetMessage()).compareTo(isSetMessage()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(message, typedOther.message); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -169,24 +273,24 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali if (field.type == TType.STOP) { break; } - switch (field.id) - { - case MESSAGE: - if (field.type == TType.STRING) { - this.message = iprot.readString(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case MESSAGE: + if (field.type == TType.STRING) { + this.message = iprot.readString(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -207,6 +311,7 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali @Override public String toString() { StringBuilder sb = new StringBuilder("IllegalArgument("); + boolean first = true; sb.append("message:"); if (this.message == null) { @@ -214,13 +319,13 @@ public class IllegalArgument extends Exception implements TBase, java.io.Seriali } else { sb.append(this.message); } + first = false; sb.append(")"); return sb.toString(); } public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java b/src/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java index 0ceff47253d..9d86bb8d6b6 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,11 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -31,32 +39,84 @@ import org.apache.thrift.protocol.*; /** * A Mutation object is used to either update or delete a column-value. */ -public class Mutation implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class Mutation implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("Mutation"); + private static final TField IS_DELETE_FIELD_DESC = new TField("isDelete", TType.BOOL, (short)1); private static final TField COLUMN_FIELD_DESC = new TField("column", TType.STRING, (short)2); private static final TField VALUE_FIELD_DESC = new TField("value", TType.STRING, (short)3); public boolean isDelete; - public static final int ISDELETE = 1; public byte[] column; - public static final int COLUMN = 2; public byte[] value; - public static final int VALUE = 3; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean isDelete = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + IS_DELETE((short)1, "isDelete"), + COLUMN((short)2, "column"), + VALUE((short)3, "value"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(ISDELETE, new FieldMetaData("isDelete", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __ISDELETE_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.IS_DELETE, new FieldMetaData("isDelete", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.BOOL))); - put(COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMN, new FieldMetaData("column", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, + put(_Fields.VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); }}); @@ -76,7 +136,7 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { { this(); this.isDelete = isDelete; - this.__isset.isDelete = true; + setIsDeleteIsSet(true); this.column = column; this.value = value; } @@ -85,7 +145,8 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { * Performs a deep copy on other. */ public Mutation(Mutation other) { - __isset.isDelete = other.__isset.isDelete; + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); this.isDelete = other.isDelete; if (other.isSetColumn()) { this.column = other.column; @@ -95,7 +156,11 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { } } - @Override + public Mutation deepCopy() { + return new Mutation(this); + } + + @Deprecated public Mutation clone() { return new Mutation(this); } @@ -104,37 +169,39 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { return this.isDelete; } - public void setIsDelete(boolean isDelete) { + public Mutation setIsDelete(boolean isDelete) { this.isDelete = isDelete; - this.__isset.isDelete = true; + setIsDeleteIsSet(true); + return this; } public void unsetIsDelete() { - this.__isset.isDelete = false; + __isset_bit_vector.clear(__ISDELETE_ISSET_ID); } - // Returns true if field isDelete is set (has been asigned a value) and false otherwise + /** Returns true if field isDelete is set (has been asigned a value) and false otherwise */ public boolean isSetIsDelete() { - return this.__isset.isDelete; + return __isset_bit_vector.get(__ISDELETE_ISSET_ID); } public void setIsDeleteIsSet(boolean value) { - this.__isset.isDelete = value; + __isset_bit_vector.set(__ISDELETE_ISSET_ID, value); } public byte[] getColumn() { return this.column; } - public void setColumn(byte[] column) { + public Mutation setColumn(byte[] column) { this.column = column; + return this; } public void unsetColumn() { this.column = null; } - // Returns true if field column is set (has been asigned a value) and false otherwise + /** Returns true if field column is set (has been asigned a value) and false otherwise */ public boolean isSetColumn() { return this.column != null; } @@ -149,15 +216,16 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { return this.value; } - public void setValue(byte[] value) { + public Mutation setValue(byte[] value) { this.value = value; + return this; } public void unsetValue() { this.value = null; } - // Returns true if field value is set (has been asigned a value) and false otherwise + /** Returns true if field value is set (has been asigned a value) and false otherwise */ public boolean isSetValue() { return this.value != null; } @@ -168,9 +236,9 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case ISDELETE: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case IS_DELETE: if (value == null) { unsetIsDelete(); } else { @@ -194,15 +262,17 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case ISDELETE: - return Boolean.valueOf(isIsDelete()); + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case IS_DELETE: + return new Boolean(isIsDelete()); case COLUMN: return getColumn(); @@ -210,23 +280,29 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { case VALUE: return getValue(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case ISDELETE: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case IS_DELETE: return isSetIsDelete(); case COLUMN: return isSetColumn(); case VALUE: return isSetValue(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -274,6 +350,58 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_isDelete = true; + builder.append(present_isDelete); + if (present_isDelete) + builder.append(isDelete); + + boolean present_column = true && (isSetColumn()); + builder.append(present_column); + if (present_column) + builder.append(column); + + boolean present_value = true && (isSetValue()); + builder.append(present_value); + if (present_value) + builder.append(value); + + return builder.toHashCode(); + } + + public int compareTo(Mutation other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + Mutation typedOther = (Mutation)other; + + lastComparison = Boolean.valueOf(isSetIsDelete()).compareTo(isSetIsDelete()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(isDelete, typedOther.isDelete); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetColumn()).compareTo(isSetColumn()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(column, typedOther.column); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetValue()).compareTo(isSetValue()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(value, typedOther.value); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -286,39 +414,39 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case ISDELETE: - if (field.type == TType.BOOL) { - this.isDelete = iprot.readBool(); - this.__isset.isDelete = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMN: - if (field.type == TType.STRING) { - this.column = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case VALUE: - if (field.type == TType.STRING) { - this.value = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case IS_DELETE: + if (field.type == TType.BOOL) { + this.isDelete = iprot.readBool(); + setIsDeleteIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case COLUMN: + if (field.type == TType.STRING) { + this.column = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case VALUE: + if (field.type == TType.STRING) { + this.value = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -357,7 +485,7 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { if (this.column == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.column)); + sb.append(this.column); } first = false; if (!first) sb.append(", "); @@ -365,7 +493,7 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { if (this.value == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.value)); + sb.append(this.value); } first = false; sb.append(")"); @@ -374,7 +502,6 @@ public class Mutation implements TBase, java.io.Serializable, Cloneable { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/TCell.java b/src/java/org/apache/hadoop/hbase/thrift/generated/TCell.java index 858ef6a6a76..1bc3c558921 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/TCell.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/TCell.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,11 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -34,27 +42,79 @@ import org.apache.thrift.protocol.*; * the timestamp of a cell to a first-class value, making it easy to take * note of temporal data. Cell is used all the way from HStore up to HTable. */ -public class TCell implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class TCell implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("TCell"); + private static final TField VALUE_FIELD_DESC = new TField("value", TType.STRING, (short)1); private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)2); public byte[] value; - public static final int VALUE = 1; public long timestamp; - public static final int TIMESTAMP = 2; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean timestamp = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + VALUE((short)1, "value"), + TIMESTAMP((short)2, "timestamp"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __TIMESTAMP_ISSET_ID = 0; + private BitSet __isset_bit_vector = new BitSet(1); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + put(_Fields.TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); }}); @@ -72,21 +132,26 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { this(); this.value = value; this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); } /** * Performs a deep copy on other. */ public TCell(TCell other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetValue()) { this.value = other.value; } - __isset.timestamp = other.__isset.timestamp; this.timestamp = other.timestamp; } - @Override + public TCell deepCopy() { + return new TCell(this); + } + + @Deprecated public TCell clone() { return new TCell(this); } @@ -95,15 +160,16 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { return this.value; } - public void setValue(byte[] value) { + public TCell setValue(byte[] value) { this.value = value; + return this; } public void unsetValue() { this.value = null; } - // Returns true if field value is set (has been asigned a value) and false otherwise + /** Returns true if field value is set (has been asigned a value) and false otherwise */ public boolean isSetValue() { return this.value != null; } @@ -118,26 +184,27 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { return this.timestamp; } - public void setTimestamp(long timestamp) { + public TCell setTimestamp(long timestamp) { this.timestamp = timestamp; - this.__isset.timestamp = true; + setTimestampIsSet(true); + return this; } public void unsetTimestamp() { - this.__isset.timestamp = false; + __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); } - // Returns true if field timestamp is set (has been asigned a value) and false otherwise + /** Returns true if field timestamp is set (has been asigned a value) and false otherwise */ public boolean isSetTimestamp() { - return this.__isset.timestamp; + return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); } public void setTimestampIsSet(boolean value) { - this.__isset.timestamp = value; + __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case VALUE: if (value == null) { unsetValue(); @@ -154,34 +221,42 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case VALUE: return getValue(); case TIMESTAMP: - return getTimestamp(); + return new Long(getTimestamp()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case VALUE: return isSetValue(); case TIMESTAMP: return isSetTimestamp(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -220,6 +295,45 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_value = true && (isSetValue()); + builder.append(present_value); + if (present_value) + builder.append(value); + + boolean present_timestamp = true; + builder.append(present_timestamp); + if (present_timestamp) + builder.append(timestamp); + + return builder.toHashCode(); + } + + public int compareTo(TCell other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + TCell typedOther = (TCell)other; + + lastComparison = Boolean.valueOf(isSetValue()).compareTo(isSetValue()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(value, typedOther.value); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(isSetTimestamp()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(timestamp, typedOther.timestamp); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -232,32 +346,32 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case VALUE: - if (field.type == TType.STRING) { - this.value = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case TIMESTAMP: - if (field.type == TType.I64) { - this.timestamp = iprot.readI64(); - this.__isset.timestamp = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case VALUE: + if (field.type == TType.STRING) { + this.value = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case TIMESTAMP: + if (field.type == TType.I64) { + this.timestamp = iprot.readI64(); + setTimestampIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -287,7 +401,7 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { if (this.value == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.value)); + sb.append(this.value); } first = false; if (!first) sb.append(", "); @@ -300,7 +414,6 @@ public class TCell implements TBase, java.io.Serializable, Cloneable { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java b/src/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java index 3d995ef05b5..649fb1bfb49 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,11 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -31,9 +39,9 @@ import org.apache.thrift.protocol.*; /** * A TRegionInfo contains information about an HTable region. */ -public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class TRegionInfo implements TBase, java.io.Serializable, Cloneable, Comparable { private static final TStruct STRUCT_DESC = new TStruct("TRegionInfo"); + private static final TField START_KEY_FIELD_DESC = new TField("startKey", TType.STRING, (short)1); private static final TField END_KEY_FIELD_DESC = new TField("endKey", TType.STRING, (short)2); private static final TField ID_FIELD_DESC = new TField("id", TType.I64, (short)3); @@ -41,33 +49,85 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { private static final TField VERSION_FIELD_DESC = new TField("version", TType.BYTE, (short)5); public byte[] startKey; - public static final int STARTKEY = 1; public byte[] endKey; - public static final int ENDKEY = 2; public long id; - public static final int ID = 3; public byte[] name; - public static final int NAME = 4; public byte version; - public static final int VERSION = 5; - private final Isset __isset = new Isset(); - private static final class Isset implements java.io.Serializable { - private static final long serialVersionUID = 1L; - public boolean id = false; - public boolean version = false; + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + START_KEY((short)1, "startKey"), + END_KEY((short)2, "endKey"), + ID((short)3, "id"), + NAME((short)4, "name"), + VERSION((short)5, "version"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } } - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(STARTKEY, new FieldMetaData("startKey", TFieldRequirementType.DEFAULT, + // isset id assignments + private static final int __ID_ISSET_ID = 0; + private static final int __VERSION_ISSET_ID = 1; + private BitSet __isset_bit_vector = new BitSet(2); + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.START_KEY, new FieldMetaData("startKey", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ENDKEY, new FieldMetaData("endKey", TFieldRequirementType.DEFAULT, + put(_Fields.END_KEY, new FieldMetaData("endKey", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, + put(_Fields.ID, new FieldMetaData("id", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.I64))); - put(NAME, new FieldMetaData("name", TFieldRequirementType.DEFAULT, + put(_Fields.NAME, new FieldMetaData("name", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(VERSION, new FieldMetaData("version", TFieldRequirementType.DEFAULT, + put(_Fields.VERSION, new FieldMetaData("version", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.BYTE))); }}); @@ -89,32 +149,36 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { this.startKey = startKey; this.endKey = endKey; this.id = id; - this.__isset.id = true; + setIdIsSet(true); this.name = name; this.version = version; - this.__isset.version = true; + setVersionIsSet(true); } /** * Performs a deep copy on other. */ public TRegionInfo(TRegionInfo other) { + __isset_bit_vector.clear(); + __isset_bit_vector.or(other.__isset_bit_vector); if (other.isSetStartKey()) { this.startKey = other.startKey; } if (other.isSetEndKey()) { this.endKey = other.endKey; } - __isset.id = other.__isset.id; this.id = other.id; if (other.isSetName()) { this.name = other.name; } - __isset.version = other.__isset.version; this.version = other.version; } - @Override + public TRegionInfo deepCopy() { + return new TRegionInfo(this); + } + + @Deprecated public TRegionInfo clone() { return new TRegionInfo(this); } @@ -123,15 +187,16 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { return this.startKey; } - public void setStartKey(byte[] startKey) { + public TRegionInfo setStartKey(byte[] startKey) { this.startKey = startKey; + return this; } public void unsetStartKey() { this.startKey = null; } - // Returns true if field startKey is set (has been asigned a value) and false otherwise + /** Returns true if field startKey is set (has been asigned a value) and false otherwise */ public boolean isSetStartKey() { return this.startKey != null; } @@ -146,15 +211,16 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { return this.endKey; } - public void setEndKey(byte[] endKey) { + public TRegionInfo setEndKey(byte[] endKey) { this.endKey = endKey; + return this; } public void unsetEndKey() { this.endKey = null; } - // Returns true if field endKey is set (has been asigned a value) and false otherwise + /** Returns true if field endKey is set (has been asigned a value) and false otherwise */ public boolean isSetEndKey() { return this.endKey != null; } @@ -169,37 +235,39 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { return this.id; } - public void setId(long id) { + public TRegionInfo setId(long id) { this.id = id; - this.__isset.id = true; + setIdIsSet(true); + return this; } public void unsetId() { - this.__isset.id = false; + __isset_bit_vector.clear(__ID_ISSET_ID); } - // Returns true if field id is set (has been asigned a value) and false otherwise + /** Returns true if field id is set (has been asigned a value) and false otherwise */ public boolean isSetId() { - return this.__isset.id; + return __isset_bit_vector.get(__ID_ISSET_ID); } public void setIdIsSet(boolean value) { - this.__isset.id = value; + __isset_bit_vector.set(__ID_ISSET_ID, value); } public byte[] getName() { return this.name; } - public void setName(byte[] name) { + public TRegionInfo setName(byte[] name) { this.name = name; + return this; } public void unsetName() { this.name = null; } - // Returns true if field name is set (has been asigned a value) and false otherwise + /** Returns true if field name is set (has been asigned a value) and false otherwise */ public boolean isSetName() { return this.name != null; } @@ -214,27 +282,28 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { return this.version; } - public void setVersion(byte version) { + public TRegionInfo setVersion(byte version) { this.version = version; - this.__isset.version = true; + setVersionIsSet(true); + return this; } public void unsetVersion() { - this.__isset.version = false; + __isset_bit_vector.clear(__VERSION_ISSET_ID); } - // Returns true if field version is set (has been asigned a value) and false otherwise + /** Returns true if field version is set (has been asigned a value) and false otherwise */ public boolean isSetVersion() { - return this.__isset.version; + return __isset_bit_vector.get(__VERSION_ISSET_ID); } public void setVersionIsSet(boolean value) { - this.__isset.version = value; + __isset_bit_vector.set(__VERSION_ISSET_ID, value); } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { - case STARTKEY: + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case START_KEY: if (value == null) { unsetStartKey(); } else { @@ -242,7 +311,7 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { } break; - case ENDKEY: + case END_KEY: if (value == null) { unsetEndKey(); } else { @@ -274,39 +343,44 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { - case STARTKEY: + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case START_KEY: return getStartKey(); - case ENDKEY: + case END_KEY: return getEndKey(); case ID: - return getId(); + return new Long(getId()); case NAME: return getName(); case VERSION: - return getVersion(); + return new Byte(getVersion()); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { - case STARTKEY: + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { + case START_KEY: return isSetStartKey(); - case ENDKEY: + case END_KEY: return isSetEndKey(); case ID: return isSetId(); @@ -314,9 +388,12 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { return isSetName(); case VERSION: return isSetVersion(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -382,6 +459,84 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { @Override public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_startKey = true && (isSetStartKey()); + builder.append(present_startKey); + if (present_startKey) + builder.append(startKey); + + boolean present_endKey = true && (isSetEndKey()); + builder.append(present_endKey); + if (present_endKey) + builder.append(endKey); + + boolean present_id = true; + builder.append(present_id); + if (present_id) + builder.append(id); + + boolean present_name = true && (isSetName()); + builder.append(present_name); + if (present_name) + builder.append(name); + + boolean present_version = true; + builder.append(present_version); + if (present_version) + builder.append(version); + + return builder.toHashCode(); + } + + public int compareTo(TRegionInfo other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + TRegionInfo typedOther = (TRegionInfo)other; + + lastComparison = Boolean.valueOf(isSetStartKey()).compareTo(isSetStartKey()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(startKey, typedOther.startKey); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetEndKey()).compareTo(isSetEndKey()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(endKey, typedOther.endKey); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetId()).compareTo(isSetId()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(id, typedOther.id); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetName()).compareTo(isSetName()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(name, typedOther.name); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = Boolean.valueOf(isSetVersion()).compareTo(isSetVersion()); + if (lastComparison != 0) { + return lastComparison; + } + lastComparison = TBaseHelper.compareTo(version, typedOther.version); + if (lastComparison != 0) { + return lastComparison; + } return 0; } @@ -394,54 +549,54 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case STARTKEY: - if (field.type == TType.STRING) { - this.startKey = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ENDKEY: - if (field.type == TType.STRING) { - this.endKey = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case ID: - if (field.type == TType.I64) { - this.id = iprot.readI64(); - this.__isset.id = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case NAME: - if (field.type == TType.STRING) { - this.name = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case VERSION: - if (field.type == TType.BYTE) { - this.version = iprot.readByte(); - this.__isset.version = true; - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case START_KEY: + if (field.type == TType.STRING) { + this.startKey = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case END_KEY: + if (field.type == TType.STRING) { + this.endKey = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case ID: + if (field.type == TType.I64) { + this.id = iprot.readI64(); + setIdIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case NAME: + if (field.type == TType.STRING) { + this.name = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + case VERSION: + if (field.type == TType.BYTE) { + this.version = iprot.readByte(); + setVersionIsSet(true); + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -484,7 +639,7 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { if (this.startKey == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.startKey)); + sb.append(this.startKey); } first = false; if (!first) sb.append(", "); @@ -492,7 +647,7 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { if (this.endKey == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.endKey)); + sb.append(this.endKey); } first = false; if (!first) sb.append(", "); @@ -504,7 +659,7 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { if (this.name == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.name)); + sb.append(this.name); } first = false; if (!first) sb.append(", "); @@ -517,7 +672,6 @@ public class TRegionInfo implements TBase, java.io.Serializable, Cloneable { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java b/src/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java index cdb36619710..ce5c2bfaee0 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java +++ b/src/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java @@ -1,6 +1,4 @@ -/* - * Copyright 2009 The Apache Software Foundation - * +/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -19,11 +17,21 @@ */ package org.apache.hadoop.hbase.thrift.generated; +import org.apache.commons.lang.builder.HashCodeBuilder; +import java.util.List; +import java.util.ArrayList; import java.util.Map; import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; import java.util.Collections; +import java.util.BitSet; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.hadoop.hbase.util.Bytes; import org.apache.thrift.*; import org.apache.thrift.meta_data.*; import org.apache.thrift.protocol.*; @@ -31,21 +39,77 @@ import org.apache.thrift.protocol.*; /** * Holds row name and then a map of columns to cells. */ -public class TRowResult implements TBase, java.io.Serializable, Cloneable { - private static final long serialVersionUID = 1L; +public class TRowResult implements TBase, java.io.Serializable, Cloneable { private static final TStruct STRUCT_DESC = new TStruct("TRowResult"); + private static final TField ROW_FIELD_DESC = new TField("row", TType.STRING, (short)1); private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.MAP, (short)2); public byte[] row; - public static final int ROW = 1; public Map columns; - public static final int COLUMNS = 2; - public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ - put(ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements TFieldIdEnum { + ROW((short)1, "row"), + COLUMNS((short)2, "columns"); + + private static final Map byId = new HashMap(); + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byId.put((int)field._thriftId, field); + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + return byId.get(fieldId); + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + + public static final Map<_Fields, FieldMetaData> metaDataMap = Collections.unmodifiableMap(new EnumMap<_Fields, FieldMetaData>(_Fields.class) {{ + put(_Fields.ROW, new FieldMetaData("row", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING))); - put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + put(_Fields.COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, new MapMetaData(TType.MAP, new FieldValueMetaData(TType.STRING), new StructMetaData(TType.STRUCT, TCell.class)))); @@ -91,7 +155,11 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { } } - @Override + public TRowResult deepCopy() { + return new TRowResult(this); + } + + @Deprecated public TRowResult clone() { return new TRowResult(this); } @@ -100,15 +168,16 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { return this.row; } - public void setRow(byte[] row) { + public TRowResult setRow(byte[] row) { this.row = row; + return this; } public void unsetRow() { this.row = null; } - // Returns true if field row is set (has been asigned a value) and false otherwise + /** Returns true if field row is set (has been asigned a value) and false otherwise */ public boolean isSetRow() { return this.row != null; } @@ -134,15 +203,16 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { return this.columns; } - public void setColumns(Map columns) { + public TRowResult setColumns(Map columns) { this.columns = columns; + return this; } public void unsetColumns() { this.columns = null; } - // Returns true if field columns is set (has been asigned a value) and false otherwise + /** Returns true if field columns is set (has been asigned a value) and false otherwise */ public boolean isSetColumns() { return this.columns != null; } @@ -153,8 +223,8 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { } } - public void setFieldValue(int fieldID, Object value) { - switch (fieldID) { + public void setFieldValue(_Fields field, Object value) { + switch (field) { case ROW: if (value == null) { unsetRow(); @@ -171,34 +241,42 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { } break; - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } } - public Object getFieldValue(int fieldID) { - switch (fieldID) { + public void setFieldValue(int fieldID, Object value) { + setFieldValue(_Fields.findByThriftIdOrThrow(fieldID), value); + } + + public Object getFieldValue(_Fields field) { + switch (field) { case ROW: return getRow(); case COLUMNS: return getColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); } - // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise - public boolean isSet(int fieldID) { - switch (fieldID) { + public Object getFieldValue(int fieldId) { + return getFieldValue(_Fields.findByThriftIdOrThrow(fieldId)); + } + + /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + switch (field) { case ROW: return isSetRow(); case COLUMNS: return isSetColumns(); - default: - throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); } + throw new IllegalStateException(); + } + + public boolean isSet(int fieldID) { + return isSet(_Fields.findByThriftIdOrThrow(fieldID)); } @Override @@ -237,7 +315,19 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { @Override public int hashCode() { - return 0; + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_row = true && (isSetRow()); + builder.append(present_row); + if (present_row) + builder.append(row); + + boolean present_columns = true && (isSetColumns()); + builder.append(present_columns); + if (present_columns) + builder.append(columns); + + return builder.toHashCode(); } public void read(TProtocol iprot) throws TException { @@ -249,44 +339,44 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { if (field.type == TType.STOP) { break; } - switch (field.id) - { - case ROW: - if (field.type == TType.STRING) { - this.row = iprot.readBinary(); - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - case COLUMNS: - if (field.type == TType.MAP) { - { - TMap _map4 = iprot.readMapBegin(); - this.columns = new HashMap(2*_map4.size); - for (int _i5 = 0; _i5 < _map4.size; ++_i5) - { - byte[] _key6; - TCell _val7; - _key6 = iprot.readBinary(); - _val7 = new TCell(); - _val7.read(iprot); - this.columns.put(_key6, _val7); - } - iprot.readMapEnd(); + _Fields fieldId = _Fields.findByThriftId(field.id); + if (fieldId == null) { + TProtocolUtil.skip(iprot, field.type); + } else { + switch (fieldId) { + case ROW: + if (field.type == TType.STRING) { + this.row = iprot.readBinary(); + } else { + TProtocolUtil.skip(iprot, field.type); } - } else { - TProtocolUtil.skip(iprot, field.type); - } - break; - default: - TProtocolUtil.skip(iprot, field.type); - break; + break; + case COLUMNS: + if (field.type == TType.MAP) { + { + TMap _map4 = iprot.readMapBegin(); + this.columns = new HashMap(2*_map4.size); + for (int _i5 = 0; _i5 < _map4.size; ++_i5) + { + byte[] _key6; + TCell _val7; + _key6 = iprot.readBinary(); + _val7 = new TCell(); + _val7.read(iprot); + this.columns.put(_key6, _val7); + } + iprot.readMapEnd(); + } + } else { + TProtocolUtil.skip(iprot, field.type); + } + break; + } + iprot.readFieldEnd(); } - iprot.readFieldEnd(); } iprot.readStructEnd(); - // check for required fields of primitive type, which can't be checked in the validate method validate(); } @@ -304,7 +394,8 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeMapBegin(new TMap(TType.STRING, TType.STRUCT, this.columns.size())); - for (Map.Entry _iter8 : this.columns.entrySet()) { + for (Map.Entry _iter8 : this.columns.entrySet()) + { oprot.writeBinary(_iter8.getKey()); _iter8.getValue().write(oprot); } @@ -325,7 +416,7 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { if (this.row == null) { sb.append("null"); } else { - sb.append(Bytes.toStringBinary(this.row)); + sb.append(this.row); } first = false; if (!first) sb.append(", "); @@ -342,7 +433,6 @@ public class TRowResult implements TBase, java.io.Serializable, Cloneable { public void validate() throws TException { // check for required fields - // check that fields of type enum have valid values } } diff --git a/src/java/org/apache/hadoop/hbase/thrift/package.html b/src/java/org/apache/hadoop/hbase/thrift/package.html index 24ca6f58693..2f205e8e00f 100644 --- a/src/java/org/apache/hadoop/hbase/thrift/package.html +++ b/src/java/org/apache/hadoop/hbase/thrift/package.html @@ -20,28 +20,23 @@ -Provides an HBase Thrift +Provides an HBase Thrift service. This directory contains a Thrift interface definition file for an Hbase RPC service and a Java server implementation.

What is Thrift?

- -

"Thrift is a software framework for scalable cross-language services -development. It combines a powerful software stack with a code generation -engine to build services that work efficiently and seamlessly between C++, -Java, Python, PHP, and Ruby. Thrift was developed at Facebook, and we are now -releasing it as open source." For additional information, see -http://developers.facebook.com/thrift/. Facebook has announced their intent -to migrate Thrift into Apache Incubator. -

+

"Thrift is a software framework for scalable cross-language services development. +It combines a software stack with a code generation engine to build services +that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, +Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml."

Description

The Hbase API is defined in the file Hbase.thrift. A server-side implementation of the API is in -org.apache.hadoop.hbase.thrift.ThriftServer. The generated interfaces, +org.apache.hadoop.hbase.thrift.ThriftServer. The generated interfaces, types, and RPC utility files are checked into SVN under the org.apache.hadoop.hbase.thrift.generated directory. @@ -49,16 +44,15 @@ types, and RPC utility files are checked into SVN under the

The files were generated by running the commands:

-  thrift -strict --gen java Hbase.thrift
+  thrift -strict --gen java:hashcode Hbase.thrift
   mv gen-java/org/apache/hadoop/hbase/thrift/generated .
   rm -rf gen-java
 

The 'thrift' binary is the Thrift compiler, and it is distributed as a part -of -the Thrift package. Additionally, specific language runtime libraries are a -part of the Thrift package. A version of the Java runtime is checked into SVN +of the Thrift package. Additionally, specific language runtime libraries are a +part of the Thrift package. A version of the Java runtime is checked into SVN under the hbase/lib directory.