/** * 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; } }
private GraphNode getRecipe(String templatePath) { Graph rg = recipesGraphProvider.getRecipesGraph(); GraphNode literalNode = new GraphNode(new PlainLiteralImpl(templatePath), rg); Iterator<GraphNode> recipes = literalNode.getSubjectNodes(RECIPES.recipeDomain); if (recipes.hasNext()) { return recipes.next(); } else { return null; } } }
/** * Remove index definitions for the specified RDF type. * * @param rdfType the RDF type */ public void deleteDefinition(UriRef rdfType) { GraphNode node = new GraphNode(rdfType, definitionGraph); Set<GraphNode> toDelete = new HashSet<GraphNode>(); node.readLock().lock(); try { Iterator<GraphNode> iter = node.getSubjectNodes(CRIS.indexedType); while (iter.hasNext()) { toDelete.add(iter.next()); } } finally { node.readLock().unlock(); } node.writeLock().lock(); try { for (GraphNode graphNode : toDelete) { graphNode.deleteNodeContext(); } } finally { node.writeLock().unlock(); } }