14 #ifndef smtk_attribute_DateTimeItem_h
15 #define smtk_attribute_DateTimeItem_h
17 #include "smtk/CoreExports.h"
18 #include "smtk/attribute/CopyAssignmentOptions.h"
19 #include "smtk/attribute/Item.h"
20 #include "smtk/common/DateTimeZonePair.h"
28 class DateTimeItemDefinition;
38 std::size_t numberOfValues()
const {
return m_values.size(); }
39 bool setNumberOfValues(std::size_t newSize);
40 std::size_t numberOfRequiredValues()
const;
43 return m_values[element];
45 bool setValue(const ::smtk::common::DateTimeZonePair& val) {
return this->setValue(0, val); }
46 bool setValue(std::size_t element, const ::smtk::common::DateTimeZonePair& val);
47 void reset()
override;
48 virtual bool setToDefault(std::size_t elementIndex = 0);
50 virtual bool isUsingDefault(std::size_t elementIndex)
const;
52 virtual bool isUsingDefault()
const;
53 bool hasDefault()
const;
54 virtual bool isSet(std::size_t element = 0)
const
56 return m_isSet.size() > element ? m_isSet[element] :
false;
59 virtual void unset(std::size_t element = 0)
61 assert(m_isSet.size() > element);
62 m_isSet[element] =
false;
78 bool isValidInternal(
bool useCategories,
const std::set<std::string>& categories)
const override;
79 std::vector<::smtk::common::DateTimeZonePair> m_values;
80 std::vector<bool> m_isSet;