/** * Returns a set of <code>GraphNode</code>S which are the first list nodes (meaning * they are not the beginning of a sublist) of the list containing the specified * <code>GraphNode</code> as an element. * * @param element * @return */ public static Set<GraphNode> findContainingListNodes(GraphNode element) { Iterator<GraphNode> partOfaListNodesIter = element.getSubjectNodes(RDF.first); if (!partOfaListNodesIter.hasNext()) { return null; } Set<GraphNode> listNodes = new HashSet<GraphNode>(); while (partOfaListNodesIter.hasNext()) { listNodes.addAll(findAllListNodes(partOfaListNodesIter.next())); } return listNodes; }
/** * Returns a set of <code>GraphNode</code>S which are the first list nodes (meaning * they are not the beginning of a sublist) of the list containing the specified * <code>GraphNode</code> as an element. * * @param element * @return */ public static Set<GraphNode> findContainingListNodes(GraphNode element) { Iterator<GraphNode> partOfaListNodesIter = element.getSubjectNodes(RDF.first); if (!partOfaListNodesIter.hasNext()) { return null; } Set<GraphNode> listNodes = new HashSet<GraphNode>(); while (partOfaListNodesIter.hasNext()) { listNodes.addAll(findAllListNodes(partOfaListNodesIter.next())); } return listNodes; }
private static Set<GraphNode> findAllListNodes(GraphNode listPart) { Iterator<GraphNode> invRestNodesIter; Set<GraphNode> listNodes = new HashSet<GraphNode>(); do { invRestNodesIter = listPart.getSubjectNodes(RDF.rest); if (invRestNodesIter.hasNext()) { listPart = invRestNodesIter.next(); while (invRestNodesIter.hasNext()) { GraphNode graphNode = invRestNodesIter.next(); listNodes.addAll(findAllListNodes(graphNode)); } } else { listNodes.add(listPart); break; } } while (true); return listNodes; } }
private static Set<GraphNode> findAllListNodes(GraphNode listPart) { Iterator<GraphNode> invRestNodesIter; Set<GraphNode> listNodes = new HashSet<GraphNode>(); do { invRestNodesIter = listPart.getSubjectNodes(RDF.rest); if (invRestNodesIter.hasNext()) { listPart = invRestNodesIter.next(); while (invRestNodesIter.hasNext()) { GraphNode graphNode = invRestNodesIter.next(); listNodes.addAll(findAllListNodes(graphNode)); } } else { listNodes.add(listPart); break; } } while (true); return listNodes; } }