00001
00002
00003 #ifndef _FSID_H
00004 #define _FSID_H
00005
00006 #include "id.h"
00007 #include "anatype.h"
00008 #include <string>
00009 #include <vector>
00010 #include <map>
00011
00014 typedef enum FsIdType {
00015 SEG_FS_ID = 0,
00016 MORF_FS_ID = 1,
00017 LEM_FS_ID = 2,
00018 SF_FS_ID = 3,
00019 DEP_FS_ID = 4,
00020 ZUZEN_FS_ID = 5,
00021 ERR_FS_ID = 6,
00022 HAUL_FS_EDBL_ID = 7,
00023 ZGS_FS_EDBL_ID = 8,
00024 ADAB_FS_ID = 9,
00025 VERB_FS_ID = 10,
00026 EZEZAGUN_FS_ID = 11
00027 };
00028
00036 class FSId : public Id {
00037 static std::map <const std::string, int> idKont;
00038 const static std::vector<std::string> IdType2Str;
00039 static std::vector<std::string> KargatuIdType2Str();
00040
00041 void erregistratu(const std::string & str) const;
00042 public:
00043
00048 static std::string IdType2IdTypeStr(const FsIdType & idType);
00049
00054 static FsIdType IdTypeStr2IdType(const std::string & idType);
00055
00057 FSId();
00058
00062 FSId(const char* fsId);
00063
00067 FSId( const std::string & fsId);
00068
00075 FSId(const FsIdType & idType, const AnaType & anaType, const std::string & kat, const std::string & azp);
00076
00082 FSId(const FsIdType & idType, const std::string & strBal, const bool zenbJarri=false);
00083
00087 FsIdType getIdType() const;
00088
00092 std::string getAnalisiTypeStr() const;
00093
00097 AnaType getAnalisiType() const;
00098
00102 int getErregelaKop() const;
00103
00107 std::string getBalioStr() const;
00108
00112 std::string toXId() const;
00113
00114 };
00115
00116 #endif // _FSID_H