00001
00002
00003 #ifndef _LINKID_H
00004 #define _LINKID_H
00005
00006 #include "id.h"
00007 #include <map>
00008 #include <vector>
00009 #include <string>
00010
00013 typedef enum LnkIdType {
00014 SEG_LNK_ID = 0,
00015 MORF_LNK_ID = 1,
00016 LEM_LNK_ID = 2,
00017 EZEZAGUN_LNK_ID = 3
00018 };
00019
00022 class LinkId: public Id {
00023 static std::map <const std::string, int> idKont;
00024 const static std::vector<std::string> IdType2Str;
00025 static std::vector<std::string> KargatuIdType2Str();
00026
00027 void erregistratu(const std::string & str) const;
00028
00029 public:
00030
00035 static std::string IdType2IdTypeStr(const LnkIdType & type);
00036
00041 static LnkIdType IdTypeStr2IdType(const std::string & type);
00042
00044 LinkId();
00045
00049 LinkId(const char* lnkId);
00050
00054 LinkId(const std::string & lnkId);
00055
00059 LinkId(const LnkIdType & idType);
00060
00064 LnkIdType getIdType() const;
00065
00069 std::string toXId() const;
00070
00071 };
00072
00073 #endif //_LINKID_H