--- /dev/null
+#include "StringType.h"\r
+\r
+#include "Range.h"\r
+#include "Limit.h"\r
+\r
+#include <limits>\r
+\r
+namespace Databoard {\r
+ namespace Type {\r
+\r
+ StringType::StringType()\r
+ {\r
+ this->length = NULL;\r
+ }\r
+\r
+ StringType::StringType(std::string pattern)\r
+ {\r
+ this->pattern = pattern;\r
+ this->length = NULL;\r
+ }\r
+\r
+ StringType::StringType(std::string pattern, std::string mimeType, Range* length)\r
+ {\r
+ this->pattern = pattern;\r
+ this->mimeType = mimeType;\r
+ this->length = length;\r
+ }\r
+\r
+ StringType::~StringType()\r
+ {\r
+ if(length != NULL)\r
+ {\r
+ delete length;\r
+ }\r
+ }\r
+\r
+ std::string StringType::getPattern()\r
+ {\r
+ return pattern;\r
+ }\r
+\r
+ void StringType::setPattern(std::string pattern)\r
+ {\r
+ this->pattern = pattern;\r
+ }\r
+\r
+ std::string StringType::getMimeType()\r
+ {\r
+ return mimeType;\r
+ }\r
+\r
+ void StringType::setMimeType(std::string mimeType)\r
+ {\r
+ this->mimeType = mimeType;\r
+ }\r
+\r
+ Range* StringType::getLength()\r
+ {\r
+ return length;\r
+ }\r
+\r
+ void StringType::setLength(Range* length)\r
+ {\r
+ this->length = length;\r
+ }\r
+\r
+ int StringType::minLength()\r
+ {\r
+ if(length == NULL) return 0;\r
+\r
+ return length->getLower()->getInteger(INT_MAX);\r
+ }\r
+\r
+ int StringType::maxLength()\r
+ {\r
+ if(length == NULL) return INT_MAX;\r
+ \r
+ return length->getUpper()->getInteger(INT_MIN);\r
+ }\r
+\r
+ std::string StringType::writeOut(int /*indent*/)\r
+ {\r
+ std::string s;\r
+\r
+ s.append("String");\r
+\r
+ bool parenthesis = false;\r
+\r
+ if(mimeType.size() > 0)\r
+ {\r
+ s += "(mimeType=\"" + mimeType + "\"";\r
+\r
+ parenthesis = true;\r
+ }\r
+\r
+ if(pattern.size() > 0)\r
+ {\r
+ if(parenthesis == false)\r
+ {\r
+ s += "(";\r
+ }\r
+ else\r
+ {\r
+ s += ", ";\r
+ }\r
+\r
+ s += "pattern=\"" + pattern + "\"";\r
+\r
+ parenthesis = true;\r
+ }\r
+\r
+ if(parenthesis == true)\r
+ {\r
+ s += ")";\r
+ }\r
+\r
+ return s;\r
+ }\r
+ }\r
+}\r