default String debugDump(int indent, IdentityHashMap<Definition,Object> seen) { return debugDump(indent); }
@Override public String debugDump(int indent) { IdentityHashMap<Definition, Object> seen = new IdentityHashMap<>(); StringBuilder sb = new StringBuilder(); for (int i=0;i<indent;i++) { sb.append(INDENT_STRING); } sb.append(toString()).append("\n"); Iterator<Definition> i = definitions.iterator(); while (i.hasNext()) { Definition def = i.next(); sb.append(def.debugDump(indent+1, seen)); if (i.hasNext()) { sb.append("\n"); } } return sb.toString(); }
@Override public String debugDump(int indent, IdentityHashMap<Definition, Object> seen) { StringBuilder sb = new StringBuilder(); DebugUtil.indentDebugDump(sb, indent); sb.append(toString()); if (isRuntimeSchema()) { sb.append(" dynamic"); } if (seen.containsKey(this) || complexTypeDefinition != null && seen.containsKey(complexTypeDefinition)) { sb.append(" (already shown)"); } else { seen.put(this, null); if (complexTypeDefinition != null) { seen.put(complexTypeDefinition, null); } for (Definition def : getDefinitions()) { sb.append("\n"); sb.append(def.debugDump(indent + 1, seen)); } } return sb.toString(); }
@Override public String debugDump(int indent) { StringBuilder sb = new StringBuilder(); for (int i=0; i<indent; i++) { sb.append(DebugDumpable.INDENT_STRING); } sb.append(toString()); for (Definition def : getDefinitions()) { sb.append("\n"); if (def instanceof ResourceAttributeDefinition) { ResourceAttributeDefinition attrDef = (ResourceAttributeDefinition)def; sb.append(attrDef.debugDump(indent+1)); if (attrDef.isPrimaryIdentifier(this)) { sb.deleteCharAt(sb.length()-1); sb.append(" id"); } } else { sb.append(def.debugDump(indent+1)); } } return sb.toString(); }