Main Page | Class Hierarchy | Class List | File List | Class Members

lnkxmldoc.h

00001 /* libIXAml - IXA Taldea */
00002 
00003 #ifndef _LNKXMLDOC_H
00004 #define _LNKXMLDOC_H
00005 
00006 #include "linkgrps.h"
00007 #include "idreferl.h"
00008 #include "domid.h"
00009 #include "teiheader.h"
00010 #include "lnkprolog.h"
00011 #include <string>
00012 #include <vector>
00013 #include <fstream>
00014 
00017 class LnkXMLDoc:public IdRefErl {
00018 
00019  protected:
00020   DomId lnkDom;              
00021   LnkProlog prolog;          
00022   LinkGrpS lnkGrpS;          
00024  public:
00025   
00029   LnkXMLDoc(const DomId & domId);
00030 
00034   LnkXMLDoc(const LnkXMLDoc & lnkDoc);
00035 
00037   virtual ~LnkXMLDoc();
00038 
00043   LnkXMLDoc& operator=(const LnkXMLDoc & lnkDoc);
00044 
00048   DomId      getDom() const;
00049   
00053   void putDom ( const DomId & domId);
00054 
00059   std::string getRefFitx(const DomId & dom) const;
00060 
00065   std::vector <std::string> getRefFitx(const RefType & rt) const;
00066 
00071   std::vector <DomId> getRefDom(const RefType & rt) const;
00072 
00079   void addRefFitx(const RefType & rt, const DomId & d,const std::string & f, const bool system=true);
00080 
00084   void removeRefFitx(const DomId & d);
00085 
00089   void removeRefFitx(const std::string & fitx);
00090 
00093   void begin();
00094 
00097   void next();
00098 
00102   bool ready() const;
00103   
00107   LinkGrp current() const;
00108   
00112   unsigned size() const;
00113   
00118   unsigned size(const LnkGrpType & lgt) const;
00119 
00125   Link get(const LnkGrpType& lgt, const unsigned pos) const;
00126 
00130   std::vector<LnkGrpType> getLnkGrpTypes() const;
00131 
00136   LinkGrp getLinkGrp(const LnkGrpType & lgt) const;
00137 
00141   void addLinkGrp(const LinkGrp & lg);
00142 
00147   void addLink(const LnkGrpType & lgt, const Link & l);
00148   
00153   void removeLink(const LnkGrpType & lgt, const Link & l);
00154 
00159   std::vector<Link> find (const Id & id);
00160 
00166   std::vector<Link> find (const int ind, const Id & id);
00167 
00174   std::vector<Id> find (const int ind1, const Id & id, const int ind2);
00175 
00176  private:
00177   
00178   void writeDocument(XMLSimpleStruct*) const throw (char*);
00179   void readDocument(XMLSimpleStruct*) throw (char*);
00180   
00181 };
00182 #endif //_LNKXMLDOC_H

Generated on Tue Sep 11 12:07:44 2007 for libIXAml by doxygen 1.3.5