00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _JOINGRP_H 00004 #define _JOINGRP_H 00005 00006 #include "join.h" 00007 #include "joingrptype.h" 00008 #include "xmlsimplestruct.h" 00009 #include <vector> 00010 00013 class JoinGrp { 00014 JoinGrpType joinGrpT; // Join multzoaren mota 00015 std::vector <Join> jg; // Join lista duen bektorea 00016 unsigned ind; // Hasierakoa() zein posizio erakutsi 00017 00018 void printErrorea (char*, XMLSimpleNode*) const; 00019 public: 00020 00022 JoinGrp(); 00023 00027 JoinGrp(const JoinGrpType & type); 00028 00032 JoinGrp(const JoinGrp & joinGrp); 00033 00038 JoinGrp& operator=( const JoinGrp & jGrp); 00039 00044 bool operator==(const JoinGrp & jGrp) const; 00045 00050 bool operator < (const JoinGrp & jGrp) const; 00051 00056 bool operator <= (const JoinGrp & jGrp) const; 00057 00062 bool operator > (const JoinGrp & jGrp) const; 00063 00068 bool operator >= (const JoinGrp & jGrp) const; 00069 00073 void putType(const JoinGrpType & joinGrpT); 00074 00078 JoinGrpType getType() const; 00079 00081 void begin(); 00082 00085 void next(); 00086 00090 Join current() const; 00091 00095 bool ready() const; 00096 00100 unsigned size() const; 00101 00106 bool contains(const JoinId & id) const; 00107 00112 Join get(const unsigned pos) const; 00113 00118 Join get(const JoinId & id) const; 00119 00123 void add(const Join & join); 00124 00128 void remove(const Join & join); 00129 00130 /* ** BILAKETAK ********************************************************** */ 00131 /* 1. -> Targets-en artean id duten joinak bilatu eta itzuli */ 00132 /* 2. -> Targets-en artean ind posizioan id duten joinak bilatu eta itzuli */ 00133 /* 3. -> Targets-en arten ind1 posizioan id duten joinen ind2 Idak itzuli */ 00134 /* *********************************************************************** */ 00135 00140 std::vector<Join> find (const Id & id) const; 00141 00148 std::vector<Join> find (const TargetName & name, const Id & id) const; 00149 00156 std::vector<Id> find (const TargetName & n1, const Id & id1, const TargetName & nResult) const; 00157 00164 std::vector<Join> find (const unsigned int & pos, const Id & id) const; 00165 00172 std::vector<Id> find (const unsigned int & pos1, const Id & id1, const unsigned int & pos2) const; 00173 00178 XMLSimpleNode* toXML(XMLSimpleStruct* xmlstruct) const; // JoinG -> LT_NSL <JOINGRP> ... </JOINGRP> 00179 00183 void init(XMLSimpleNode* joinGrpItem) throw (char*); // <JOINGRP> ... </BODY> -> JoinG 00184 // char* salbuespena altxa dezake itemen informazio 00185 // falta edo erreferentzi erroreak badaude 00186 }; 00187 #endif //_JOINGRP_H