00001
00002
00003 #ifndef _JOINGRPTYPE_H
00004 #define _JOINGRPTYPE_H
00005
00006 #include <string>
00007 #include <vector>
00008
00011 typedef enum JoinGrpTypeEnum {
00012 Orokor_Join = 0,
00013 Haul_Join = 1,
00014 TokenAnalisiFSint_Join = 2,
00015 HaulAnalisiFSint_Join = 3,
00016 ChunkAnalisiFSint_Join = 4,
00017 EntAnalisiFSint_Join = 5,
00018 PosAnalisiFSint_Join = 6,
00019 LemSyntFuncSet_Join = 7,
00020 Span_Join = 8,
00021 Dep_Join = 9,
00022 ErrInst_Join = 10,
00023 TreeSet_Join = 11,
00024 Sent_Join = 12
00026 };
00027
00030 class JoinGrpType {
00031 protected:
00032 std::string type;
00033 std::string subType;
00034 std::string desc;
00035
00036 static std::vector<std::string> Type2Str;
00037 static std::vector<std::string> Description;
00038 static std::vector<std::string> getType2Str();
00039 static std::vector<std::string> getDescription();
00040
00041 public:
00042
00044 JoinGrpType();
00045
00050 JoinGrpType(const JoinGrpTypeEnum &, const std::string & subType="");
00051
00055 JoinGrpType(const std::string & str);
00056
00060 JoinGrpType(const JoinGrpType & jgt);
00061
00066 JoinGrpType& operator= (const JoinGrpType & jgt);
00067
00072 bool operator == (const JoinGrpType & jgt) const;
00073
00078 bool operator != (const JoinGrpType & jgt) const;
00079
00084 bool operator < (const JoinGrpType & jgt) const;
00085
00090 bool operator <= (const JoinGrpType & jgt) const;
00091
00096 bool operator > (const JoinGrpType & jgt) const;
00097
00102 bool operator >= (const JoinGrpType & jgt) const;
00103
00104
00105 bool isTypeOf(const JoinGrpType &) const;
00106 bool isTypeOf(const std::string &) const;
00107
00112 void putType(const JoinGrpTypeEnum & jgte, const std::string & subType="");
00113
00117 void putType(const std::string & str);
00118
00122 std::string str() const;
00123
00127 std::string getDesc() const;
00128
00129 };
00130
00131 #endif //_JOINGRPTYPE_H