/** * This is a recursive function that returns all the nodes in this archetype descriptor. * * @param nodes the node descriptors to process * @param nodes the resultant node array */ private void getAllNodeDescriptors(NodeDescriptor[] nodes, List<NodeDescriptor> result) { Arrays.sort(nodes, new NodeDescriptorIndexComparator()); for (NodeDescriptor node : nodes) { result.add(node); if (node.getNodeDescriptorsAsArray().length > 0) { getAllNodeDescriptors(node.getNodeDescriptorsAsArray(), result); } } }
/** * Return all the {@link NodeDescriptor} for this archetype. This will basically flatten out the * hierarchical node descriptor structure * * @return List<NodeDescriptor> */ public List<NodeDescriptor> getAllNodeDescriptors() { List<NodeDescriptor> nodes = new ArrayList<NodeDescriptor>(); getAllNodeDescriptors(getNodeDescriptorsAsArray(), nodes); return nodes; }