From a91cd72829a589e920f405ad6c7ee5b54850e8c6 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 31 Dec 2016 09:53:42 -0500 Subject: [PATCH] ColType*: Push the ::validate and ::modify methods down from Column --- src/columns/ColTypeDate.cpp | 6 ++++++ src/columns/ColTypeDate.h | 1 + src/columns/ColTypeDuration.cpp | 6 ++++++ src/columns/ColTypeDuration.h | 1 + src/columns/ColTypeNumeric.cpp | 6 ++++++ src/columns/ColTypeNumeric.h | 1 + src/columns/ColTypeString.cpp | 6 ++++++ src/columns/ColTypeString.h | 1 + src/columns/Column.cpp | 6 ------ src/columns/Column.h | 2 +- 10 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/columns/ColTypeDate.cpp b/src/columns/ColTypeDate.cpp index 8aab66b62..e2f19d56f 100644 --- a/src/columns/ColTypeDate.cpp +++ b/src/columns/ColTypeDate.cpp @@ -204,6 +204,12 @@ void ColumnTypeDate::render ( } } +//////////////////////////////////////////////////////////////////////////////// +bool ColumnTypeDate::validate (const std::string& input) const +{ + return input.length () ? true : false; +} + //////////////////////////////////////////////////////////////////////////////// void ColumnTypeDate::modify (Task& task, const std::string& value) { diff --git a/src/columns/ColTypeDate.h b/src/columns/ColTypeDate.h index 4b9b8bed5..7480fcac5 100644 --- a/src/columns/ColTypeDate.h +++ b/src/columns/ColTypeDate.h @@ -39,6 +39,7 @@ public: ColumnTypeDate (); virtual void measure (Task&, unsigned int&, unsigned int&); virtual void render (std::vector &, Task&, int, Color&); + virtual bool validate (const std::string&) const; virtual void modify (Task&, const std::string&); }; diff --git a/src/columns/ColTypeDuration.cpp b/src/columns/ColTypeDuration.cpp index 357641bd5..973d69361 100644 --- a/src/columns/ColTypeDuration.cpp +++ b/src/columns/ColTypeDuration.cpp @@ -43,6 +43,12 @@ ColumnTypeDuration::ColumnTypeDuration () _type = "duration"; } +//////////////////////////////////////////////////////////////////////////////// +bool ColumnTypeDuration::validate (const std::string& input) const +{ + return input.length () ? true : false; +} + //////////////////////////////////////////////////////////////////////////////// void ColumnTypeDuration::modify (Task& task, const std::string& value) { diff --git a/src/columns/ColTypeDuration.h b/src/columns/ColTypeDuration.h index 9a38b796b..f1f81a131 100644 --- a/src/columns/ColTypeDuration.h +++ b/src/columns/ColTypeDuration.h @@ -35,6 +35,7 @@ class ColumnTypeDuration : public Column { public: ColumnTypeDuration (); + virtual bool validate (const std::string&) const; virtual void modify (Task&, const std::string&); }; diff --git a/src/columns/ColTypeNumeric.cpp b/src/columns/ColTypeNumeric.cpp index 725fbe8b9..a79083780 100644 --- a/src/columns/ColTypeNumeric.cpp +++ b/src/columns/ColTypeNumeric.cpp @@ -43,6 +43,12 @@ ColumnTypeNumeric::ColumnTypeNumeric () _type = "numeric"; } +//////////////////////////////////////////////////////////////////////////////// +bool ColumnTypeNumeric::validate (const std::string& input) const +{ + return input.length () ? true : false; +} + //////////////////////////////////////////////////////////////////////////////// void ColumnTypeNumeric::modify (Task& task, const std::string& value) { diff --git a/src/columns/ColTypeNumeric.h b/src/columns/ColTypeNumeric.h index 1da8f0b83..52e1b5de2 100644 --- a/src/columns/ColTypeNumeric.h +++ b/src/columns/ColTypeNumeric.h @@ -35,6 +35,7 @@ class ColumnTypeNumeric : public Column { public: ColumnTypeNumeric (); + virtual bool validate (const std::string&) const; virtual void modify (Task&, const std::string&); }; diff --git a/src/columns/ColTypeString.cpp b/src/columns/ColTypeString.cpp index 18d3f67d1..cee564589 100644 --- a/src/columns/ColTypeString.cpp +++ b/src/columns/ColTypeString.cpp @@ -43,6 +43,12 @@ ColumnTypeString::ColumnTypeString () _type = "string"; } +//////////////////////////////////////////////////////////////////////////////// +bool ColumnTypeString::validate (const std::string& input) const +{ + return input.length () ? true : false; +} + //////////////////////////////////////////////////////////////////////////////// void ColumnTypeString::modify (Task& task, const std::string& value) { diff --git a/src/columns/ColTypeString.h b/src/columns/ColTypeString.h index 0f6d22164..8bc0c490d 100644 --- a/src/columns/ColTypeString.h +++ b/src/columns/ColTypeString.h @@ -35,6 +35,7 @@ class ColumnTypeString : public Column { public: ColumnTypeString (); + virtual bool validate (const std::string&) const; virtual void modify (Task&, const std::string&); }; diff --git a/src/columns/Column.cpp b/src/columns/Column.cpp index 2f7dc834c..89744677c 100644 --- a/src/columns/Column.cpp +++ b/src/columns/Column.cpp @@ -283,12 +283,6 @@ void Column::setStyle (const std::string& style) _style = style; } -//////////////////////////////////////////////////////////////////////////////// -bool Column::validate (const std::string& input) const -{ - return input.length () ? true : false; -} - //////////////////////////////////////////////////////////////////////////////// // All integer values are right-justified. void Column::renderInteger ( diff --git a/src/columns/Column.h b/src/columns/Column.h index a5e2e0c00..9290d7a21 100644 --- a/src/columns/Column.h +++ b/src/columns/Column.h @@ -57,12 +57,12 @@ public: virtual void setLabel (const std::string& value) { _label = value; } virtual void setReport (const std::string& value) { _report = value; } - virtual bool validate (const std::string&) const; virtual void measure (const std::string&, unsigned int&, unsigned int&) {}; virtual void measure (Task&, unsigned int&, unsigned int&) {}; virtual void renderHeader (std::vector &, int, Color&); virtual void render (std::vector &, const std::string&, int, Color&) {}; virtual void render (std::vector &, Task&, int, Color&) {}; + virtual bool validate (const std::string&) const {return false;}; virtual void modify (Task&, const std::string&) {}; protected: