in src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java [304:346]
static final String typeDecode(final int typeId) {
final StringBuilder sb = new StringBuilder();
final int group1 = typeId & 0x7;
switch (group1) { // 0000 0XXX
case 0 : sb.append(pad("Writable + ",32)); break;
case 1 : sb.append(pad("ReadOnly + ",32)); break;
case 2 : sb.append(pad("Writable + Region + ",32)); break;
case 3 : sb.append(pad("ReadOnly + Region + ",32)); break;
case 4 : sb.append(pad("Writable + Duplicate + ",32)); break;
case 5 : sb.append(pad("ReadOnly + Duplicate + ",32)); break;
case 6 : sb.append(pad("Writable + Region + Duplicate + ",32)); break;
case 7 : sb.append(pad("ReadOnly + Region + Duplicate + ",32)); break;
default: break;
}
final int group2 = (typeId >>> 3) & 0x3;
switch (group2) { // 000X X000 43
case 0 : sb.append(pad("Heap + ",15)); break; // 00
case 1 : sb.append(pad("Direct + ",15)); break; // 01
case 2 : sb.append(pad("Map + Direct + ",15)); break; //10
case 3 : sb.append(pad("Map + Direct + ",15)); break; //11
default: break;
}
final int group3 = (typeId >>> 5) & 0x1;
switch (group3) { // 00X0 0000
case 0 : sb.append(pad("NativeOrder + ",17)); break;
case 1 : sb.append(pad("NonNativeOrder + ",17)); break;
default: break;
}
final int group4 = (typeId >>> 6) & 0x1;
switch (group4) { // 0X00 0000
case 0 : sb.append(pad("Memory + ",9)); break;
case 1 : sb.append(pad("Buffer + ",9)); break;
default: break;
}
final int group5 = (typeId >>> 7) & 0x1;
switch (group5) { // X000 0000
case 0 : sb.append(pad("",10)); break;
case 1 : sb.append(pad("ByteBuffer",10)); break;
default: break;
}
return sb.toString();
}