SableJBDD.bdd
Class JBddNode

java.lang.Object
  extended bySableJBDD.bdd.internal.UniqueObject
      extended bySableJBDD.bdd.JBddNode
All Implemented Interfaces:
SableJBDD.bdd.internal.Unique
Direct Known Subclasses:
JBddInternalNode

public abstract class JBddNode
extends UniqueObject

A class for bdd internal nodes.


Field Summary
 JBddNode high
           
 JBddNode low
           
 JBddVariable variable
           
 
Constructor Summary
JBddNode()
           
 
Method Summary
 void clearNext()
           
 JBddNode getNext()
           
 boolean matches(JBddVariable v, JBddNode l, JBddNode h)
          Checks if this bdd node matches (v, l, h) triple.
 void mutate(JBddVariable newv, JBddNode newl, JBddNode newh)
          Mutates a reclaimed node to a new instance.
 void reclaim()
          Reclaims the node object, only called by node pool.
 void setNext(JBddNode next)
           
 
Methods inherited from class SableJBDD.bdd.internal.UniqueObject
equals, getUniqueId, hashCode
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

variable

public JBddVariable variable

low

public JBddNode low

high

public JBddNode high
Constructor Detail

JBddNode

public JBddNode()
Method Detail

reclaim

public void reclaim()
Reclaims the node object, only called by node pool. A node can only be recliamed when it is weakly reachable (or phantom node), which means there is not regular references to this node. In this case, the unique id and object can be reused without a problem.


mutate

public void mutate(JBddVariable newv,
                   JBddNode newl,
                   JBddNode newh)
Mutates a reclaimed node to a new instance.

Parameters:
newv - the new variable
newl - the new low branch
newh - the new high branch

matches

public boolean matches(JBddVariable v,
                       JBddNode l,
                       JBddNode h)
Checks if this bdd node matches (v, l, h) triple.


setNext

public final void setNext(JBddNode next)

clearNext

public final void clearNext()

getNext

public final JBddNode getNext()