package org.aksw.jena_sparql_api.concept.builder.impl; import org.aksw.jena_sparql_api.concept.builder.api.ConceptBuilder; import org.aksw.jena_sparql_api.concept.builder.api.RestrictionBuilder; import org.aksw.jena_sparql_api.concept.builder.api.RestrictionExpr; import org.aksw.jena_sparql_api.concept.builder.api.RestrictionExprQuantor; import org.apache.jena.graph.Node; import org.apache.jena.sparql.core.Var; public class RestrictionBuilderImpl implements RestrictionBuilder { protected ConceptBuilderImpl parent; protected Node on = null; //protected Set<> protected Var alias; // In the future we could allow a sets of aliases protected ConceptBuilder conceptBuilder; public RestrictionBuilderImpl(ConceptBuilderImpl parent) { this.parent = parent; } @Override public RestrictionBuilderImpl on(Node node) { this.on = node; return this; } @Override public ConceptBuilder forAll() { ConceptBuilder result = new ConceptBuilderImpl(this); return result; } @Override public ConceptBuilder exists() { ConceptBuilder result = new ConceptBuilderImpl(this); return result; } @Override public RestrictionBuilder as(Var var) { this.alias = var; return this; } /** * Remove this restriction from its owning concept. * Returns the parent concept * */ @Override public ConceptBuilder destroy() { if(on != null) { parent.nodeToRestrictionBuilder.remove(on, this); this.parent = null; } return parent; } @Override public ConceptBuilder getParent() { return parent; } @Override public RestrictionExpr get() { // TODO Auto-generated method stub return null; } @Override public RestrictionExprQuantor build() { // TODO Auto-generated method stub return null; } }