@Override public String toString() { final StringBuilder builder = new StringBuilder(); final boolean labeling = nodeSpecification.size() > 1; for (final Node node : this) { //append all values for each node and label them if necessary for (int k = 0; k < nodeSpecification.size(); k++) { if (labeling) { builder.append(nodeSpecification.getKeyword(k)); builder.append("#"); } final Value value = node.getValue(k); if (value != null) { builder.append(value.toString()); } if (labeling) { builder.append(";"); } } if (labeling) { builder.delete(builder.length() - 1, builder.length()); } builder.append("|"); } if (builder.length() > 0) { builder.delete(builder.length() - 1, builder.length()); } return builder.toString(); }