@Override public ImmutableExpression getImmutableExpression(OperationPredicate functor, ImmutableList<? extends ImmutableTerm> arguments) { if (GroundTermTools.areGroundTerms(arguments)) { return new GroundExpressionImpl(functor, (ImmutableList<GroundTerm>)arguments); } else { return new NonGroundExpressionImpl(functor, arguments); } }
@Override public ImmutableFunctionalTerm getImmutableFunctionalTerm(Function functionalTerm) { if (GroundTermTools.isGroundTerm(functionalTerm)) { return new GroundFunctionalTermImpl(functionalTerm); } else { return new NonGroundFunctionalTermImpl(functionalTerm); } }
@Override public ImmutableExpression getImmutableExpression(Expression expression) { if (GroundTermTools.isGroundTerm(expression)) { return new GroundExpressionImpl(expression); } else { return new NonGroundExpressionImpl(expression); } }
@Override public ImmutableExpression getImmutableExpression(Expression expression) { if (GroundTermTools.isGroundTerm(expression)) { return new GroundExpressionImpl(expression.getFunctionSymbol(), (ImmutableList<? extends GroundTerm>)(ImmutableList<?>)convertTerms(expression)); } else { return new NonGroundExpressionImpl(expression.getFunctionSymbol(), convertTerms(expression)); } }
@Override public ImmutableFunctionalTerm getImmutableFunctionalTerm(Predicate functor, ImmutableList<ImmutableTerm> terms) { if (functor instanceof OperationPredicate) { return getImmutableExpression((OperationPredicate)functor, terms); } if (GroundTermTools.areGroundTerms(terms)) { return new GroundFunctionalTermImpl(functor, terms); } else { // Default constructor return new NonGroundFunctionalTermImpl(functor, terms); } }
@Override public Function getFunction(Predicate functor, List<Term> arguments) { if (isTestModeEnabled) { checkMutability(arguments); } if (functor instanceof OperationPredicate) { return getExpression((OperationPredicate) functor, arguments); } // Default constructor return new FunctionalTermImpl(functor, arguments); }
public static GroundTerm castIntoGroundTerm(Term term) throws NonGroundTermException{ if (term instanceof GroundTerm) return (GroundTerm) term; if (term instanceof Function) { Function functionalTerm = (Function) term; // Recursive return new GroundFunctionalTermImpl(functionalTerm.getFunctionSymbol(), castIntoGroundTerms(functionalTerm.getTerms())); } throw new NonGroundTermException(term + " is not a ground term"); }
@Override public void setPredicate(Predicate predicate) { super.setPredicate(predicate); listChanged(); }
@Override public Function getFunction(Predicate functor, List<Term> arguments) { if (functor instanceof OperationPredicate) { return getExpression((OperationPredicate) functor, arguments); } // Default constructor return new FunctionalTermImpl(functor, arguments); }
@Override public Function getBNodeTemplate(Term... terms) { Predicate pred = new BNodePredicateImpl(terms.length); return getFunction(pred, terms); }
@Override public ImmutableFunctionalTerm getImmutableBNodeTemplate(ImmutableTerm... terms) { FunctionSymbol pred = new BNodePredicateImpl(terms.length, typeFactory); return getImmutableFunctionalTerm(pred, terms); }
@Override public Expression getExpression(OperationPredicate functor, List<Term> arguments) { if (isTestModeEnabled) { checkMutability(arguments); } return new ExpressionImpl(functor, arguments); }
@Override public Function getUriTemplate(Term... terms) { Predicate uriPred = new URITemplatePredicateImpl(terms.length); return getFunction(uriPred, terms); }
@Override public ImmutableFunctionalTerm getImmutableUriTemplate(ImmutableTerm... terms) { Predicate pred = new URITemplatePredicateImpl(terms.length); return getImmutableFunctionalTerm(pred, terms); }
@Override public ImmutableFunctionalTerm getImmutableFunctionalTerm(FunctionSymbol functor, ImmutableList<? extends ImmutableTerm> terms) { if (functor instanceof OperationPredicate) { return getImmutableExpression((OperationPredicate)functor, terms); } if (GroundTermTools.areGroundTerms(terms)) { return new GroundFunctionalTermImpl((ImmutableList<? extends GroundTerm>)terms, functor); } else { // Default constructor return new NonGroundFunctionalTermImpl(functor, terms); } }
@Override public ImmutableExpression getImmutableExpression(OperationPredicate functor, ImmutableList<? extends ImmutableTerm> arguments) { if (GroundTermTools.areGroundTerms(arguments)) { return new GroundExpressionImpl(functor, (ImmutableList<GroundTerm>)arguments); } else { return new NonGroundExpressionImpl(functor, arguments); } }
@Override public void setPredicate(Predicate predicate) { super.setPredicate(predicate); listChanged(); }
@Override public Function getFunction(Predicate functor, Term... arguments) { if (functor instanceof OperationPredicate) { return getExpression((OperationPredicate)functor, arguments); } // Default constructor return new FunctionalTermImpl(functor, arguments); }
@Override public Function getBNodeTemplate(Term... terms) { FunctionSymbol pred = new BNodePredicateImpl(terms.length, typeFactory); return getFunction(pred, terms); }
@Override public ImmutableFunctionalTerm getImmutableBNodeTemplate(ImmutableTerm... terms) { Predicate pred = new BNodePredicateImpl(terms.length); return getImmutableFunctionalTerm(pred, terms); }