00001
00002
00003 #ifndef _LSFIXMLDOC_H
00004 #define _LSFIXMLDOC_H
00005
00006 #include "joinxmldoc.h"
00007 #include "fsid.h"
00008 #include "wid.h"
00009 #include "mwid.h"
00010 #include "chunkid.h"
00011 #include "entid.h"
00012 #include "posid.h"
00013 #include "lsfiid.h"
00014 #include <string>
00015 #include <vector>
00016
00020 class LSFIXMLDoc: public JoinXMLDoc {
00021 static const JoinGrpType wJoinGrpT;
00022 static const JoinGrpType mwJoinGrpT;
00023 static const JoinGrpType chunkJoinGrpT;
00024 static const JoinGrpType entJoinGrpT;
00025 static const JoinGrpType posJoinGrpT;
00026 static const RefType wRef;
00027 static const RefType mwRef;
00028 static const RefType chunkRef;
00029 static const RefType entRef;
00030 static const RefType posRef;
00031 static const RefType fsRef;
00032 static const RefType sfRef;
00033 static const RefType shSyntLibRef;
00034 static const RefType entLibRef;
00035 static const RefType posLibRef;
00036
00037
00038 std::string lortuRef(const RefDataErl & ird) const;
00039
00040 public:
00041
00042 static const TargetName wTN;
00043 static const TargetName mwTN;
00044 static const TargetName chunkTN;
00045 static const TargetName entTN;
00046 static const TargetName posTN;
00047 static const TargetName fsTN;
00048 static const TargetName sfTN;
00051 LSFIXMLDoc();
00052
00056 LSFIXMLDoc(const DomId & d);
00057
00061 std::string getWFitx() const;
00062
00066 DomId getWDom() const;
00067
00071 void putWFitx (const std::string & f);
00072
00077 void putWFitx (const std::string & f, const DomId & d);
00078
00082 std::string getMwFitx() const;
00083
00087 DomId getMwDom() const;
00088
00092 void putMwFitx(const std::string & f);
00093
00098 void putMwFitx(const std::string & f,const DomId & d);
00099
00103 std::string getChunkFitx() const;
00104
00108 DomId getChunkDom() const;
00109
00113 void putChunkFitx(const std::string & f);
00114
00119 void putChunkFitx(const std::string & f,const DomId & d);
00120
00124 std::string getEntFitx() const;
00125
00129 DomId getEntDom() const;
00130
00134 void putEntFitx(const std::string & f);
00135
00140 void putEntFitx(const std::string & f,const DomId & d);
00141
00145 std::string getPosFitx() const;
00146
00150 DomId getPosDom() const;
00151
00155 void putPosFitx(const std::string & f);
00156
00161 void putPosFitx(const std::string & f,const DomId & d);
00162
00166 std::string getFSFitx () const;
00167
00171 DomId getFSDom() const;
00172
00176 void putFSFitx(const std::string & f);
00177
00182 void putFSFitx(const std::string & f, const DomId & d);
00183
00187 std::string getSfFitx () const;
00188
00192 DomId getSfDom() const;
00193
00197 void putSfFitx(const std::string & f);
00198
00203 void putSfFitx(const std::string & f, const DomId & d);
00204
00207 void putSfPublicLibrary();
00208
00212 std::string getShSyntLibFitx() const;
00213
00217 DomId getShSyntLibDom() const;
00218
00222 void putShSyntLibFitx(const std::string & f);
00223
00228 void putShSyntLibFitx(const std::string & f,const DomId & d);
00229
00232 void putShSyntPublicLibrary();
00233
00237 std::string getEntLibFitx() const;
00238
00242 DomId getEntLibDom() const;
00243
00247 void putEntLibFitx(const std::string & f);
00248
00253 void putEntLibFitx(const std::string & f,const DomId & d);
00254
00257 void putEntPublicLibrary();
00258
00262 std::string getPosLibFitx() const;
00263
00267 DomId getPosLibDom() const;
00268
00272 void putPosLibFitx(const std::string & f);
00273
00278 void putPosLibFitx(const std::string & f,const DomId & d);
00279
00282 void putPosPublicLibrary();
00283
00287 JoinGrp getWLSFIGrp() const;
00288
00292 void removeWLSFI(const Join & j);
00293
00298 LSFIId addWLSFI(const Join & j);
00299
00307 LSFIId addWLSFI(const LSFIId & lSfIId, const WId & wId, const FSId & fsId, const FSId & fSintId);
00308
00312 JoinGrp getMwLSFIGrp() const;
00313
00317 void removeMwLSFI(const Join & j);
00318
00323 LSFIId addMwLSFI(const Join & j);
00324
00332 LSFIId addMwLSFI(const LSFIId & lSfIId, const MwId & mwId, const FSId & fsId, const FSId & fSintId);
00333
00337 JoinGrp getChunkLSFIGrp() const;
00338
00342 void removeChunkLSFI(const Join & j);
00343
00348 LSFIId addChunkLSFI(const Join & j);
00349
00357 LSFIId addChunkLSFI(const LSFIId & lSfIId, const ChunkId & chunkId, const FSId & fsId, const FSId & fSintId);
00358
00362 JoinGrp getEntLSFIGrp() const;
00363
00367 void removeEntLSFI(const Join & j);
00368
00373 LSFIId addEntLSFI(const Join & j);
00374
00382 LSFIId addEntLSFI(const LSFIId & lSfIId, const EntId & entId, const FSId & fsId, const FSId & fSintId);
00383
00387 JoinGrp getPosLSFIGrp() const;
00388
00392 void removePosLSFI(const Join & j);
00393
00398 LSFIId addPosLSFI(const Join & j);
00399
00407 LSFIId addPosLSFI(const LSFIId & lSfIId, const PosId & posId, const FSId & fsId, const FSId & fSintId);
00408
00413 std::vector<WId> findSfTok(const FSId & sfId);
00414
00419 std::vector<FSId> findTokSf(const WId & wId);
00420
00425 std::vector<FSId> findAnaSf(const FSId & fsId);
00426
00432 std::vector<FSId> findTokAnaSf(const WId & wId, const FSId & fsId);
00433
00440 JoinId findLSFIId(const WId & wid, const FSId & fsid1, const FSId & fsid2);
00441
00448 Join findLSFI(const Id & id, const FSId & analid, const FSId & sfid);
00449
00455 std::vector<Join> findLSFI(const Id & id, const FSId & analid);
00456
00461 std::vector<Join> findLSFI(const Id & id);
00462
00467 void changeLSFIStatus(const LSFIId & lsfiid, const JoinType & jtype);
00468
00469 };
00470
00471 #endif // _LSFIXMLDOC_H