diff options
Diffstat (limited to 'xsde/cxx/hybrid/serializer-source.cxx')
-rw-r--r-- | xsde/cxx/hybrid/serializer-source.cxx | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/xsde/cxx/hybrid/serializer-source.cxx b/xsde/cxx/hybrid/serializer-source.cxx index 87004fa..b15a3bf 100644 --- a/xsde/cxx/hybrid/serializer-source.cxx +++ b/xsde/cxx/hybrid/serializer-source.cxx @@ -204,8 +204,22 @@ namespace CXX os << "void " << name << "::" << endl << "_serialize_content ()" - << "{" - << "this->_characters (this->" << state << "->" << + << "{"; + + if (!options.value<CLI::suppress_validation> () && + !options.value<CLI::suppress_serializer_val> ()) + { + // Do facet validation. + // + os << "::xsde::cxx::serializer::validating::string_common::" << + "validate_facets (" << endl + << "this->" << state << "->" << string << " ()," << endl + << "this->_facets ()," << endl + << "this->_context ());" + << endl; + } + + os << "this->_characters (this->" << state << "->" << string << " ());" << "}"; } @@ -1377,6 +1391,16 @@ namespace CXX ctx.os << "#include <string.h>" << endl << endl; + if (ctx.enum_ && + !ctx.options.value<CLI::suppress_validation> () && + !ctx.options.value<CLI::suppress_serializer_val> ()) + { + // We need this functionality for enum mapping. + // + ctx.os << "#include <xsde/cxx/serializer/validating/string-common.hxx>" << endl + << endl; + } + Traversal::Schema schema; Traversal::Sources sources; |