jess
Class Token

java.lang.Object
  |
  +--jess.Token
All Implemented Interfaces:
java.io.Serializable

public class Token
extends java.lang.Object
implements java.io.Serializable

A Token is the fundamental unit of communication in the Rete network. Each Token represents one or more facts and an indication of whether those facts are being asserted or being retracted.

Only Accelerator implementors will use this class.

(C) 1997 Ernest J. Friedman-Hill and Sandia National Laboratories

Author:
Ernest J. Friedman-Hill
See Also:
Accelerator, Serialized Form

Constructor Summary
Token(Fact firstFact, int tag)
          tag should be RU.ADD or RU.REMOVE
Token(Token t)
          Create a new Token identical to an old one
Token(Token t, Fact newFact)
          Create a new Token containing the same data as an old one
Token(Token lt, Token rt)
          Create a new Token containing the same data as an old one
 
Method Summary
 boolean dataEquals(Token t)
          Compare the data in this token to another token.
 boolean equals(java.lang.Object o)
          Compare this token to another object.
 Fact fact(int i)
          Return a fact from this token
 int hashCode()
          Use the sortcode, based on the contained facts, as the hashcode.
 Token prepare(boolean b)
          A chance for a token to duplicate itself Used by extensions
 int size()
          Returns the number of facts in this token
 Fact topFact()
          Return the last fact in the Token (the "most recent" one.)
 java.lang.String toString()
          Return a string (useful for debugging) describing this token.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Token

public Token(Fact firstFact,
             int tag)
      throws JessException
tag should be RU.ADD or RU.REMOVE

Token

public Token(Token t,
             Fact newFact)
      throws JessException
Create a new Token containing the same data as an old one

Token

public Token(Token lt,
             Token rt)
      throws JessException
Create a new Token containing the same data as an old one

Token

public Token(Token t)
      throws JessException
Create a new Token identical to an old one
Method Detail

topFact

public final Fact topFact()
Return the last fact in the Token (the "most recent" one.)
Returns:
The fact

fact

public final Fact fact(int i)
Return a fact from this token
Parameters:
i - The index (0-based) of the fact to retrieve. More recent (later) facts have larger indexes.
Returns:
The fact

size

public final int size()
Returns the number of facts in this token
Returns:
The size

dataEquals

public final boolean dataEquals(Token t)
Compare the data in this token to another token. The tokens are assumed to be of the same size (same number of facts). We have to compare all the fact data if the fact IDs are the same, since each fact can exist in different multifield versions. This could be skipped if we had a fast test for multislot existence...
Parameters:
t - Another token to compare to
Returns:
True if the tokens represent the same list of facts (tags are irrelevant)

equals

public boolean equals(java.lang.Object o)
Compare this token to another object.
Overrides:
equals in class java.lang.Object
Parameters:
o - Another object to compare to
Returns:
True if the object is a Token and dataEquals returns true.

toString

public java.lang.String toString()
Return a string (useful for debugging) describing this token.
Overrides:
toString in class java.lang.Object
Returns:
The formatted String

hashCode

public int hashCode()
Use the sortcode, based on the contained facts, as the hashcode.
Overrides:
hashCode in class java.lang.Object
Returns:
A semi-unique identifier

prepare

public Token prepare(boolean b)
              throws JessException
A chance for a token to duplicate itself Used by extensions

© 1997 E.J. Friedman-Hill and Sandia Corporation