private static void getHumanReadablePresentation()

in entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityIterableBase.java [635:680]


    private static void getHumanReadablePresentation(StringBuilder presentation, String[] types, int[] pos, String indent) {
        int type = Integer.parseInt(types[pos[0]]);
        pos[0]++;
        if (type < 0 || type >= children.length) {
            throw new RuntimeException("New EntityIterable added: " + type);
        }
        presentation.append(indent).append(EntityIterableType.values()[type].getDescription());
        for (int i = 0; i < fields[type]; i++) {
            presentation.append(' ').append(types[pos[0]]);
            if (type == EntityIterableType.SINGLE_ENTITY.getType() && "null".equals(types[pos[0]])) {
                break;
            }
            pos[0]++;
        }
        StringBuilder tmp = new StringBuilder();
        for (int i = 0; i < children[type]; i++) {
            tmp.append('\n');
            getHumanReadablePresentation(tmp, types, pos, indent + INDENT);
        }
        if (type == EntityIterableType.SELECT_DISTINCT.getType() ||
            type == EntityIterableType.SELECTMANY_DISTINCT.getType() ||
            type == EntityIterableType.SORTING.getType()) {
            presentation.append(' ').append(types[pos[0]]);
            pos[0]++;
        }
        presentation.append(tmp);
        if (type == EntityIterableType.MERGE_SORTED.getType()) {
            int count = Integer.parseInt(types[pos[0]]);
            presentation.append(' ').append(count);
            pos[0]++;
            for (int i = 0; i < count; i++) {
                pos[0]++;
                presentation.append('\n');
                getHumanReadablePresentation(presentation, types, pos, indent + INDENT);
            }
        }
        if (type == EntityIterableType.ENTITY_FROM_LINKS_SET.getType()) {
            int count = Integer.parseInt(types[pos[0]]);
            presentation.append("  ").append(count).append(" links:");
            pos[0]++;
            for (int i = 0; i < count; i++) {
                presentation.append(' ').append(types[pos[0]]);
                pos[0]++;
            }
        }
    }