aboutsummaryrefslogtreecommitdiffstats
path: root/src/headerFieldFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/headerFieldFactory.cpp')
-rw-r--r--src/headerFieldFactory.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/headerFieldFactory.cpp b/src/headerFieldFactory.cpp
index e1c725c0..7e021f59 100644
--- a/src/headerFieldFactory.cpp
+++ b/src/headerFieldFactory.cpp
@@ -126,7 +126,7 @@ ref <headerFieldValue> headerFieldFactory::createValue(const string& fieldName)
ref <headerFieldValue> value = NULL;
if (pos != m_valueMap.end())
- value = ((*pos).second)();
+ value = ((*pos).second.allocFunc)();
else
value = registerer <headerFieldValue, text>::creator();
@@ -134,5 +134,18 @@ ref <headerFieldValue> headerFieldFactory::createValue(const string& fieldName)
}
+bool headerFieldFactory::isValueTypeValid
+ (const headerField& field, const headerFieldValue& value) const
+{
+ ValueMap::const_iterator pos = m_valueMap.find
+ (utility::stringUtils::toLower(field.getName()));
+
+ if (pos != m_valueMap.end())
+ return ((*pos).second.checkTypeFunc)(value);
+
+ return true; // No info on this field
+}
+
+
} // vmime