14 #ifndef smtk_attribute_FileSystemItemDefinition_h
15 #define smtk_attribute_FileSystemItemDefinition_h
17 #include "smtk/CoreExports.h"
20 #include "smtk/attribute/ItemDefinition.h"
35 virtual bool isValueValid(
const std::string& val)
const;
41 bool isExtensible()
const {
return m_isExtensible; }
42 void setIsExtensible(
bool mode);
44 std::size_t numberOfRequiredValues()
const {
return m_numberOfRequiredValues; }
45 bool setNumberOfRequiredValues(std::size_t esize);
50 std::size_t maxNumberOfValues()
const {
return m_maxNumberOfValues; }
53 bool setMaxNumberOfValues(std::size_t esize);
55 bool hasValueLabels()
const {
return !m_valueLabels.empty(); }
57 void setValueLabel(std::size_t element,
const std::string& elabel);
58 void setCommonValueLabel(
const std::string& elabel);
59 bool usingCommonLabel()
const {
return m_useCommonLabel; }
60 std::string valueLabel(std::size_t element)
const;
61 bool shouldExist()
const {
return m_shouldExist; }
62 void setShouldExist(
bool val) { m_shouldExist = val; }
63 bool shouldBeRelative()
const {
return m_shouldBeRelative; }
64 void setShouldBeRelative(
bool val) { m_shouldBeRelative = val; }
65 std::string defaultValue()
const {
return m_defaultValue; }
66 void setDefaultValue(
const std::string& val);
67 void unsetDefaultValue() { m_hasDefault =
false; }
68 bool hasDefault()
const {
return m_hasDefault; }
79 bool m_shouldExist =
false;
80 bool m_shouldBeRelative =
false;
81 bool m_useCommonLabel =
false;
82 bool m_isExtensible =
false;
83 bool m_hasDefault =
false;
84 std::string m_defaultValue;
85 std::vector<std::string> m_valueLabels;
86 std::size_t m_numberOfRequiredValues = 1;
87 std::size_t m_maxNumberOfValues = 0;