All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class JavaAgent.resource.fopl.VarTerm

java.lang.Object
   |
   +----JavaAgent.resource.fopl.Term
           |
           +----JavaAgent.resource.fopl.VarTerm

public class VarTerm
extends Term
This kind of Term represents a symbolic Variable (as opposed to a Java variable). Variables again can be mapped to other Terms by a Substitution. Note that several differnent VarTerms can share a Variable.

See Also:
Substitution, Variable

Constructor Index

 o VarTerm(String)
This constructor takes a String that is interpreted as the name of a Variable.
 o VarTerm(Variable)
This constructor just takes a Variable that is this Term.

Method Index

 o clone()
Cloning a VarTerm returns a new VarTerm with the same Variable.
 o clone(Substitution)
Cloning a VarTerm with a given Substitution returns a new Term which is determined by the given Substitution.
 o clone(Substitution, Term, Term)
Cloning a VarTerm with a given Substitution and Term replacements returns a new Term which is either an instantiation of the Variable under the given Substitution or an instance of the replacement Term.
 o contains(Vector, Substitution, Vector)
Like contains(Vector, Substitution), this function tests whether one of the variables in the first given Vector occurs in this VarTerm taking the given Substitution into account.
 o equals(Object)
A VarTerm is equal to any other VarTermthat holds the same Variable.
 o getVar()
This function can be used to extract the Variable contained in this VarTerm.
 o getVars(Vector)
This function adds the Variable in this VarTerm to the given Vector.
 o toString()
A VarTerm is printed as the Variable it holds.
 o unify(Term, Substitution)
This function attempts to extend the given Substitution so that this Term and the given Term are unified.

Constructors

 o VarTerm
 public VarTerm(Variable aVar) throws IllegalArgumentException
This constructor just takes a Variable that is this Term. Note that several VarTerms may share a Variable, but other VarTerms might contain a different Variable with the same name.

Parameters:
aVar - the Variable that is this Term
Throws: IllegalArgumentException
An exception will occur if the given Variable is null.
 o VarTerm
 public VarTerm(String aName) throws IllegalArgumentException
This constructor takes a String that is interpreted as the name of a Variable. This constructor will not check whether the given name is a legal Variable name (e.g. does not contain spaces). It it uses the static function get of the class Variable to get the Variable in this VarTerm.

Parameters:
aName - the name of the Variable that is this Term
Throws: IllegalArgumentException
An exception will occur if the supplied String is empty or null.

Methods

 o clone
 public Object clone()
Cloning a VarTerm returns a new VarTerm with the same Variable. Use clone(Substitution) with an appropriate Substitution to to get a copy with VarTerms replaced by other Terms.

Returns:
a VarTerm containing the same Variable as this one
Overrides:
clone in class Term
 o clone
 public Term clone(Substitution s) throws IllegalArgumentException
Cloning a VarTerm with a given Substitution returns a new Term which is determined by the given Substitution. Thus, the returned Term is not necessarily a VarTerm. The function getValue(Variable) of the Substitution class is used to generate the returned Term. A Variable not occurring in the Substitution will be replaced by a new (different) Variable with the same name. The given Susbtitution will be extended to include the mappings of old Variables to new ones.

To generate a new VarTerm with a new Variable with the same name as this one (unlike clone()) this function can be called with an empty Substitution.

Parameters:
s - the Substitution that tells us how to replace Variables
Returns:
a new Term that is an instance of this Term; the Substitution s will extended with any new Variable replacements introduced
Throws: IllegalArgumentException
An exception can occur if the given Substitution is null. In this case clone() (above) should be used.
Overrides:
clone in class Term
 o clone
 protected Term clone(Substitution s,
                      Term t,
                      Term rTerm) throws IllegalArgumentException
Cloning a VarTerm with a given Substitution and Term replacements returns a new Term which is either an instantiation of the Variable under the given Substitution or an instance of the replacement Term. If this Term is the first given Term the result will be an instance of the second given Term. Otherwise the function getValue(Variable) of the Substitution class is used to generate the returned Term. A Variable not occurring in the Substitution will be replaced by a new (different) Variable with the same name. The given Susbtitution will be extended to include the mappings of old Variables to new ones.

Parameters:
s - the Substitution that tells us how to replace Variables
t - the sub-Term to be replaced
rTerm - the (uninstantiated) replacement Term
Returns:
a new Term that is, apart from the replaced Term, an instance of this Term; the Substitution s will extended with any new Variable replacements introduced
Throws: IllegalArgumentException
An exception can occur if the given Substitution is null.
Overrides:
clone in class Term
 o getVars
 public void getVars(Vector vars) throws IllegalArgumentException
This function adds the Variable in this VarTerm to the given Vector. If the Variable in this VarTerm is already in the Vector nothing is added.

Parameters:
vars - a Vector of Variables that will be extended
Throws: IllegalArgumentException
An exception can occur if the given Vector is null.
Overrides:
getVars in class Term
 o unify
 public boolean unify(Term other,
                      Substitution s) throws IllegalArgumentException, UnificationException
This function attempts to extend the given Substitution so that this Term and the given Term are unified. It returns true if and only if this is possible. A VarTerm can in principle be unified with any other kind of Term. Whether this succeeds depends entirely on whether the given Substitution can be extended accordingly.

Parameters:
other - the other Term this VarTerm is to be unified with
s - the Substitution to be extended for the unification
Returns:
whether a unifying extension of the given Substitution was possible
Throws: IllegalArgumentException
An exception will occur if the given Term or the given Substitution are null.
Throws: UnificationException
An exception will occur if the given Substitution was already finshed.
Overrides:
unify in class Term
 o contains
 protected boolean contains(Vector theVars,
                            Substitution s,
                            Vector okVars)
Like contains(Vector, Substitution), this function tests whether one of the variables in the first given Vector occurs in this VarTerm taking the given Substitution into account. Normally, the public version of contains (in class Term) should be used. The difference is the third argument which must be a Vector of Variables that have already been tested for occurance, i.e. if the Variable in this VarTerm is in the latter Vector it has been tested before.

Parameters:
theVars - the Variables to be tested whether they occur in this Term
s - the Substitution under which the test takes place
okVars - some Variables in this Term that have already been tested
Returns:
true if and only if a Variable in the given Vector is contained in this Term under the given Substitution
Overrides:
contains in class Term
 o toString
 public String toString()
A VarTerm is printed as the Variable it holds. Note that this can be changed in the class Variable.

Returns:
the String that represents the contained Variable
Overrides:
toString in class Object
 o equals
 public boolean equals(Object otherTerm)
A VarTerm is equal to any other VarTermthat holds the same Variable. It never equals ConstTerm or any other kind of Term.

Parameters:
otherTerm - the Object this Term is compared to
Returns:
whether the given Object equals this VarTerm
Overrides:
equals in class Term
 o getVar
 public Variable getVar()
This function can be used to extract the Variable contained in this VarTerm.

Returns:
the Variable contained in this VarTerm

All Packages  Class Hierarchy  This Package  Previous  Next  Index