#ifndef COOSYS_H
#define COOSYS_H

#include "global.h"

/**
* This class represents <COOSYS> element.  
*
* A COOSYS element contains ID, equinox, epoch and system.
*/
//Date created - 27 May 2002

class Coosys {

	public:
		/**
		* Default constructor
		*/
		Coosys();

		/**
		* Destructor
		*/
		~Coosys();

		/**
		* Assignment operator overloaded.
		*/
		Coosys operator=(const Coosys &c);

		/**
		* Copy Constructor
		*/
		Coosys(const Coosys &c);
		
		int setEquinox(char * infoValue, int * status);
		int setID(char * infoID, int * status);
		int setEpoch(char * epoch, int * status);
		int setPCData(char * pcdata, int * status);
		int setSystem(coosys_system system, int * status);

		/**
		* Gets the 'equinox' attribute.
		*/
		int getEquinox(char * &equinox, int * status);

		/**
		* Gets the 'ID' attribute.
		*/
		int getID(char * &infoID, int * status);

		/**
		* Gets the 'epoch' attribute.
		*/
		int getEpoch(char * &epoch, int * status);

		/**
		* Gets the PCDATA.
		*/
		int getPCData(char * &pcdata, int * status);

		/**
		* Gets the 'system' attribute.
		*/
		int getSystem(coosys_system &system, int * status);
	
	private: 
		char * m_ID;
		char * m_equinox;
		char * m_epoch;
		coosys_system m_system;
		char * m_pcdata;
		
		void cleanup();
		void makecopy(const Coosys &r);
		void init(void);

};

#endif