edu.duke.cs.banjo.learner.components
Class CycleChecker

java.lang.Object
  extended byedu.duke.cs.banjo.learner.components.CycleChecker
All Implemented Interfaces:
CycleCheckerI
Direct Known Subclasses:
CycleCheckerApplyThenCheck, CycleCheckerCheckThenApply

public abstract class CycleChecker
extends java.lang.Object
implements CycleCheckerI

Combines common code shared by the different cycle checker implementations.

Details:

Change History:
Created on Nov 23, 2004

Author:
Jurgen Sladeczek (hjs)
For the latest info, please visit www.cs.duke.edu.

Field Summary
protected  long[] acyclicChangeTypeTracker
           
protected  BayesNetChangeI bayesNetChange
           
protected  BayesNetManagerI bayesNetManager
           
protected  long[] consideredChangeTypeTracker
           
protected  Settings processData
           
 
Constructor Summary
CycleChecker(BayesNetManagerI initialBayesNet, Settings processData)
           
 
Method Summary
abstract  boolean isChangeValid(BayesNetManagerI _bayesNetManager, BayesNetChangeI _bayesNetChange)
          Checks whether the proposed bayesNetChange results in a cycle in the network described by the bayesNetManager.
 java.lang.StringBuffer provideCollectedStatistics()
           
 void updateProcessData(Settings _processData)
          For future use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bayesNetManager

protected BayesNetManagerI bayesNetManager

processData

protected Settings processData

consideredChangeTypeTracker

protected long[] consideredChangeTypeTracker

acyclicChangeTypeTracker

protected long[] acyclicChangeTypeTracker

bayesNetChange

protected BayesNetChangeI bayesNetChange
Constructor Detail

CycleChecker

public CycleChecker(BayesNetManagerI initialBayesNet,
                    Settings processData)
             throws java.lang.Exception
Method Detail

isChangeValid

public abstract boolean isChangeValid(BayesNetManagerI _bayesNetManager,
                                      BayesNetChangeI _bayesNetChange)
                               throws java.lang.Exception
Description copied from interface: CycleCheckerI
Checks whether the proposed bayesNetChange results in a cycle in the network described by the bayesNetManager.

Specified by:
isChangeValid in interface CycleCheckerI
Parameters:
_bayesNetManager - The current underlying network.
_bayesNetChange - The proposed change to the network.
Returns:
Returns the boolean that indicates whether the change can be applied.
Throws:
java.lang.Exception

updateProcessData

public void updateProcessData(Settings _processData)
                       throws java.lang.Exception
Description copied from interface: CycleCheckerI
For future use. Updates whatever setting within processData that is being changed in the particular cycleChecker implementation.

Specified by:
updateProcessData in interface CycleCheckerI
Parameters:
_processData - The data to be exchanged.
Throws:
java.lang.Exception

provideCollectedStatistics

public java.lang.StringBuffer provideCollectedStatistics()
                                                  throws java.lang.Exception
Specified by:
provideCollectedStatistics in interface CycleCheckerI
Returns:
Returns the statistics about the particular cyclechecker implementation.
Throws:
java.lang.Exception