Class FunctionalTerm

java.lang.Object
org.tweetyproject.logics.commons.syntax.TermAdapter<Pair<Functor,List<Term<?>>>>
org.tweetyproject.logics.commons.syntax.FunctionalTerm
All Implemented Interfaces:
LogicStructure, Term<Pair<Functor,List<Term<?>>>>

public class FunctionalTerm extends TermAdapter<Pair<Functor,List<Term<?>>>>
A functional term in a logic language, i.e. a functor and a list of argument terms.
Author:
Matthias Thimm,, Tim Janus
  • Constructor Details

    • FunctionalTerm

      public FunctionalTerm(Functor functor, Term<?>... terms)
    • FunctionalTerm

      public FunctionalTerm(Functor functor, List<Term<?>> arguments)
      Creates a new functional term with the given functor and the given list of arguments.
      Parameters:
      functor - the functor of this term
      arguments - the list of arguments of this functional term
    • FunctionalTerm

      public FunctionalTerm(FunctionalTerm other)
    • FunctionalTerm

      public FunctionalTerm(Functor functor)
      Creates a new functional term with the given functor.
      Parameters:
      functor - a functor
  • Method Details

    • getFunctor

      public Functor getFunctor()
    • getArguments

      public List<Term<?>> getArguments()
    • isComplete

      public boolean isComplete()
      Checks whether this term is complete, i.e. whether every argument is set.
      Returns:
      "true" if the term is complete.
    • addArgument

      public FunctionalTerm addArgument(Term<?> term) throws IllegalArgumentException
      Appends the given argument to this term's arguments and returns itself.
      Parameters:
      term - an argument to be added
      Returns:
      the term itself.
      Throws:
      IllegalArgumentException - if the given term does not correspond to the expected sort or the argument list is complete.
    • getTerms

      public Set<Term<?>> getTerms()
      Specified by:
      getTerms in interface LogicStructure
      Overrides:
      getTerms in class TermAdapter<Pair<Functor,List<Term<?>>>>
      Returns:
      a set containing all terms of this logical structure
    • getTerms

      public <C extends Term<?>> Set<C> getTerms(Class<C> cls)
      Description copied from interface: LogicStructure
      Processes the set containing all terms of type C. This method uses the equals method of the given Class and therefore does not add terms which are sub classes of type C to the set.
      Specified by:
      getTerms in interface LogicStructure
      Overrides:
      getTerms in class TermAdapter<Pair<Functor,List<Term<?>>>>
      Type Parameters:
      C - the type of terms
      Parameters:
      cls - The Class structure containing type information about the searched term
      Returns:
      A set containing all terms of type C of this logical structure
    • substitute

      public Term<?> substitute(Term<?> v, Term<?> t) throws IllegalArgumentException
      Description copied from interface: Term
      Substitutes all occurrences of term "v" in this term by term "t" and returns the new term.
      Specified by:
      substitute in interface Term<Pair<Functor,List<Term<?>>>>
      Overrides:
      substitute in class TermAdapter<Pair<Functor,List<Term<?>>>>
      Parameters:
      v - the term to be substituted.
      t - the term to substitute.
      Returns:
      a term where every occurrence of "v" is replaced by "t".
      Throws:
      IllegalArgumentException - if "v" and "t" are of different sorts (NOTE: this exception is only thrown when "v" actually appears in this formula)
    • toString

      public String toString()
      Overrides:
      toString in class TermAdapter<Pair<Functor,List<Term<?>>>>
    • clone

      public FunctionalTerm clone()
      Description copied from interface: Term
      Creates a deep copy of the term
      Specified by:
      clone in interface Term<Pair<Functor,List<Term<?>>>>
      Specified by:
      clone in class TermAdapter<Pair<Functor,List<Term<?>>>>
      Returns:
      the clone