1 /******************************************************************
\r
3 * Copyright 2015 Samsung Electronics All Rights Reserved.
\r
7 * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * you may not use this file except in compliance with the License.
\r
9 * You may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * Unless required by applicable law or agreed to in writing, software
\r
14 * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * See the License for the specific language governing permissions and
\r
17 * limitations under the License.
\r
19 ******************************************************************/
\r
27 #include "ActionType.h"
\r
29 #include "QueryParameter.h"
\r
30 #include "RequestResponseBody.h"
\r
31 #include "UriParameter.h"
\r
32 #include "Response.h"
\r
34 #include "IncludeResolver.h"
\r
41 virtual ActionType getType() const;
\r
42 virtual void setType(const ActionType &type);
\r
43 virtual std::string getDescription() const;
\r
44 virtual void setDescription(const std::string &description);
\r
45 virtual std::map<std::string, HeaderPtr > const &getHeaders() const;
\r
46 virtual void setHeader(const std::string &headerName, const HeaderPtr &header);
\r
47 virtual std::map<std::string, QueryParameterPtr > const &getQueryParameters()const;
\r
48 virtual void setQueryParameter(const std::string ¶mName,
\r
49 const QueryParameterPtr &queryParameter);
\r
51 virtual RequestResponseBodyPtr getRequestBody(const std::string &bodyType);
\r
52 virtual std::map<std::string, RequestResponseBodyPtr> const &getRequestBody() const;
\r
53 virtual void setRequestBody(const std::string &typeName);
\r
54 virtual void setRequestBody(const std::string &typeName , const RequestResponseBodyPtr &body);
\r
56 virtual ResponsePtr getResponse(const std::string &responseCode);
\r
57 virtual std::map<std::string, ResponsePtr> const &getResponses() const;
\r
58 virtual void setResponse(const std::string &responseCode, const ResponsePtr &response);
\r
59 virtual std::list<std::string> const &getProtocols() const;
\r
60 virtual void setProtocol(const std::string &protocol);
\r
61 virtual std::map< std::string, UriParameterPtr > const &getBaseUriParameters() const;
\r
62 virtual void setBaseUriParameter(const std::string ¶mName ,
\r
63 const UriParameterPtr &baseUriParameter);
\r
64 virtual std::list<std::string> const &getTraits() const;
\r
65 virtual void setTrait(const std::string &trait);
\r
68 Action(): m_includeResolver(NULL) { }
\r
69 Action(const ActionType actionType, const YAML::Node &yamlNode,
\r
70 const IncludeResolverPtr &includeResolver)
\r
71 : m_includeResolver(includeResolver)
\r
73 readAction(actionType, yamlNode);
\r
75 Action(const Action &action) = default;
\r
77 virtual void readAction(const ActionType actionType, const YAML::Node &yamlNode);
\r
82 std::string m_description;
\r
83 std::map<std::string, HeaderPtr> m_headers;
\r
84 std::map<std::string, QueryParameterPtr> m_queryParameters;
\r
85 std::map<std::string, RequestResponseBodyPtr> m_requestBody;
\r
86 std::map<std::string, ResponsePtr> m_responses;
\r
87 std::list<std::string> m_protocols;
\r
88 std::map< std::string, UriParameterPtr > m_baseUriParameters;
\r
89 std::list<std::string> m_trait;
\r
92 IncludeResolverPtr m_includeResolver;
\r
95 typedef std::shared_ptr<Action> ActionPtr;
\r