public void prettyPrint(PrintStream out) {
        out.println("Package name: " + getPackageName());
        out.println("     Version: " + getPackageVersion());
        final String flagsAsHex = Long.toHexString(getFlags() & 0xffffffffL);
        out.println("       Flags: 0x" + flagsAsHex);
        out.println("     Overlay: "
                + (isOverlay() ? "true" : "false"));
        out.println("      Salted: "
                + (isSalted() ? "true" : "false"));
        out.print("        Salt: ");
        final byte[] salt = getSalt();
        for (int index = 0; index < salt.length; index++) {
            final String hexString = Integer.toHexString(salt[index] & 0xff);
            // hexString.length() returns 1 or 2
            if (hexString.length() == 1) {
                out.print('0');
            }
            out.print(hexString);
        }
        out.println();
    }