OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
universalid.hpp
Go to the documentation of this file.
1 #ifndef CSM_WOLRD_UNIVERSALID_H
2 #define CSM_WOLRD_UNIVERSALID_H
3 
4 #include <string>
5 #include <iosfwd>
6 #include <vector>
7 
8 #include <QMetaType>
9 
10 namespace CSMWorld
11 {
13  {
14  public:
15 
16  enum Class
17  {
20  Class_RefRecord = 2, // referenceable record
23  Class_Collection = 16, // multiple types of records combined
24  Class_Transient = 32, // not part of the world data or the project data
25  Class_NonRecord = 64, // record like data that is not part of the world
27  Class_ResourceList = 256
29  };
30 
32  {
36  };
37 
40  enum Type
41  {
42  Type_None = 0,
68  Type_Cell_Missing, //For cells that does not exist yet.
141  };
142 
144 
145  private:
146 
150  std::string mId;
151  int mIndex;
152 
153  public:
154 
155  UniversalId (const std::string& universalId);
156 
157  UniversalId (Type type = Type_None);
158 
159  UniversalId (Type type, const std::string& id);
161 
162  UniversalId (Type type, int index);
164 
165  Class getClass() const;
166 
168 
169  Type getType() const;
170 
171  const std::string& getId() const;
173 
174  int getIndex() const;
176 
177  bool isEqual (const UniversalId& universalId) const;
178 
179  bool isLess (const UniversalId& universalId) const;
180 
181  std::string getTypeName() const;
182 
183  std::string toString() const;
184 
185  std::string getIcon() const;
187 
188  static std::vector<Type> listReferenceableTypes();
189 
190  static std::vector<Type> listTypes (int classes);
191 
195  static Type getParentType (Type type);
196  };
197 
198  bool operator== (const UniversalId& left, const UniversalId& right);
199  bool operator!= (const UniversalId& left, const UniversalId& right);
200 
201  bool operator< (const UniversalId& left, const UniversalId& right);
202 
203  std::ostream& operator< (std::ostream& stream, const UniversalId& universalId);
204 }
205 
206 Q_DECLARE_METATYPE (CSMWorld::UniversalId)
207 
208 #endif
Definition: universalid.hpp:125
int getIndex() const
Calling this function for a non-index type will throw an exception.
Definition: universalid.cpp:262
Definition: universalid.hpp:101
Definition: universalid.hpp:126
Definition: universalid.hpp:75
Definition: universalid.hpp:111
Definition: universalid.hpp:77
std::string toString() const
Definition: universalid.cpp:313
Definition: universalid.hpp:59
Definition: universalid.hpp:33
Definition: universalid.hpp:23
Definition: universalid.hpp:104
Definition: universalid.hpp:115
static Type getParentType(Type type)
Definition: universalid.cpp:371
Definition: universalid.hpp:50
Definition: universalid.hpp:56
std::string mId
Definition: universalid.hpp:150
Definition: universalid.hpp:54
Definition: universalid.hpp:62
static std::vector< Type > listReferenceableTypes()
Definition: universalid.cpp:341
Definition: universalid.hpp:118
Definition: universalid.hpp:98
Definition: universalid.hpp:70
Definition: universalid.hpp:94
Definition: universalid.hpp:95
Definition: universalid.hpp:83
Definition: universalid.hpp:66
Definition: universalid.hpp:46
bool isEqual(const UniversalId &universalId) const
Definition: universalid.cpp:270
Definition: universalid.hpp:82
Definition: universalid.hpp:105
Definition: universalid.hpp:133
Type
Definition: universalid.hpp:40
Definition: universalid.hpp:53
ArgumentType getArgumentType() const
Definition: universalid.cpp:244
Definition: universalid.hpp:120
static std::vector< Type > listTypes(int classes)
Definition: universalid.cpp:352
Definition: universalid.hpp:61
Definition: universalid.hpp:51
Definition: universalid.hpp:74
Definition: universalid.hpp:55
Definition: universalid.hpp:84
Definition: universalid.hpp:89
Definition: universalid.hpp:124
Definition: universalid.hpp:47
Definition: universalid.hpp:18
Definition: universalid.hpp:19
std::string getTypeName() const
Definition: universalid.cpp:301
UniversalId(const std::string &universalId)
Definition: universalid.cpp:137
respective collection
Definition: universalid.hpp:28
Definition: universalid.hpp:20
Definition: universalid.hpp:103
Definition: universalid.hpp:136
Definition: universalid.hpp:65
Definition: universalid.hpp:78
Definition: universalid.hpp:35
Type getType() const
Definition: universalid.cpp:249
Definition: universalid.hpp:112
bool operator<(const CellCoordinates &left, const CellCoordinates &right)
Definition: cellcoordinates.cpp:79
Definition: universalid.hpp:137
Class mClass
Definition: universalid.hpp:147
Class getClass() const
Definition: universalid.cpp:239
Definition: universalid.hpp:57
Definition: universalid.hpp:76
Definition: universalid.hpp:90
Definition: universalid.hpp:128
Definition: universalid.hpp:44
Definition: universalid.hpp:26
Definition: universalid.hpp:99
Definition: universalid.hpp:22
Definition: universalid.hpp:127
Definition: universalid.hpp:68
Definition: universalid.hpp:129
Definition: universalid.hpp:63
Definition: universalid.hpp:64
Definition: universalid.hpp:34
Definition: universalid.hpp:123
bool operator==(const CellCoordinates &left, const CellCoordinates &right)
Definition: cellcoordinates.cpp:69
Definition: universalid.hpp:117
ArgumentType mArgumentType
Definition: universalid.hpp:148
Definition: universalid.hpp:143
ArgumentType
Definition: universalid.hpp:31
Definition: universalid.hpp:87
bool operator!=(const CellCoordinates &left, const CellCoordinates &right)
Definition: cellcoordinates.cpp:74
Definition: universalid.hpp:102
Definition: universalid.hpp:108
Definition: universalid.hpp:97
Definition: universalid.hpp:131
Definition: universalid.hpp:67
Definition: universalid.hpp:85
Definition: universalid.hpp:122
bool isLess(const UniversalId &universalId) const
Definition: universalid.cpp:284
Definition: universalid.hpp:25
Definition: universalid.hpp:110
int mIndex
Definition: universalid.hpp:151
Definition: universalid.hpp:96
Definition: universalid.hpp:116
std::string getIcon() const
Will return an empty string, if no icon is available.
Definition: universalid.cpp:329
Definition: universalid.hpp:79
Definition: universalid.hpp:91
Definition: universalid.hpp:135
Definition: universalid.hpp:49
Definition: universalid.hpp:73
Definition: universalid.hpp:86
Definition: universalid.hpp:71
Definition: universalid.hpp:121
Definition: universalid.hpp:134
const std::string & getId() const
Calling this function for a non-ID type will throw an exception.
Definition: universalid.cpp:254
Definition: universalid.hpp:139
Definition: universalid.hpp:52
Definition: universalid.hpp:88
Definition: universalid.hpp:48
Definition: universalid.hpp:113
Class
Definition: universalid.hpp:16
Definition: universalid.hpp:106
Definition: universalid.hpp:119
Definition: universalid.hpp:42
Definition: universalid.hpp:58
Definition: universalid.hpp:100
Definition: universalid.hpp:92
Definition: universalid.hpp:107
Definition: universalid.hpp:93
Definition: universalid.hpp:21
Definition: universalid.hpp:138
Definition: universalid.hpp:130
Type mType
Definition: universalid.hpp:149
Definition: universalid.hpp:80
Definition: universalid.hpp:114
Definition: universalid.hpp:43
Definition: universalid.hpp:132
Definition: universalid.hpp:140
Definition: universalid.hpp:24
Definition: universalid.hpp:109
Definition: universalid.hpp:69
Definition: universalid.hpp:72
Definition: universalid.hpp:12
Definition: universalid.hpp:60