package org.aksw.jena_sparql_api.concept.builder.api; import java.util.List; import java.util.Set; import org.apache.jena.graph.Node; import org.apache.jena.rdf.model.Resource; import org.apache.jena.sparql.core.Var; import org.apache.jena.sparql.expr.Expr; public interface NodeBuilder { NodeBuilder getParent(); //TreeBuilder out(Path path); TreeBuilder out(Node node); //TreeBuilder in(Path path); TreeBuilder in(Node node); // ref //TreeBuilder attachOut(QueryBuilder queryBuilder); Set<Expr> getExprs(); NodeBuilder addExpr(Expr expr); // add an expression over this sub-tree // set an alias for this node NodeBuilder as(Var var); /** * List all node builders having the same alias as this one * @return */ List<NodeBuilder> getOverlaps(); default NodeBuilder getRoot() { NodeBuilder parent = getParent(); NodeBuilder result = parent == null ? this : parent.getParent(); return result; } default TreeBuilder out(Resource r) { return out(r.asNode()); } default TreeBuilder in(Resource r) { return in(r.asNode()); } }