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 "AbstractParam.h"
\r
28 #include "UriParameter.h"
\r
29 #include "QueryParameter.h"
\r
30 #include "FormParameter.h"
\r
33 #include "RequestResponseBody.h"
\r
34 #include "RamlResource.h"
\r
35 #include "ActionType.h"
\r
37 #include "Response.h"
\r
39 #include "IncludeResolver.h"
\r
41 #include "DocumentationItem.h"
\r
42 #include "yaml-cpp/yaml.h"
\r
52 virtual std::string getTitle() const;
\r
53 virtual void setTitle(const std::string &title);
\r
55 virtual std::string getVersion() const;
\r
56 virtual void setVersion(const std::string &version);
\r
58 virtual std::string getBaseUri() const;
\r
59 virtual void setBaseUri(const std::string &baseUri);
\r
61 virtual std::list<std::string> getProtocols() const;
\r
62 virtual void setProtocol(const std::string &protocol);
\r
65 virtual std::map<std::string, UriParameter> getBaseUriParameters() const;
\r
66 virtual void setBaseUriParameter(const std::string ¶mName, const UriParameter &uriParameter);
\r
68 virtual std::string getMediaType() const;
\r
69 virtual void setMediaType(const std::string &mediaType);
\r
71 virtual std::list<std::pair<std::string, Schema> > getSchemas() const;
\r
72 virtual void setSchema(const std::pair<std::string, Schema> &schema);
\r
74 virtual std::list<std::pair<std::string, RamlResource> > getResourceTypes() const;
\r
75 virtual void setResourceType(const std::pair<std::string, RamlResource> &resourceType);
\r
77 virtual std::list<std::pair<std::string, Action> > getTraits() const;
\r
78 virtual void setTrait(const std::pair<std::string, Action> &trait);
\r
80 virtual RamlResource &getResource(std::string resourceName);
\r
81 virtual std::map<std::string, RamlResource> getResources() const;
\r
82 virtual void setResource(const std::string &resourceKey, const RamlResource &resource);
\r
84 virtual void setDocumentationItem(const DocumentationItem &documentationItem);
\r
85 virtual std::list<DocumentationItem> getDocumentation() const;
\r
87 void readRamlFromYaml(const YAML::Node &yamlNode);
\r
88 Raml() : m_includeResolver(new IncludeResolver()) {}
\r
89 Raml(std::string &resourceLocation) : m_includeResolver(new IncludeResolver(resourceLocation)) {}
\r
91 std::string m_title;
\r
92 std::string m_version;
\r
93 std::string m_baseUri;
\r
94 std::list<std::string> m_protocols;
\r
95 std::map<std::string, UriParameter> m_baseUriParameters;
\r
96 std::string m_mediaType;
\r
97 std::list <std::pair<std::string, Schema> > m_schemas;
\r
98 std::list <std::pair<std::string, RamlResource> > m_resourceTypes;
\r
99 std::list <std::pair<std::string, Action> > m_traits;
\r
100 std::map<std::string, RamlResource> m_resources;
\r
101 std::list<DocumentationItem> m_documentation;
\r
102 IncludeResolver *m_includeResolver;
\r
105 typedef std::shared_ptr<Raml> RamlPtr;
\r