jpl
Class Variable

java.lang.Object
  extended by jpl.Term
      extended by jpl.Variable

public class Variable
extends Term

This class supports Java representations of Prolog variables.

A jpl.Variable instance is equivalent to a variable in a fragment of Prolog source text: it is *not* a "live" variable within a Prolog stack or heap. A corresponding Prolog variable is created only upon opening a Query whose goal refers to a Variable (and then only temporarily).


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.



Field Summary
 java.lang.String name
           
 
Constructor Summary
Variable()
          Create a new Variable with new sequential name of the form "_261".
Variable(java.lang.String name)
          Create a new Variable with 'name' (which must not be null or ""), and may one day be constrained to comply with traditional Prolog syntax.
 
Method Summary
 Term arg(int i)
          throws a JPLException (arg(int) is defined only for Compound and Atom)
 Term[] args()
          The (nonexistent) args of this Variable
 java.lang.String debugString()
          Deprecated.  
 boolean equals(java.lang.Object obj)
          A Variable is equal to another if their names are the same and they are not anonymous.
 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
 java.lang.Object jrefToObject()
           
 java.lang.String name()
          returns the lexical name of this Variable
 java.lang.String toString()
          Returns a Prolog source text representation of this Variable
 int type()
          returns the type of this subclass of Term, i.e.
 java.lang.String typeName()
          returns the typeName of this subclass of Term, i.e.
 
Methods inherited from class jpl.Term
arity, debugString, doubleValue, floatValue, intValue, isAtom, isCompound, isFloat, isInteger, isJFalse, isJNull, isJObject, isJRef, isJTrue, isJVoid, isVariable, listLength, longValue, objectToJRef, put, putParams, putParams, putTerm, toString, toTermArray
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

public final java.lang.String name
Constructor Detail

Variable

public Variable(java.lang.String name)
Create a new Variable with 'name' (which must not be null or ""), and may one day be constrained to comply with traditional Prolog syntax.

Parameters:
name - the source name of this Variable

Variable

public Variable()
Create a new Variable with new sequential name of the form "_261".

Method Detail

args

public Term[] args()
The (nonexistent) args of this Variable

Specified by:
args in class Term
Returns:
the (nonexistent) args of this Variable (never)
Throws:
JPLException

hasFunctor

public boolean hasFunctor(java.lang.String name,
                          int arity)
Description copied from class: Term
Tests whether this Term's functor has (String) 'name' and 'arity' Returns false if called inappropriately

Specified by:
hasFunctor in class Term
Returns:
whether this Term's functor has (String) 'name' and 'arity'

hasFunctor

public boolean hasFunctor(int value,
                          int arity)
Description copied from class: Term
Tests whether this Term's functor has (int) 'name' and 'arity' Returns false if called inappropriately

Specified by:
hasFunctor in class Term
Returns:
whether this Term's functor has (int) 'name' and 'arity'

hasFunctor

public boolean hasFunctor(double value,
                          int arity)
Description copied from class: Term
Tests whether this Term's functor has (double) 'name' and 'arity' Returns false if called inappropriately

Specified by:
hasFunctor in class Term
Returns:
whether this Term's functor has (double) 'name' and 'arity'

jrefToObject

public java.lang.Object jrefToObject()
Specified by:
jrefToObject in class Term

name

public final java.lang.String name()
returns the lexical name of this Variable

Overrides:
name in class Term
Returns:
the lexical name of this Variable

type

public final int type()
returns the type of this subclass of Term, i.e. Prolog.VARIABLE

Specified by:
type in class Term
Returns:
the type of this subclass of Term, i.e. Prolog.VARIABLE

typeName

public java.lang.String typeName()
returns the typeName of this subclass of Term, i.e. "Variable"

Specified by:
typeName in class Term
Returns:
the typeName of this subclass of Term, i.e. "Variable"

toString

public java.lang.String toString()
Returns a Prolog source text representation of this Variable

Overrides:
toString in class java.lang.Object
Returns:
a Prolog source text representation of this Variable

equals

public final boolean equals(java.lang.Object obj)
A Variable is equal to another if their names are the same and they are not anonymous.

Overrides:
equals in class java.lang.Object
Parameters:
obj - The Object to compare.
Returns:
true if the Object is a Variable and the above condition apply.

arg

public final Term arg(int i)
throws a JPLException (arg(int) is defined only for Compound and Atom)

Specified by:
arg in class Term
Returns:
the ith argument (counting from 1) of this Variable (never)

debugString

public java.lang.String debugString()
Deprecated. 

Returns a debug-friendly String representation of an Atom.

Specified by:
debugString in class Term
Returns:
a debug-friendly String representation of an Atom