## jpl
Class Term

    java.lang.Object
      jpl.Term

Direct Known Subclasses:
  Compound, Float, Integer, JBoolean, JRef, JVoid, Variable

public abstract class Term
extends java.lang.Object

Term is the abstract base class for Compound, Atom, Variable, Integer and Float, which comprise a Java-oriented concrete syntax for Prolog. You cannot create instances of Term directly; rather, you should create instances of Term's concrete subclasses. Alternatively, use textToTerm() to construct a Term from its conventional Prolog source text representation.

Copyright (C) 2004 Paul Singleton

Copyright (C) 1998 Fred Dushin

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library Public License for more details.

Version:
  $Revision: 1.2 $

Method Summary
`Term` `arg(int ano)` returns the ano-th (1+) argument of a (Compound) Term throws a JPLException for any other subclass
`abstract Term[]` `args()` Deprecated.
`int` `arity()` returns, as an int, the arity of a Compound, Atom, Integer or Float throws a JPLException from a Variable
`abstract java.lang.String` `debugString()` Deprecated.
`static java.lang.String` `debugString(Term[] arg)` Deprecated.
`double` `doubleValue()` returns the value (as a double) of an Integer or Float throws a JPLException from any other subclass
`float` `floatValue()` returns the value (as a float) of an Integer or Float throws a JPLException from a Compound, Atom or Variable
`boolean` `hasFunctor(double value, int arity)` Tests whether this Term's functor has (double) 'name' and 'arity' Returns false if called inappropriately
`boolean` `hasFunctor(int value, int arity)` Tests whether this Term's functor has (int) 'name' and 'arity' Returns false if called inappropriately
`boolean` `hasFunctor(java.lang.String name, int arity)` Tests whether this Term's functor has (String) 'name' and 'arity' Returns false if called inappropriately
`int` `intValue()` returns the value (as an int) of an Integer or Float throws a JPLException from a Compound, Atom or Variable
`boolean` `isAtom()` whether this Term represents an atom
`boolean` `isCompound()` whether this Term represents a compound term
`boolean` `isFloat()` whether this Term represents an atom
`boolean` `isInteger()` whether this Term represents an atom
`boolean` `isJBoolean()` whether this Term is a JBoolean
`boolean` `isJRef()` whether this Term is a JRef
`boolean` `isJVoid()` whether this Term is a JVoid
`boolean` `isVariable()` whether this Term is a variable
`int` `listLength()` the length of this list, iff it is one, else an exception is thrown
`long` `longValue()` returns the value (as a long) of an Integer or Float throws a JPLException from a Compound, Atom or Variable
`java.lang.String` `name()` returns, as a String, the name of a Compound, Atom or Variable throws a JPLException from an Integer or Float
`Term` `putParams(Term plist)`
`Term` `putParams(Term[] ps)`
`static java.lang.String` `toString(Term[] args)` Converts a list of Terms to a String.
`Term[]` `toTermArray()` returns an array of terms which are the successive members of this list, if it is a list, else throws an exception
`abstract int` `type()` returns the type of this term, as one of jpl.fli.Prolog.COMPOUND, .ATOM, .VARIABLE, .INTEGER, .FLOAT etc
`abstract java.lang.String` `typeName()` returns the name of the type of this term, as one of "Compound", "Atom", "Variable", "Integer", "Float" etc

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### arg

    public Term arg(int ano)

  returns the ano-th (1+) argument of a (Compound) Term throws a JPLException for any other subclass

  Returns:
    the ano-th argument of a (Compound) Term

### hasFunctor

    public boolean hasFunctor(java.lang.String name,
                              int arity)

  Tests whether this Term's functor has (String) 'name' and 'arity' Returns false if called inappropriately

  Returns:
    whether this Term's functor has (String) 'name' and 'arity'

### hasFunctor

    public boolean hasFunctor(int value,
                              int arity)

  Tests whether this Term's functor has (int) 'name' and 'arity' Returns false if called inappropriately

  Returns:
    whether this Term's functor has (int) 'name' and 'arity'

### hasFunctor

    public boolean hasFunctor(double value,
                              int arity)

  Tests whether this Term's functor has (double) 'name' and 'arity' Returns false if called inappropriately

  Returns:
    whether this Term's functor has (double) 'name' and 'arity'

### name

    public java.lang.String name()

  returns, as a String, the name of a Compound, Atom or Variable throws a JPLException from an Integer or Float

  Returns:
    the name of a Compound, Atom or Variable

### arity

    public int arity()

  returns, as an int, the arity of a Compound, Atom, Integer or Float throws a JPLException from a Variable

  Returns:
    the arity of a Compound, Atom, Integer or Float

### intValue

    public int intValue()

  returns the value (as an int) of an Integer or Float throws a JPLException from a Compound, Atom or Variable

  Returns:
    the value (as an int) of an Integer or Float

### longValue

    public long longValue()

  returns the value (as a long) of an Integer or Float throws a JPLException from a Compound, Atom or Variable

  Returns:
    the value (as a long) of an Integer or Float

### floatValue

    public float floatValue()

  returns the value (as a float) of an Integer or Float throws a JPLException from a Compound, Atom or Variable

  Returns:
    the value (as a float) of an Integer or Float

### doubleValue

    public double doubleValue()

  returns the value (as a double) of an Integer or Float throws a JPLException from any other subclass

  Returns:
    the value (as an double) of an Integer or Float

### type

    public abstract int type()

  returns the type of this term, as one of jpl.fli.Prolog.COMPOUND, .ATOM, .VARIABLE, .INTEGER, .FLOAT etc

  Returns:
    the type of this term, as one of jpl.fli.Prolog.COMPOUND, .ATOM, .VARIABLE, .INTEGER, .FLOAT etc

### typeName

    public abstract java.lang.String typeName()

  returns the name of the type of this term, as one of "Compound", "Atom", "Variable", "Integer", "Float" etc

  Returns:
    the name of the type of this term, as one of "Compound", "Atom", "Variable", "Integer", "Float" etc

### isAtom

    public boolean isAtom()

  whether this Term represents an atom

  Returns:
    whether this Term represents an atom

### isCompound

    public boolean isCompound()

  whether this Term represents a compound term

  Returns:
    whether this Term represents a compound atom

### isFloat

    public boolean isFloat()

  whether this Term represents an atom

  Returns:
    whether this Term represents an atom

### isInteger

    public boolean isInteger()

  whether this Term represents an atom

  Returns:
    whether this Term represents an atom

### isJBoolean

    public boolean isJBoolean()

  whether this Term is a JBoolean

  Returns:
    whether this Term is a JBoolean

### isJRef

    public boolean isJRef()

  whether this Term is a JRef

  Returns:
    whether this Term is a JRef

### isJVoid

    public boolean isJVoid()

  whether this Term is a JVoid

  Returns:
    whether this Term is a JVoid

### isVariable

    public boolean isVariable()

  whether this Term is a variable

  Returns:
    whether this Term is a variable

### putParams

    public Term putParams(Term[] ps)

### putParams

    public Term putParams(Term plist)

### listLength

    public int listLength()

  the length of this list, iff it is one, else an exception is thrown

  Returns:
    the length (as an int) of this list, iff it is one
  Throws:
    `JPLException`

### toTermArray

    public Term[] toTermArray()

  returns an array of terms which are the successive members of this list, if it is a list, else throws an exception

  Returns:
    an array of terms which are the successive members of this list, if it is a list
  Throws:
    `JPLException`

### args

    public abstract Term[] args()

  Deprecated.

  returns, as a Term[], the arguments of a Compound returns an empty Term[] from an Atom, Integer or Float throws a JPLException from a Variable

  Returns:
    the arguments of a Compound as a Term[

### debugString

    public abstract java.lang.String debugString()

  Deprecated.

  Returns a debug-friendly representation of a Term

  Returns:
    a debug-friendly representation of a Term

### debugString

    public static java.lang.String debugString(Term[] arg)

  Deprecated.

  Returns a debug-friendly representation of a list of Terms

  Returns:
    a debug-friendly representation of a list of Terms

### toString

    public static java.lang.String toString(Term[] args)

  Converts a list of Terms to a String.

  Parameters:
    `args` - An array of Terms to convert
  Returns:
    String representation of a list of Terms