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; }