jess
Class Token

java.lang.Object
  extended byjess.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.

The Token class is used to represent partial matches in the Rete network. You'll use it if you're writing an Accelerator (not documented here), if you're working with old-style queries, or possibly if you're writing a Strategy implementation.

(C) 2006 Sandia National Laboratories

See Also:
Accelerator, Strategy, Serialized Form

Constructor Summary
Token(Fact firstFact)
          Construct a token containing a single Fact.
Token(Fact firstFact, int unused)
          Deprecated. See #Token(Fact)
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.
 boolean fastDataEquals(Token t)
           
 int getTime()
          Returns the largest pseudotime recorded in any of the facts in this Token.
 int getTotalTime()
          Returns the sum of the pseudotimes recorded in all of the facts in 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 unused)
      throws JessException
Deprecated. See #Token(Fact)

Construct a token. tag should be RU.ADD, RU.REMOVE, etc.


Token

public Token(Fact firstFact)
      throws JessException
Construct a token containing a single Fact.


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. The fact that matches the first pattern on the LHS of a corresponding rule is fact(0); the next is fact(1), etc.
Returns:
the fact

size

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

Returns:
the size

getTime

public int getTime()
Returns the largest pseudotime recorded in any of the facts in this Token. The rule engine keeps track of a monotonically increasing quantity called pseudotime; facts asserted later will have larger pseudotime values. You can use pseudotime to order activations when writing a Strategy implementation.

Returns:
the largest pseudotime of any fact in this Token.
See Also:
Strategy

getTotalTime

public int getTotalTime()
Returns the sum of the pseudotimes recorded in all of the facts in this Token. The rule engine keeps track of a monotonically increasing quantity called pseudotime; facts asserted later will have larger pseudotime values. You can use pseudotime to order activations when writing a Strategy implementation.

Returns:
the sum of all pseudotimes of the facts in this Token.
See Also:
Strategy

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)

fastDataEquals

public final boolean fastDataEquals(Token t)

equals

public boolean equals(java.lang.Object o)
Compare this token to another 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.

Returns:
The formatted String

hashCode

public int hashCode()
Use the sortcode, based on the contained facts, as the hashcode.

Returns:
A semi-unique identifier

prepare

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

Throws:
JessException

© 2007 Sandia Corporation