docs: public static DataBuffer readUnknown(DataInputStream s, AllocationMode allocMode, long length, DataType type) {
          // if buffer is uncompressed, it'll be valid buffer, so we'll just return it
          if (type != DataType.COMPRESSED) {
              DataBuffer buffer = Nd4j.createBuffer(type, length, false);
              buffer.read(s, allocMode, length, type);
              return buffer;
          } else {
              try {
                  // if buffer is compressed one, we''ll restore it here
                  String compressionAlgorithm = s.readUTF();
                  long compressedLength = s.readLong();
                  long originalLength = s.readLong();
                  long numberOfElements = s.readLong();
                  DataType originalType = DataType.values()[s.readInt()];
  
                  byte[] temp = new byte[(int) compressedLength];
                  for (int i = 0; i < compressedLength; i++) {
                      temp[i] = s.readByte();
                  }
  
                  Pointer pointer = new BytePointer(temp);
                  CompressionDescriptor descriptor = new CompressionDescriptor();
                  descriptor.setCompressedLength(compressedLength);
                  descriptor.setCompressionAlgorithm(compressionAlgorithm);
                  descriptor.setOriginalLength(originalLength);
                  descriptor.setNumberOfElements(numberOfElements);
                  descriptor.setOriginalDataType(originalType);
                  return new CompressedDataBuffer(pointer, descriptor);
              } catch (Exception e) {
                  throw new RuntimeException(e);
              }
          }
      }