10 class FieldCapability;
25 std::string keyword()
const {
return m_keyword; }
29 virtual std::string dataType()
const = 0;
32 void addCapability( std::unique_ptr<FieldCapability> capability );
34 template <
typename CapabilityType>
35 CapabilityType* capability();
36 template <
typename CapabilityType>
37 const CapabilityType* capability()
const;
61 bool isDeprecated()
const;
62 void markDeprecated();
64 void setDocumentation(
const std::string& documentation );
65 const std::string& documentation()
const;
68 bool isInitialized()
const {
return m_ownerObject !=
nullptr; }
70 std::list<FieldCapability*> capabilities();
77 void setKeyword(
const std::string& keyword );
80 std::string m_keyword;
82 std::list<std::unique_ptr<FieldCapability>> m_capabilities;
86 std::string m_documentation;
92 template <
typename CapabilityType>
93 CapabilityType* FieldHandle::capability()
95 for (
auto& capabilityPtr : m_capabilities )
97 CapabilityType* capability =
dynamic_cast<CapabilityType*
>( capabilityPtr.get() );
98 if ( capability )
return capability;
106 template <
typename CapabilityType>
107 const CapabilityType* FieldHandle::capability()
const 109 for (
const auto& capabilityPtr : m_capabilities )
111 const CapabilityType* capability =
dynamic_cast<const CapabilityType*
>( capabilityPtr.get() );
112 if ( capability )
return capability;
virtual bool isReadable() const =0
Definition: cafVisitor.h:49
Definition: cafObjectHandle.h:47
Base class for all fields, making it possible to handle them generically.
Definition: cafFieldHandle.h:19
virtual bool isWritable() const =0
virtual void accept(Inspector *visitor) const =0
Definition: cafVisitor.h:32
Main Caffa namespace.
Definition: cafApplication.h:30