private Collection<? extends Node> subListFromContainer(RDFBackend<Node> backend, Node node, int start, int end) { List<Node> result = new LinkedList<>(); for (int i = start; i < end; i++) { final Collection<Node> objects = backend.listObjects(node, backend.createURI(RDF + "_" + (i + 1))); if (objects.size() > 0) { result.addAll(objects); } else { break; } } return result; }
private void flattenContainer(RDFBackend<Node> backend, Node node, Collection<Node> result) { for (int i = 1; /* exit via break */; i++) { final Collection<Node> objects = backend.listObjects(node, backend.createURI(RDF + "_" + i)); if (objects.size() > 0) { result.addAll(objects); } else { break; } } }
private void flattenContainer(RDFBackend<Node> backend, Node node, Collection<Node> result) { for (int i = 1; /* exit via break */; i++) { final Collection<Node> objects = backend.listObjects(node, backend.createURI(RDF + "_" + i)); if (objects.size() > 0) { result.addAll(objects); } else { break; } } }
private Collection<? extends Node> subListFromContainer(RDFBackend<Node> backend, Node node, int start, int end) { List<Node> result = new LinkedList<>(); for (int i = start; i < end; i++) { final Collection<Node> objects = backend.listObjects(node, backend.createURI(RDF + "_" + (i + 1))); if (objects.size() > 0) { result.addAll(objects); } else { break; } } return result; }
private Collection<Node> getFromContainer(RDFBackend<Node> backend, Node node, int index) { return backend.listObjects(node, backend.createURI(RDF + "_" + (index + 1))); }
private Collection<Node> getFromContainer(RDFBackend<Node> backend, Node node, int index) { return backend.listObjects(node, backend.createURI(RDF + "_" + (index + 1))); }
private Collection<Node> getFromCollection(RDFBackend<Node> backend, Node node, int index) { if (index < 0 || isNil(backend, node)) { return Collections.emptySet(); } else if (index == 0) { return backend.listObjects(node, backend.createURI(RDF + "first")); } else { HashSet<Node> result = new HashSet<>(); for (Node n : backend.listObjects(node, backend.createURI(RDF + "rest"))) { result.addAll(getFromCollection(backend, n, index - 1)); } return result; } }
private Collection<Node> getFromCollection(RDFBackend<Node> backend, Node node, int index) { if (index < 0 || isNil(backend, node)) { return Collections.emptySet(); } else if (index == 0) { return backend.listObjects(node, backend.createURI(RDF + "first")); } else { HashSet<Node> result = new HashSet<>(); for (Node n : backend.listObjects(node, backend.createURI(RDF + "rest"))) { result.addAll(getFromCollection(backend, n, index - 1)); } return result; } }
private void subListFromCollection(RDFBackend<Node> backend, Node node, int start, int end, List<Node> result) { if (isNil(backend, node)) { return; } if (end > 0) { if (start <= 0) { result.addAll(backend.listObjects(node, backend.createURI(RDF + "first"))); } for (Node n : backend.listObjects(node, backend.createURI(RDF + "rest"))) { subListFromCollection(backend, n, start - 1, end - 1, result); } } }
private void subListFromCollection(RDFBackend<Node> backend, Node node, int start, int end, List<Node> result) { if (isNil(backend, node)) { return; } if (end > 0) { if (start <= 0) { result.addAll(backend.listObjects(node, backend.createURI(RDF + "first"))); } for (Node n : backend.listObjects(node, backend.createURI(RDF + "rest"))) { subListFromCollection(backend, n, start - 1, end - 1, result); } } }
private void flattenCollection(RDFBackend<Node> backend, Node node, Collection<Node> result, Collection<Node> backtrace) { if (isNil(backend, node)) { return; } // Stop if we detect a cycle. if (!backtrace.add(node)) { return; } // Add the (all) firsts result.addAll(backend.listObjects(node, backend.createURI(RDF + "first"))); // Recursively add the rest final Collection<Node> rest = backend.listObjects(node, backend.createURI(RDF + "rest")); for (Node r : rest) { flattenCollection(backend, r, result, backtrace); } }
private void flattenCollection(RDFBackend<Node> backend, Node node, Collection<Node> result, Collection<Node> backtrace) { if (isNil(backend, node)) { return; } // Stop if we detect a cycle. if (!backtrace.add(node)) { return; } // Add the (all) firsts result.addAll(backend.listObjects(node, backend.createURI(RDF + "first"))); // Recursively add the rest final Collection<Node> rest = backend.listObjects(node, backend.createURI(RDF + "rest")); for (Node r : rest) { flattenCollection(backend, r, result, backtrace); } }
@SafeVarargs @Override public final Collection<Node> apply(RDFBackend<Node> backend, Node context, Collection<Node>... args) throws IllegalArgumentException { if (args.length != 3 || args[1].size() != 1 || args[2].size() != 1) { throw new IllegalArgumentException("wrong usage: " + getSignature()); } Collection<Node> nodes = args[0]; String regex = transformer.transform(backend, args[1].iterator().next(), null); String replace = transformer.transform(backend, args[2].iterator().next(), null); try { final Pattern pattern = Pattern.compile(regex); Set<Node> result = new HashSet<>(); for (Node node : nodes) { final String string = backend.stringValue(node); final String replaced = pattern.matcher(string).replaceAll(replace); if (backend.isURI(node)) { result.add(backend.createURI(replaced)); } else if (backend.isLiteral(node)) { final Locale lang = backend.getLiteralLanguage(node); final URI type = backend.getLiteralType(node); result.add(backend.createLiteral(replaced, lang, type)); } } return result; } catch (PatternSyntaxException pex) { throw new IllegalArgumentException("could not parse regex pattern: '" + regex + "'", pex); } catch (IndexOutOfBoundsException iobex) { throw new IllegalArgumentException("invalid replacement string: '" + replace + "'"); } }
source.getId(), backend, program, appendMode); Object context = backend.createURI(source.getId()); Representation result = appendMode ? source : vf.createRepresentation(source.getId());
source.getId(), backend, program, appendMode); Object context = backend.createURI(source.getId()); Representation result = appendMode ? source : vf.createRepresentation(source.getId());