Merge branch 'master' into simulator
[platform/upstream/iotivity.git] / service / simulator / ramlparser / raml / RamlParser.h
1 /******************************************************************\r
2  *\r
3  * Copyright 2015 Samsung Electronics All Rights Reserved.\r
4  *\r
5  *\r
6  *\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
10  *\r
11  *              http://www.apache.org/licenses/LICENSE-2.0\r
12  *\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
18  *\r
19  ******************************************************************/\r
20 \r
21 #ifndef RAML_PARSER_H\r
22 #define RAML_PARSER_H\r
23 \r
24 #include "yaml-cpp/yaml.h"\r
25 #include "Raml.h"\r
26 #include "Utils.h"\r
27 #include "RequestResponseBody.h"\r
28 #include "RamlResource.h"\r
29 #include "Action.h"\r
30 #include "Response.h"\r
31 #include <map>\r
32 \r
33 namespace RAML\r
34 {\r
35     class RamlParser\r
36     {\r
37         private:\r
38             void setDataFromRoot();\r
39             void setBodyDefaultMediaType(std::map<std::string, RamlResource> resource);\r
40             void setBodySchema(std::map<std::string, RamlResource> resource);\r
41             void setTypes(std::map<std::string, RamlResource> resource);\r
42             void setTraits(std::map<std::string, RamlResource> resource);\r
43 \r
44         public:\r
45             virtual RamlPtr build();\r
46             virtual RamlPtr getRamlPtr();\r
47             RamlParser(): m_ramlPtr(new Raml()) {}\r
48             RamlParser(std::string &fileLocation,\r
49                        std::string &ramlName): m_ramlPtr(new Raml(fileLocation)) ,\r
50                 m_fileLocation(fileLocation) , m_ramlName(ramlName) {}\r
51         private:\r
52 \r
53             RamlPtr m_ramlPtr;\r
54             std::string m_fileLocation;\r
55             std::string m_ramlName;\r
56     };\r
57 \r
58 }\r
59 #endif\r