1 #ifndef TAG_PARSER_TAGFIELD_H
2 #define TAG_PARSER_TAGFIELD_H
8 template <
class implementationType>
class TagField;
42 std::string idToString()
const;
48 void setValue(
const TagValue &value);
53 void removeTypeInfo();
54 bool isTypeInfoAssigned()
const;
56 bool isDefault()
const;
57 void setDefault(
bool isDefault);
61 bool isAdditionalTypeInfoUsed()
const;
63 const std::vector<ImplementationType> &nestedFields()
const;
64 std::vector<ImplementationType> &nestedFields();
65 bool supportsNestedFields()
const;
74 bool m_typeInfoAssigned;
76 std::vector<ImplementationType> m_nestedFields;
82 template <
class ImplementationType>
87 , m_typeInfoAssigned(false)
95 template <
class ImplementationType>
100 , m_typeInfoAssigned(false)
122 return ImplementationType::fieldIdToString(m_id);
170 m_value.clearDataAndMetadata();
186 m_typeInfo = typeInfo;
187 m_typeInfoAssigned =
true;
196 m_typeInfoAssigned =
false;
204 return m_typeInfoAssigned;
220 m_default = isDefault;
231 m_typeInfoAssigned =
false;
233 static_cast<ImplementationType *>(
this)->reset();
252 return m_nestedFields;
262 return m_nestedFields;
282 #endif // TAG_PARSER_TAGFIELD_H