// file: $isip/class/search/ContextMap/cmap_05.cc
// version: $Id: cmap_05.cc 8332 2002-07-11 02:00:54Z alphonso $
//

// isip include files
//
#include "ContextMap.h"

// method: clear
//
// arguments:
//  Integral::CMODE cmode: (input) clear mode
//
// return: a boolean value indicating status
//
// clear the contents of the search level
//
boolean ContextMap::clear(Integral::CMODE cmode_a) {

  // clear the input object(s)
  //
  if (!context_d.clear(cmode_a)) {
    return false;
  }

  if (!index_d.clear(cmode_a)) {
    return false;
  }  
  
  // exit gracefully
  //
  return true;  
}

// method: assign
//
// arguments:
//  const ContextMap& context_map: (input) context map to copy
//
// return: logical error status
//
// assign the context map from the copy
//
boolean ContextMap::assign(const ContextMap& context_map_a) {

  // assign the input object(s)
  //
  if (!context_d.assign(context_map_a.context_d)) {
    return false;
  }

  if (!index_d.assign(context_map_a.index_d)) {
    return false;
  }  
  
  // exit gracefully
  //
  return true;  
}

// method: eq
//
// arguments:
//  const ContextMap& context_map: (input) context map object to compare
//
// return: a boolean value indicating status
//
// this method checks if the input object is the same as the current one
//
boolean ContextMap::eq(const ContextMap& context_map_a) const {

  // determine the objects are equal
  //
  if (!context_d.eq(context_map_a.context_d)) {
    return false;
  }

  if (!index_d.eq(context_map_a.index_d)) {
    return false;
  }  
  
  // if we reached this far then the items must be identical
  //
  return true;  
}
