public static String preambleToString()

in src/main/java/org/apache/datasketches/vector/matrix/MatrixPreambleUtil.java [91:137]


  public static String preambleToString(final Memory mem) {

    final int preLongs = getAndCheckPreLongs(mem);  // make sure we can get the assumed preamble
    final MatrixFamily family = MatrixFamily.idToFamily(extractFamilyID(mem));

    final int serVer = extractSerVer(mem);
    if (serVer != SER_VER) {
      throw new IllegalArgumentException("Invalid serialization version in memory region. "
              + "Found: " + serVer);
    }

    final int flags = extractFlags(mem);
    final String flagsStr = Integer.toBinaryString(flags) + ", " + flags;
    //final boolean isEmpty   = (flags & EMPTY_FLAG_MASK) > 0;
    final boolean isCompact = (flags & COMPACT_FLAG_MASK) > 0;

    final int numRows = extractNumRows(mem);
    final int numCols = extractNumColumns(mem);

    int numRowsUsed = numRows;
    int numColsUsed = numCols;
    if (isCompact) {
      numRowsUsed = extractNumRowsUsed(mem);
      numColsUsed = extractNumColumnsUsed(mem);
    }

    final StringBuilder sb = new StringBuilder();
    sb.append(LS)
            .append("### START ")
            .append(family.getFamilyName().toUpperCase())
            .append(" PREAMBLE SUMMARY").append(LS)
            .append("Byte  0: Preamble Longs       : ").append(preLongs).append(LS)
            .append("Byte  1: Serialization Version: ").append(serVer).append(LS)
            .append("Byte  2: Family               : ").append(family.toString()).append(LS)
            .append("Byte  3: Flags Field          : ").append(flagsStr).append(LS)
            //.append("  EMPTY                       : ").append(isEmpty).append(LS)
            .append("  COMPACT                     : ").append(isCompact).append(LS)
            .append("Bytes  8-11: Num Rows         : ").append(numRows).append(LS)
            .append("Bytes 12-15: Num Columns      : ").append(numCols).append(LS);

    if (isCompact) {
      sb.append("Bytes 16-23: Num Rows Used    : ").append(numRowsUsed).append(LS);
      sb.append("Bytes 24-31: Num Columns Used : ").append(numColsUsed).append(LS);
    }

    return sb.toString();
  }