Class Structure

java.lang.Object
All Implemented Interfaces:
LogicalFormula, Term, ToDOM, ToJson, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Term>
Direct Known Subclasses:
ArithFunctionTerm, BinaryStructure, InternalActionLiteral, ListTermImpl, Plan, PlanBodyImpl, Pred, Trigger

public class Structure
extends Atom
Represents a structure: a functor with n arguments, e.g.: val(10,x(3)).
See Also:
Serialized Form
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
      Constant Field Values
    • logger

      private static java.util.logging.Logger logger
    • emptyTermList

      protected static final java.util.List<Term> emptyTermList
    • emptyTermArray

      protected static final Term[] emptyTermArray
    • terms

      private java.util.List<Term> terms
    • useShortUnnamedVars

      private static final boolean useShortUnnamedVars
  • Constructor Details

    • Structure

      public Structure​(java.lang.String functor)
    • Structure

      public Structure​(Literal l)
    • Structure

      public Structure​(Atom namespace, java.lang.String functor)
    • Structure

      public Structure​(Atom namespace, Literal l)
    • Structure

      protected Structure​(Literal l, Unifier u)
    • Structure

      public Structure​(java.lang.String functor, int termsSize)
      Create a structure with a defined number of terms. It is used by list term, plan body, ... to not create the array list for terms.
  • Method Details

    • parse

      public static Structure parse​(java.lang.String sTerm)
    • calcHashCode

      protected int calcHashCode()
      Overrides:
      calcHashCode in class Atom
    • equals

      public boolean equals​(java.lang.Object t)
      Specified by:
      equals in interface Term
      Overrides:
      equals in class Atom
    • subsumes

      public boolean subsumes​(Term t)
      Specified by:
      subsumes in interface Term
      Overrides:
      subsumes in class DefaultTerm
    • capply

      public Term capply​(Unifier u)
      Description copied from interface: Term
      clone and applies together (and faster than clone and then apply)
      Specified by:
      capply in interface Term
      Overrides:
      capply in class Atom
    • clone

      public Term clone()
      make a deep copy of the terms
      Specified by:
      clone in interface Term
      Overrides:
      clone in class Atom
    • cloneNS

      public Literal cloneNS​(Atom newnamespace)
      Description copied from interface: Term
      clone in another namespace
      Specified by:
      cloneNS in interface Term
      Overrides:
      cloneNS in class Atom
    • addTerm

      public void addTerm​(Term t)
      Overrides:
      addTerm in class Literal
    • delTerm

      public void delTerm​(int index)
      Overrides:
      delTerm in class Literal
    • addTerms

      public Literal addTerms​(Term... ts)
      Description copied from class: Literal
      adds some terms and return this
      Overrides:
      addTerms in class Literal
    • addTerms

      public Literal addTerms​(java.util.List<Term> l)
      Description copied from class: Literal
      adds some terms and return this
      Overrides:
      addTerms in class Literal
    • setTerms

      public Literal setTerms​(java.util.List<Term> l)
      Description copied from class: Literal
      set all terms of the literal and return this
      Overrides:
      setTerms in class Literal
    • setTerm

      public void setTerm​(int i, Term t)
      Overrides:
      setTerm in class Literal
    • getTerm

      public Term getTerm​(int i)
      Description copied from class: Literal
      returns the i-th term (first term is 0)
      Overrides:
      getTerm in class Literal
    • getArity

      public int getArity()
      Description copied from class: Literal
      returns the number of terms of this literal
      Overrides:
      getArity in class Literal
    • getTermsSize

      @Deprecated public int getTermsSize()
      Deprecated.
      use getArity
    • getTerms

      public java.util.List<Term> getTerms()
      Description copied from class: Literal
      returns all terms of this literal
      Overrides:
      getTerms in class Literal
    • hasTerm

      public boolean hasTerm()
      Description copied from class: Literal
      returns true if this literal has some term
      Overrides:
      hasTerm in class Literal
    • isStructure

      public boolean isStructure()
      Specified by:
      isStructure in interface Term
      Overrides:
      isStructure in class DefaultTerm
    • isAtom

      public boolean isAtom()
      Specified by:
      isAtom in interface Term
      Overrides:
      isAtom in class Atom
    • isGround

      public boolean isGround()
      Specified by:
      isGround in interface Term
      Overrides:
      isGround in class DefaultTerm
    • isUnary

      public boolean isUnary()
    • makeVarsAnnon

      public Literal makeVarsAnnon()
      Description copied from class: Literal
      replaces all variables by unnamed variables (_).
      Overrides:
      makeVarsAnnon in class Literal
    • makeVarsAnnon

      public Literal makeVarsAnnon​(Unifier un)
      Description copied from class: Literal
      replaces all variables of the term for unnamed variables (_).
      Overrides:
      makeVarsAnnon in class Literal
      Parameters:
      un - is the unifier that contains the map of replacements
    • varToReplace

      public VarTerm varToReplace​(Term t, Unifier un)
    • makeTermsAnnon

      public void makeTermsAnnon()
      Description copied from class: Literal
      replaces all terms by unnamed variables (_).
      Overrides:
      makeTermsAnnon in class Literal
    • hasVar

      public boolean hasVar​(VarTerm t, Unifier u)
      Specified by:
      hasVar in interface Term
      Overrides:
      hasVar in class DefaultTerm
    • getSingletonVars

      public java.util.List<VarTerm> getSingletonVars()
      Description copied from class: Literal
      returns all singleton vars (that appears once) in this literal
      Overrides:
      getSingletonVars in class Literal
    • countVars

      public void countVars​(java.util.Map<VarTerm,​java.lang.Integer> c)
      Specified by:
      countVars in interface Term
      Overrides:
      countVars in class DefaultTerm
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class Atom
    • getAsDOM

      public org.w3c.dom.Element getAsDOM​(org.w3c.dom.Document document)
      get as XML
      Specified by:
      getAsDOM in interface ToDOM
      Overrides:
      getAsDOM in class Atom