@Override public String toString(int level) { StringBuilder sb = new StringBuilder(); if (this.definitions == null) { sb.append("struct { }"); // $NON-NLS-1$ } else { if (this.definitions.size() == 0) { sb.append("struct { }"); // $NON-NLS-1$ } else { sb.append("struct {\n"); // $NON-NLS-1$ List<String> keys = this.declaration.getFieldsList(); for (int i = 0; i < keys.size() - 1; ++i) { String key = keys.get(i); Definition def = this.definitions.get(key); sb.append(Definition.getIndentString(level + 1) + key + ": "); // $NON-NLS-1$ sb.append(def.toString(level + 1)); sb.append(",\n"); // $NON-NLS-1$ } sb.append( Definition.getIndentString(level + 1) + keys.get(this.definitions.size() - 1) + ": "); //$NON-NLS-1$ sb.append( this.definitions.get(keys.get(keys.size() - 1)).toString(level + 1) + "\n"); //$NON-NLS-1$ sb.append(Definition.getIndentString(level) + "}"); // $NON-NLS-1$ } } return sb.toString(); }