]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/StringType.cpp
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / StringType.cpp
1 #include "StringType.h"\r
2 \r
3 #include "Range.h"\r
4 #include "Limit.h"\r
5 \r
6 #include <limits>\r
7 \r
8 namespace Databoard {\r
9         namespace Type {\r
10 \r
11                 StringType::StringType()\r
12                 {\r
13                         this->length = NULL;\r
14                 }\r
15 \r
16                 StringType::StringType(std::string pattern)\r
17                 {\r
18                         this->pattern = pattern;\r
19                         this->length = NULL;\r
20                 }\r
21 \r
22                 StringType::StringType(std::string pattern, std::string mimeType, Range* length)\r
23                 {\r
24                         this->pattern = pattern;\r
25                         this->mimeType = mimeType;\r
26                         this->length = length;\r
27                 }\r
28 \r
29                 StringType::~StringType()\r
30                 {\r
31                         if(length != NULL)\r
32                         {\r
33                                 delete length;\r
34                         }\r
35                 }\r
36 \r
37                 std::string StringType::getPattern()\r
38                 {\r
39                         return pattern;\r
40                 }\r
41 \r
42                 void StringType::setPattern(std::string pattern)\r
43                 {\r
44                         this->pattern = pattern;\r
45                 }\r
46 \r
47                 std::string StringType::getMimeType()\r
48                 {\r
49                         return mimeType;\r
50                 }\r
51 \r
52                 void StringType::setMimeType(std::string mimeType)\r
53                 {\r
54                         this->mimeType = mimeType;\r
55                 }\r
56 \r
57                 Range* StringType::getLength()\r
58                 {\r
59                         return length;\r
60                 }\r
61 \r
62                 void StringType::setLength(Range* length)\r
63                 {\r
64                         this->length = length;\r
65                 }\r
66 \r
67                 int StringType::minLength()\r
68                 {\r
69                         if(length == NULL) return 0;\r
70 \r
71                         return length->getLower()->getInteger(INT_MAX);\r
72                 }\r
73 \r
74                 int StringType::maxLength()\r
75                 {\r
76                         if(length == NULL) return INT_MAX;\r
77                         \r
78                         return length->getUpper()->getInteger(INT_MIN);\r
79                 }\r
80 \r
81                 std::string StringType::writeOut(int /*indent*/)\r
82                 {\r
83                         std::string s;\r
84 \r
85                         s.append("String");\r
86 \r
87                         bool parenthesis = false;\r
88 \r
89                         if(mimeType.size() > 0)\r
90                         {\r
91                                 s += "(mimeType=\"" + mimeType + "\"";\r
92 \r
93                                 parenthesis = true;\r
94                         }\r
95 \r
96                         if(pattern.size() > 0)\r
97                         {\r
98                                 if(parenthesis == false)\r
99                                 {\r
100                                         s += "(";\r
101                                 }\r
102                                 else\r
103                                 {\r
104                                         s += ", ";\r
105                                 }\r
106 \r
107                                 s += "pattern=\"" + pattern + "\"";\r
108 \r
109                                 parenthesis = true;\r
110                         }\r
111 \r
112                         if(parenthesis == true)\r
113                         {\r
114                                 s += ")";\r
115                         }\r
116 \r
117                         return s;\r
118                 }\r
119         }\r
120 }\r