// file: $isip/class/pr/DecisionTreeBase/DecisionTreeBaseDiagnose.h
// version: $Id: DecisionTreeBaseDiagnose.h 8869 2002-12-05 22:19:14Z parihar $
//

// make sure definitions are only made once
//
#ifndef ISIP_DECISION_TREE_BASE_DIAGNOSE
#define ISIP_DECISION_TREE_BASE_DIAGNOSE

// isip include files
//
#ifndef ISIP_DECISION_TREE_BASE
#include "DecisionTreeBase.h"
#endif

#ifndef ISIP_FILENAME
#include <Filename.h>
#endif

// DecisionTreeBaseDiagnose: a class that contains the diagnose method of
// DecisionTreeBase class.
//
template<class TObject>
class DecisionTreeBaseDiagnose : public DecisionTreeBase<TObject> {

  //---------------------------------------------------------------------------
  //
  // public constants
  //
  //---------------------------------------------------------------------------
public:
  
  // define the class name
  //

  //----------------------------------------
  //
  // i/o related constants
  //
  //----------------------------------------  
  
  //----------------------------------------
  //
  // default values and arguments
  //
  //----------------------------------------

  // default values
  //
    
  // default arguments to methods
  //
  
  //----------------------------------------
  //
  // error codes
  //
  //----------------------------------------  
  
  //---------------------------------------------------------------------------
  //
  // protected data
  //
  //---------------------------------------------------------------------------
protected:

  // none
  //
  
  //---------------------------------------------------------------------------
  //
  // required public methods
  //
  //---------------------------------------------------------------------------
public:

  // methods: name
  //
  static const String& name() {
    return DecisionTreeBase<TObject>::name();
  }

  // other static methods
  //
  static boolean diagnose(Integral::DEBUG debug_level);

  // debug methods
  //  these methods are omitted since this class does not have data
  //  members and operations  
  //
  
  // destructor/constructor(s):
  //  these methods are omitted since this class does not have data
  //  members and operations
  //

  // assign methods:
  //  these methods are omitted since this class does not have data
  //  members and operations
  //

  // operator= methods:
  //  these methods are omitted since this class does not have data
  //  members and operations
  //  

  // i/o methods:
  //  these methods are omitted since this class does not have data
  //  members and operations
  //

  // equality methods:
  //  these methods are omitted since this class does not have data
  //  members and operations
  //

  // memory-management methods:
  //  these methods are omitted since this class does not have data
  //  members and operations
  //
  
  //---------------------------------------------------------------------------
  //
  // class-specific public methods
  //
  //---------------------------------------------------------------------------

  //  these methods are omitted since this class does not have data
  //  members and operations
  //
  
  //---------------------------------------------------------------------------
  //
  // private methods
  //
  //---------------------------------------------------------------------------
private:

}; 

// below are all the methods for the Diagnose template class
//

//-----------------------------------------------------------------------------
//
// required static methods
//
//-----------------------------------------------------------------------------

// method: diagnose
//
// arguments:
//  Integral::DEBUG level: (input) debug level for diagnostics
//
// return: a boolean value indicating status
//
// DecisionTreeBase does not have a diagnose method because of the virtual
// function interface. each class in this library must test these functions.
//
template<class TObject>
boolean DecisionTreeBaseDiagnose<TObject>::diagnose(Integral::DEBUG level_a) {
  
  // exit gracefully
  //
  return true;  
 }

// end of include file
//
#endif
