private StringBuilder appendName(StringBuilder res) { if (parent != null) { parent.appendName(res); res.append('.'); } res.append(name); return res; }
private PropertyNode<?>[] makePath(int depth) { if (parent == null) { PropertyNode<?>[] path = new PropertyNode[depth + 1]; path[0] = this; return path; } PropertyNode<?>[] path = parent.makePath(depth + 1); path[path.length - depth - 1] = this; return path; }
void addChild(PropertyNode<?> n) { children.add(n); n.parent = this; }