22 #include "cafObjectAttribute.h"
24 #include <nlohmann/json.hpp>
39 : m_selfHandle( selfHandle )
40 , m_methodHandle( methodHandle )
41 , m_objectFactory( objectFactory )
45 virtual std::string execute(
const std::string& jsonArgumentsString )
const = 0;
47 ObjectFactory* objectFactory()
const {
return m_objectFactory; }
65 : m_documentation(
"" )
70 std::string keyword()
const override {
return m_name; }
71 void setArgumentNames(
const std::vector<std::string>& argumentNames ) { m_argumentNames = argumentNames; }
72 const std::vector<std::string>& argumentNames()
const {
return m_argumentNames; }
74 Type type()
const {
return m_type; }
75 const std::string& documentation()
const {
return m_documentation; }
76 void setDocumentation(
const std::string& documentation ) { m_documentation = documentation; }
78 virtual std::string execute(
const std::string& jsonArgumentsString )
const = 0;
79 virtual std::string schema()
const = 0;
80 virtual nlohmann::json jsonSchema()
const = 0;
83 void setAccessor( std::unique_ptr<MethodAccessorInterface> accessor ) { m_accessor = std::move( accessor ); }
87 void setName(
const std::string& name ) { m_name = name; }
88 void setType( Type type ) { m_type = type; }
91 std::vector<std::string> m_argumentNames;
93 std::string m_documentation;
95 std::unique_ptr<MethodAccessorInterface> m_accessor;
Definition: cafMethodHandle.h:36
Definition: cafMethodHandle.h:56
Definition: cafObjectAttribute.h:27
Definition: cafObjectFactory.h:39
Definition: cafObjectHandle.h:55
Main Caffa namespace.
Definition: __init__.py:1