use more TypeId enum v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun, 22 Jul 2018 10:26:22 +0200
branchv_0
changeset 15 8fd6c4d44071
parent 14 733334eca89b
child 16 3613617d3076
use more TypeId enum
include/RelationalWriter.h
src/DataTypeWriter.h
src/DataTypeWriterBase.h
src/StreamRelationalWriter.h
src/format.h
src/types/BooleanDataTypeWriter.h
src/types/IntegerDataTypeWriter.h
src/types/StringDataTypeWriter.h
--- a/include/RelationalWriter.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/include/RelationalWriter.h	Sun Jul 22 10:26:22 2018 +0200
@@ -15,9 +15,9 @@
 
 	virtual ~RelationalWriter() = default;
 
-	virtual integer_t toTypeId(const string_t typeCode) = 0;
+	virtual TypeId toTypeId(const string_t typeCode) = 0;
 
-	virtual string_t toTypeCode(const integer_t typeId) = 0;
+	virtual string_t toTypeCode(const TypeId typeId) = 0;
 
 	virtual void startRelation(string_t name, std::vector<std::pair<string_t, TypeId>> attributes, boolean_t writeHeader) = 0;
 
--- a/src/DataTypeWriter.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/DataTypeWriter.h	Sun Jul 22 10:26:22 2018 +0200
@@ -8,7 +8,7 @@
 template<typename T> class DataTypeWriter : public DataTypeWriterBase {
 public:
 
-	DataTypeWriter(const integer_t typeId, const string_t typeCode) : DataTypeWriterBase(typeId, typeCode) {
+	DataTypeWriter(const TypeId typeId, const string_t typeCode) : DataTypeWriterBase(typeId, typeCode) {
 	}
 
 	virtual ~DataTypeWriter() {
--- a/src/DataTypeWriterBase.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/DataTypeWriterBase.h	Sun Jul 22 10:26:22 2018 +0200
@@ -11,11 +11,11 @@
  */
 class DataTypeWriterBase {
 private:
-	const integer_t typeId;
+	const TypeId typeId;
 	const string_t typeCode;
 public:
 
-	DataTypeWriterBase(const integer_t typeId, const string_t typeCode) :
+	DataTypeWriterBase(const TypeId typeId, const string_t typeCode) :
 	typeId(typeId), typeCode(typeCode) {
 	}
 
@@ -35,7 +35,7 @@
 	 * @param dataType data type code as defined in DDP L0
 	 * @return whether this class supports conversions of this type
 	 */
-	virtual bool supports(const integer_t &dataType) {
+	virtual bool supports(const TypeId &dataType) {
 		return dataType == typeId;
 	}
 
@@ -47,7 +47,7 @@
 		return dataType == typeCode;
 	}
 
-	integer_t getTypeId() {
+	TypeId getTypeId() {
 		return typeId;
 	}
 
--- a/src/StreamRelationalWriter.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/StreamRelationalWriter.h	Sun Jul 22 10:26:22 2018 +0200
@@ -23,20 +23,20 @@
 	types::IntegerDataTypeWriter integerWriter;
 	types::StringDataTypeWriter stringWriter;
 	vector<DataTypeWriterBase*> writers = {&booleanWriter, &integerWriter, &stringWriter};
-	
+
 	/**
 	 * count of columns in the current table
 	 */
 	integer_t columnCount;
-	
+
 	/**
 	 * types of columns in the current table
 	 */
-	vector<integer_t> columnTypes;
+	vector<TypeId> columnTypes;
 
-	void writeString(const string_t &stringValue, const integer_t typeId) {
+	void writeString(const string_t &stringValue, const TypeId typeId) {
 		for (DataTypeWriterBase* writer : writers) if (writer->supports(typeId)) return writer->writeString(output, stringValue);
-		throw RelpipeWriterException(L"Unsupported data type: " + typeId);
+		throw RelpipeWriterException(L"Unsupported data type: " + static_cast<integer_t>(typeId));
 	}
 
 public:
@@ -45,16 +45,16 @@
 	output(output) {
 	}
 
-	integer_t toTypeId(const string_t typeCode) override {
+	TypeId toTypeId(const string_t typeCode) override {
 		for (DataTypeWriterBase* writer : writers) if (writer->supports(typeCode)) return writer->getTypeId();
 		throw RelpipeWriterException(L"Unsupported data type: " + typeCode);
 	}
 
-	string_t toTypeCode(const integer_t typeId) override {
+	string_t toTypeCode(const TypeId typeId) override {
 		for (DataTypeWriterBase* writer : writers) if (writer->supports(typeId)) return writer->getTypeCode();
-		throw RelpipeWriterException(L"Unsupported data type: " + typeId);
+		throw RelpipeWriterException(L"Unsupported data type: " + static_cast<integer_t>(typeId));
 	}
-
+	
 	void startRelation(string_t name, std::vector<std::pair<string_t, TypeId> > attributes, boolean_t writeHeader) override {
 		string_t tableName = name;
 		columnCount = attributes.size();
@@ -69,14 +69,14 @@
 
 		// Write column names:
 		for (size_t c = 0; c < columnCount; c++) {
-			wstring columnName = attributes[c].first;			
+			wstring columnName = attributes[c].first;
 			stringWriter.writeValue(output, columnName);
 		}
 
 		// Write column types:
 		for (size_t c = 0; c < columnCount; c++) {
-			integer_t typeId = static_cast<integer_t>(attributes[c].second);
-			integerWriter.writeValue(output, typeId);
+			TypeId typeId = attributes[c].second;
+			integerWriter.writeValue(output, static_cast<integer_t>(typeId));
 			columnTypes[c] = typeId;
 		}
 
@@ -91,7 +91,7 @@
 			}
 
 			wstring stringValue = attributes[c];
-			integer_t typeId = columnTypes[c % columnCount];
+			TypeId typeId = columnTypes[c % columnCount];
 			writeString(stringValue, typeId);
 		}
 	}
--- a/src/format.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/format.h	Sun Jul 22 10:26:22 2018 +0200
@@ -8,10 +8,6 @@
 namespace relpipe {
 namespace writer {
 
-const integer_t DATA_TYPE_ID_BOOLEAN = static_cast<integer_t>(TypeId::BOOLEAN);
-const integer_t DATA_TYPE_ID_INTEGER = static_cast<integer_t>(TypeId::INTEGER);
-const integer_t DATA_TYPE_ID_STRING = static_cast<integer_t>(TypeId::STRING);
-
 const string_t DATA_TYPE_CODE_BOOLEAN = L"boolean";
 const string_t DATA_TYPE_CODE_INTEGER = L"integer";
 const string_t DATA_TYPE_CODE_STRING = L"string";
--- a/src/types/BooleanDataTypeWriter.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/types/BooleanDataTypeWriter.h	Sun Jul 22 10:26:22 2018 +0200
@@ -19,7 +19,7 @@
 	const string_t FALSE = L"false";
 public:
 
-	BooleanDataTypeWriter() : DataTypeWriter<boolean_t>(DATA_TYPE_ID_BOOLEAN, DATA_TYPE_CODE_BOOLEAN) {
+	BooleanDataTypeWriter() : DataTypeWriter<boolean_t>(TypeId::BOOLEAN, DATA_TYPE_CODE_BOOLEAN) {
 	}
 
 	void writeValue(std::ostream &output, const boolean_t &value) override {
--- a/src/types/IntegerDataTypeWriter.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/types/IntegerDataTypeWriter.h	Sun Jul 22 10:26:22 2018 +0200
@@ -82,7 +82,7 @@
 
 public:
 
-	IntegerDataTypeWriter() : DataTypeWriter<integer_t>(DATA_TYPE_ID_INTEGER, DATA_TYPE_CODE_INTEGER) {
+	IntegerDataTypeWriter() : DataTypeWriter<integer_t>(TypeId::INTEGER, DATA_TYPE_CODE_INTEGER) {
 	}
 
 	void writeValue(std::ostream &output, const integer_t &value) override {
--- a/src/types/StringDataTypeWriter.h	Sun Jul 22 00:08:13 2018 +0200
+++ b/src/types/StringDataTypeWriter.h	Sun Jul 22 10:26:22 2018 +0200
@@ -26,7 +26,7 @@
 	std::wstring_convert<std::codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings.
 public:
 
-	StringDataTypeWriter() : DataTypeWriter<string_t>(DATA_TYPE_ID_STRING, DATA_TYPE_CODE_STRING) {
+	StringDataTypeWriter() : DataTypeWriter<string_t>(TypeId::STRING, DATA_TYPE_CODE_STRING) {
 	}
 
 	void writeValue(std::ostream &output, const string_t &value) override {