Adding JsonSchema parser implementation for simulator and Updating Raml Parser.
[platform/upstream/iotivity.git] / service / simulator / ramlparser / raml / model / AbstractParam.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 ABSTRACT_PARAM_H\r
22 #define ABSTRACT_PARAM_H\r
23 \r
24 \r
25 #include <map>\r
26 #include <list>\r
27 #include <string>\r
28 #include "Utils.h"\r
29 \r
30 \r
31 namespace RAML\r
32 {\r
33     class AbstractParam\r
34     {\r
35         public:\r
36             virtual std::string getDefaultValue() const;\r
37             virtual void setDefaultValue(const std::string &defaultValue);\r
38 \r
39             virtual std::string getDescription() const;\r
40             virtual void setDescription(const std::string &description);\r
41 \r
42             virtual std::string getDisplayName() const;\r
43             virtual void setDisplayName(const std::string &displayName);\r
44 \r
45             virtual std::list<std::string> getEnumeration() const;\r
46             virtual void setEnumeration(const std::string &enumeration);\r
47 \r
48             virtual std::string getExample() const;\r
49             virtual void setExample(const std::string &example);\r
50 \r
51             virtual int getMaxLength() const;\r
52             virtual void setMaxLength(int maxLength);\r
53 \r
54             virtual int getMaximum() const;\r
55             virtual void setMaximum(int maximum);\r
56 \r
57             virtual int getMinLength() const;\r
58             virtual void setMinLength(int minLength);\r
59 \r
60             virtual int getMinimum() const;\r
61             virtual void setMinimum(int minimum);\r
62 \r
63             virtual std::string getPattern() const;\r
64             virtual void setPattern(const std::string &pattern) ;\r
65 \r
66             virtual std::string getType() const;\r
67             virtual void setType(const std::string &type);\r
68 \r
69             virtual bool isRepeat() const;\r
70             virtual void setRepeat(bool repeat);\r
71 \r
72             virtual bool isRequired() const;\r
73             virtual void setRequired(bool required);\r
74 \r
75 \r
76             AbstractParam() : m_maximum(0), m_minimum(0), m_minLength(0), m_maxLength(0), m_repeat(false),\r
77                 m_required(false) {}\r
78             AbstractParam(const YAML::Node &yamlNode) : m_maximum(0), m_minimum(0), m_minLength(0),\r
79                 m_maxLength(0), m_repeat(false), m_required(false)\r
80             {\r
81                 readParameters(yamlNode);\r
82             }\r
83         private:\r
84             virtual void readParameters(const YAML::Node &yamlNode);\r
85 \r
86         private:\r
87             std::string m_defaultValue;\r
88             std::string m_description;\r
89             std::string m_displayName;\r
90             std::list<std::string> m_enumeration;\r
91             std::string m_example;\r
92             int m_maxLength;\r
93             int m_maximum;\r
94             int m_minLength;\r
95             int m_minimum;\r
96             std::string m_pattern;\r
97             bool m_repeat;\r
98             bool m_required;\r
99             std::string m_type;\r
100 \r
101 \r
102     };\r
103 \r
104 }\r
105 #endif\r