// file: $isip/class/mmedia/Annotation/anno_00.cc
// version: $Id: anno_00.cc 8830 2002-11-24 16:43:55Z gao $
//

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

// method: destructor
//
// arguments: none
//
// return: none
//
// this is the default destructor for the Annotation class.
//
Annotation::~Annotation() {}

// method: default constructor
//
// arguments: none
//
// return: none
//
// this is the default constructor for the Annotation class.
//
Annotation::Annotation() {

  // initialize member data
  //
  start_d = (Anchor*)NULL;
  end_d = (Anchor*)NULL;
  channel_index_d = DEF_CHANNEL_INDEX;  
}

// method: default constructor
//
// arguments:
//  String& id: (input) id
//  const Annotation* arg: (input) Annotation
//
// return: none
//
// this is the constructor for the Annotation class.
//
Annotation::Annotation(String& id_a, const Annotation* arg_a) {

  // assign member data
  //
  setStartAnchor(arg_a->start_d);
  setEndAnchor(arg_a->end_d);
  id_d.assign(id_a);
  type_d.assign(arg_a->type_d);
  channel_index_d = arg_a->channel_index_d;
}

// method: default constructor
//
// arguments:
//  String& id: (input) id
//  Anchor* start: (input) start anchor
//  Anchor* end: (input) end anchor
//  String& type: (input) Annotation type
//  long channel_index: (input) channel index
//
// return: none
//
// this is the constructor for the Annotation class.
//
Annotation::Annotation(String& id_a, Anchor* start_a,
		       Anchor* end_a, String& type_a, long channel_index_a) {

  // assign member data
  //
  setStartAnchor(start_a);
  setEndAnchor(end_a);  
  id_d.assign(id_a);
  type_d.assign(type_a);
  channel_index_d = channel_index_a;
}

//-----------------------------------------------------------------------------
//
// we define non-integral constants in the default constructor
//
//-----------------------------------------------------------------------------

// constants: required constants such as the class name
//
const String Annotation::CLASS_NAME(L"Annotation");

// constants: i/o related constants
//
const String Annotation::DEF_PARAM(L"");
const String Annotation::PARAM_ID(L"id");
const String Annotation::PARAM_TYPE(L"type");
const String Annotation::PARAM_START(L"start");
const String Annotation::PARAM_END(L"end");
const String Annotation::PARAM_CHANNEL_INDEX(L"channel_index");
const String Annotation::PARAM_FEATURES(L"features");

// static instantiations: debug level
//
Integral::DEBUG Annotation::debug_level_d = Integral::NONE;

// static instantiations: the memory manager
//
MemoryManager Annotation::mgr_d(sizeof(Annotation));
