@Override public ImmutableList<? extends GroundTerm> getArguments() { return (ImmutableList<? extends GroundTerm>)super.getArguments(); }
@Override public OperationPredicate getFunctionSymbol() { return (OperationPredicate) super.getFunctionSymbol(); }
@Override public VariableOrGroundTerm getTerm(int index) { return (VariableOrGroundTerm) super.getTerm(index); }
@Override public int hashCode() { return toString().hashCode(); }
@Override public ImmutableList<? extends GroundTerm> getTerms() { return (ImmutableList<? extends GroundTerm>)super.getTerms(); }
@Override public ImmutableSet<Variable> getVariables() { return getVariableStream() .collect(ImmutableCollectors.toSet()); }
protected ImmutableFunctionalTermImpl(Function functionalTermToClone) { this(functionalTermToClone.getFunctionSymbol(), convertTerms(functionalTermToClone)); }
@Override public int hashCode() { return toString().hashCode(); }
/** * A bit hacky: only for the functional term * that derives from ImmutableFunctionalTermImpl */ @Override public boolean equals(Object other) { if (other instanceof ImmutableFunctionalTerm) { return toString().equals(other.toString()); } else { return false; } }
@Override public ImmutableList<? extends VariableOrGroundTerm> getArguments() { return (ImmutableList<? extends VariableOrGroundTerm>)super.getArguments(); }
@Override public OperationPredicate getFunctionSymbol() { return (OperationPredicate) super.getFunctionSymbol(); }
/** * A bit hacky: only for the functional term * that derives from AbstractFunctionalTermImpl */ @Override public boolean equals(Object other) { if (other instanceof Function) { return toString().equals(other.toString()); } else { return false; } }