/**
* Deserializes the contents of the incoming message buffer {@code b}.
*
* @return deserialised object
* @throws UnsupportedEncodingException If the named charset is not supported
*/
Object r() throws UnsupportedEncodingException{
int i=0, n, t=b[j++];
if(t<0)
switch(t){
case -1:
return rb();
case (-2):
return rg();
case -4:
return b[j++];
case -5:
return rh();
case -6:
return ri();
case -7:
return rj();
case -8:
return re();
case -9:
return rf();
case -10:
return rc();
case -11:
return rs();
case -12:
return rp();
case -13:
return rm();
case -14:
return rd();
case -15:
return rz();
case -16:
return rn();
case -17:
return ru();
case -18:
return rv();
case -19:
return rt();
}
if(t>99){
if(t==100){
rs();
return r();
}
if(t<104)
return b[j++]==0&&t==101?null:"func";
if(t>105)
r();
else
for(n=ri();i<n;i++)
r();
return "func";
}
if(t==99)
return new Dict(r(),r());
j++;
if(t==98)
return new Flip((Dict)r());
n=ri();
switch(t){
case 0:
Object[] L=new Object[n];
for(;i<n;i++)
L[i]=r();
return L;
case 1:
boolean[] B=new boolean[n];
for(;i<n;i++)
B[i]=rb();
return B;
case 2: {
UUID[] G=new UUID[n];
for(;i<n;i++)
G[i]=rg();
return G;
}
case 4:
byte[] G=new byte[n];
for(;i<n;i++)
G[i]=b[j++];
return G;
case 5:
short[] H=new short[n];
for(;i<n;i++)
H[i]=rh();
return H;
case 6:
int[] I=new int[n];
for(;i<n;i++)
I[i]=ri();
return I;
case 7:
long[] J=new long[n];
for(;i<n;i++)
J[i]=rj();
return J;
case 8:
float[] E=new float[n];
for(;i<n;i++)
E[i]=re();
return E;
case 9:
double[] F=new double[n];
for(;i<n;i++)
F[i]=rf();
return F;
case 10:
char[] C=new String(b,j,n,encoding).toCharArray();
j+=n;
return C;
case 11:
String[] S=new String[n];
for(;i<n;i++)
S[i]=rs();
return S;
case 12:
Timestamp[] P=new Timestamp[n];
for(;i<n;i++)
P[i]=rp();
return P;
case 13:
Month[] M=new Month[n];
for(;i<n;i++)
M[i]=rm();
return M;
case 14:
Date[] D=new Date[n];
for(;i<n;i++)
D[i]=rd();
return D;
case 15:
java.util.Date[] Z=new java.util.Date[n];
for(;i<n;i++)
Z[i]=rz();
return Z;
case 16:
Timespan[] N=new Timespan[n];
for(;i<n;i++)
N[i]=rn();
return N;
case 17:
Minute[] U=new Minute[n];
for(;i<n;i++)
U[i]=ru();
return U;
case 18:
Second[] V=new Second[n];
for(;i<n;i++)
V[i]=rv();
return V;
case 19:
Time[] T=new Time[n];
for(;i<n;i++)
T[i]=rt();
return T;
}
return null;
}
Manually maintained open-source code on GitHub. Looks like decompiled from obfuscated binary, they just reformatted it, added some comments and now are making manual changes. Current version: https://github.com/KxSystems/javakdb/blob/master/src/kx/c.java Original version: https://github.com/KxSystems/javakdb/blob/c9afe6fa32d7d3e3cddabdc9bd43f0155a5d2a1b/src/kx/c.java