00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _LINKGRP_H 00004 #define _LINKGRP_H 00005 00006 #include "link.h" 00007 #include "lnkgrptype.h" 00008 #include "xmlsimplestruct.h" 00009 #include <vector> 00010 00013 class LinkGrp{ 00014 LnkGrpType lnkGrpT; // Link multzoaren mota 00015 std::vector <Link> lg; // Link lista duen bektorea 00016 unsigned ind; // Hasierakoa() zein posizio erakutsi 00017 00018 void printErrorea (char*, XMLSimpleNode*) const; 00019 public: 00020 00022 LinkGrp(); 00023 00027 LinkGrp(const LnkGrpType & type); 00028 00032 LinkGrp(const LinkGrp & lnkGrp); 00033 00038 LinkGrp& operator =(const LinkGrp & lnkGrp); 00039 00044 bool operator == (const LinkGrp & lnkGrp) const; 00045 00050 bool operator < (const LinkGrp & lnkGrp) const; 00051 00056 bool operator <= (const LinkGrp & lnkGrp) const; 00057 00062 bool operator > (const LinkGrp & lnkGrp) const; 00063 00068 bool operator >= (const LinkGrp & lnkGrp) const; 00069 00073 void putType(const LnkGrpType & lnkGrpT); 00074 00078 LnkGrpType getType() const; 00079 00081 void begin(); 00082 00085 void next(); 00086 00090 Link current() const; 00091 00095 bool ready() const; 00096 00100 unsigned size() const; 00101 00106 bool contains(const LinkId & id) const; 00107 00112 Link get(const unsigned pos) const; 00113 00118 Link get(const LinkId & id) const; 00119 00123 void add(const Link & link); 00124 00128 void remove(const Link & link); 00129 00134 std::vector<Link> find (const Id & id) const; 00135 00141 std::vector<Link> find (const int ind, const Id & id) const; 00142 00149 std::vector<Id> find (const int ind1, const Id & id,const int ind2) const; 00150 00155 XMLSimpleNode* toXML(XMLSimpleStruct* xmlstruct) const; // LinkG -> LT_NSL <LINKGRP> ... </LINKGRP> 00156 00160 void init(XMLSimpleNode* lnkgrpItem) throw (char*); // LT_NSL <LINKGRP> ... </BODY> -> LinkG 00161 // char* salbuespena altxa dezake itemen informazio 00162 // falta edo erreferentzi erroreak badaude 00163 }; 00164 #endif // _LINKG_H