peiyongz 2003/10/02 12:21:08 Modified: c/src/xercesc/validators/datatype AbstractNumericFacetValidator.cpp AbstractNumericFacetValidator.hpp AbstractNumericValidator.cpp AbstractNumericValidator.hpp DateDatatypeValidator.cpp DateDatatypeValidator.hpp DateTimeDatatypeValidator.cpp DateTimeDatatypeValidator.hpp DateTimeValidator.cpp DateTimeValidator.hpp DayDatatypeValidator.cpp DayDatatypeValidator.hpp DecimalDatatypeValidator.cpp DecimalDatatypeValidator.hpp DoubleDatatypeValidator.cpp DoubleDatatypeValidator.hpp DurationDatatypeValidator.cpp DurationDatatypeValidator.hpp FloatDatatypeValidator.cpp FloatDatatypeValidator.hpp MonthDatatypeValidator.cpp MonthDatatypeValidator.hpp MonthDayDatatypeValidator.cpp MonthDayDatatypeValidator.hpp TimeDatatypeValidator.cpp TimeDatatypeValidator.hpp YearDatatypeValidator.cpp YearDatatypeValidator.hpp YearMonthDatatypeValidator.cpp YearMonthDatatypeValidator.hpp Log: Implementation of Serialization/Deserialization Revision Changes Path 1.13 +188 -1 xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp Index: AbstractNumericFacetValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- AbstractNumericFacetValidator.cpp 15 May 2003 18:53:26 -0000 1.12 +++ AbstractNumericFacetValidator.cpp 2 Oct 2003 19:21:06 -0000 1.13 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.13 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.12 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -121,6 +124,14 @@ #include <xercesc/validators/datatype/InvalidDatatypeFacetException.hpp> #include <xercesc/util/NumberFormatException.hpp> +//since we need to dynamically created each and every derivatives +//during deserialization by XSerializeEngine>>Derivative, we got +//to include all hpp +#include <xercesc/util/XMLFloat.hpp> +#include <xercesc/util/XMLDouble.hpp> +#include <xercesc/util/XMLBigDecimal.hpp> +#include <xercesc/util/XMLDateTime.hpp> + XERCES_CPP_NAMESPACE_BEGIN const int AbstractNumericFacetValidator::INDETERMINATE = 2; @@ -854,6 +865,182 @@ const RefArrayVectorOf<XMLCh>* AbstractNumericFacetValidator::getEnumString() const { return (fEnumerationInherited? getBaseValidator()->getEnumString() : fStrEnumeration ); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_NOCREATE(AbstractNumericFacetValidator) + +/*** + * This dv needs to serialize/deserialize four boundary data members + * which are derivatives of XMLlNumber. + * The derivatives of this class, namely, Deciamldv, Doubledv, Floatdv and + * DateTimedv needs to write a typeEnum into the binary data stream, so + * during loading, this method reads the typeEnum first, and then instantiate + * the right type of objects, say XMLDouble, XMLFloat, XMLBigDecimal and + * XMLDateTime. + * + * + ***/ +void AbstractNumericFacetValidator::serialize(XSerializeEngine& serEng) +{ + + if (serEng.isStoring()) + { + + DatatypeValidator::serialize(serEng); + + serEng<<fMaxInclusiveInherited; + serEng<<fMaxExclusiveInherited; + serEng<<fMinInclusiveInherited; + serEng<<fMinExclusiveInherited; + serEng<<fEnumerationInherited; + + // need not write type info for the XMLNumber since + // the derivative class has done that + serEng<<fMaxInclusive; + serEng<<fMaxExclusive; + serEng<<fMinInclusive; + serEng<<fMinExclusive; + + /*** + * Serialize RefArrayVectorOf<XMLCh> + ***/ + if (fStrEnumeration) + { + int enumLength = fStrEnumeration->size(); + serEng<<enumLength; + + for ( int i = 0 ; i < enumLength; i++) + { + serEng.writeString(fStrEnumeration->elementAt(i)); + } + } + else + { + serEng<<0; + } + + /*** + * Serialize RefVectorOf<XMLNumber> + ***/ + if (fEnumeration) + { + int enumLength = fEnumeration->size(); + serEng<<enumLength; + + for ( int i=0; i < enumLength; i++) + { + serEng<<fEnumeration->elementAt(i); + } + } + else + { + serEng<<0; + } + + } + else + { + // Read the number type info for the XMLNumber FIRST!!! + int nType; + XMLNumber::NumberType numType; + serEng>>nType; + numType = (XMLNumber::NumberType) nType; + + DatatypeValidator::serialize(serEng); + + serEng>>fMaxInclusiveInherited; + serEng>>fMaxExclusiveInherited; + serEng>>fMinInclusiveInherited; + serEng>>fMinExclusiveInherited; + serEng>>fEnumerationInherited; + + fMaxInclusive=readNumber(numType, serEng); + fMaxExclusive=readNumber(numType, serEng); + fMinInclusive=readNumber(numType, serEng); + fMinExclusive=readNumber(numType, serEng); + + /*** + * Deserialize RefArrayVectorOf<XMLCh> + ***/ + int enumLength = 0;; + serEng>>enumLength; + + if (enumLength) + { + if (!fStrEnumeration) + { + fStrEnumeration = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true, fMemoryManager); + } + + for ( int i = 0; i < enumLength; i++) + { + XMLCh* enumVal; + serEng.readString(enumVal); + fStrEnumeration->addElement(enumVal); + } + } + + /*** + * Deserialize RefVectorOf<XMLNumber> + ***/ + enumLength = 0;; + serEng>>enumLength; + + if (enumLength) + { + if (!fEnumeration) + { + fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(8, true, fMemoryManager); + } + + for ( int i = 0; i < enumLength; i++) + { + fEnumeration->addElement(readNumber(numType, serEng)); + } + } + + } + +} + +XMLNumber* AbstractNumericFacetValidator::readNumber(XMLNumber::NumberType numType + , XSerializeEngine& serEng) +{ + + switch((XMLNumber::NumberType) numType) + { + case XMLNumber::Float: + XMLFloat* floatNum; + serEng>>floatNum; + return floatNum; + break; + case XMLNumber::Double: + XMLDouble* doubleNum; + serEng>>doubleNum; + return doubleNum; + break; + case XMLNumber::BigDecimal: + XMLBigDecimal* bigdecimalNum; + serEng>>bigdecimalNum; + return bigdecimalNum; + break; + case XMLNumber::DateTime: + XMLDateTime* datetimeNum; + serEng>>datetimeNum; + return datetimeNum; + break; + case XMLNumber::UnKnown: + return 0; + break; + default: //we treat this same as UnKnown + return 0; + break; + } + } XERCES_CPP_NAMESPACE_END 1.7 +12 -1 xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp Index: AbstractNumericFacetValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- AbstractNumericFacetValidator.hpp 15 May 2003 18:53:26 -0000 1.6 +++ AbstractNumericFacetValidator.hpp 2 Oct 2003 19:21:06 -0000 1.7 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.7 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.6 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -112,6 +115,11 @@ virtual const RefArrayVectorOf<XMLCh>* getEnumString() const; + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(AbstractNumericFacetValidator) + protected: AbstractNumericFacetValidator @@ -204,6 +212,9 @@ void inspectFacetBase(); void inheritFacet(); + + XMLNumber* readNumber(XMLNumber::NumberType numType + , XSerializeEngine& serEng); }; 1.6 +30 -1 xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.cpp Index: AbstractNumericValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- AbstractNumericValidator.cpp 15 May 2003 18:53:26 -0000 1.5 +++ AbstractNumericValidator.cpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -177,6 +180,32 @@ ThrowXML1(InvalidDatatypeValueException, XMLExcepts::RethrowError, e.getMessage()); } +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_NOCREATE(AbstractNumericValidator) + +void AbstractNumericValidator::serialize(XSerializeEngine& serEng) +{ + AbstractNumericFacetValidator::serialize(serEng); + + /*** + * Need not to do anything else here + * + * Note: its derivatives, Doubledv, Floatdv and Decimaldv writes + * number type info into the binary data stream to be read + * by AbstractNumericFacetVaildator during loading, therefore + * this class can NOT write/read anything into/from the binary + * data stream. + * + * Later on, if this class has to write/read something into/from + * the binary data stream, we need to add a numberType data + * to XMLNumber and let AbstractNumericFacetValidator to write/read + * this number type info. + ***/ } XERCES_CPP_NAMESPACE_END 1.5 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.hpp Index: AbstractNumericValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AbstractNumericValidator.hpp 15 May 2003 18:53:26 -0000 1.4 +++ AbstractNumericValidator.hpp 2 Oct 2003 19:21:06 -0000 1.5 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -100,6 +103,11 @@ //@} virtual void validate(const XMLCh* const content); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(AbstractNumericValidator) protected: 1.8 +15 -1 xml-xerces/c/src/xercesc/validators/datatype/DateDatatypeValidator.cpp Index: DateDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DateDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ DateDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,17 @@ void DateDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseDate(); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DateDatatypeValidator) + +void DateDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DateDatatypeValidator.hpp Index: DateDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DateDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ DateDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DateDatatypeValidator) protected: 1.8 +15 -1 xml-xerces/c/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp Index: DateTimeDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DateTimeDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ DateTimeDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,17 @@ void DateTimeDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseDateTime(); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DateTimeDatatypeValidator) + +void DateTimeDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp Index: DateTimeDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DateTimeDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ DateTimeDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DateTimeDatatypeValidator) protected: 1.10 +28 -1 xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.cpp Index: DateTimeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- DateTimeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.9 +++ DateTimeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.10 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.10 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.9 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -369,6 +372,30 @@ for ( int i = 0; i < enumLength; i++) fEnumeration->insertElementAt(parse(fStrEnumeration->elementAt(i)), i); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_NOCREATE(DateTimeValidator) + +void DateTimeValidator::serialize(XSerializeEngine& serEng) +{ + /*** + * + * Note: All its derivatives share the same number type, that is + * XMLNumber::DateTime, so this class would write it. + ***/ + + if (serEng.isStoring()) + { + serEng<<(int) XMLNumber::DateTime; + } + + AbstractNumericFacetValidator::serialize(serEng); + + //fDateTime can be instantiated during checkContent(), so don't serialize it. } XERCES_CPP_NAMESPACE_END 1.5 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.hpp Index: DateTimeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- DateTimeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.4 +++ DateTimeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.5 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.4 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -103,6 +106,11 @@ virtual int compare(const XMLCh* const value1 , const XMLCh* const value2); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DateTimeValidator) protected: 1.8 +15 -1 xml-xerces/c/src/xercesc/validators/datatype/DayDatatypeValidator.cpp Index: DayDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DayDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DayDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ DayDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,17 @@ void DayDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseDay(); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DayDatatypeValidator) + +void DayDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DayDatatypeValidator.hpp Index: DayDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DayDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DayDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ DayDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DayDatatypeValidator) protected: 1.13 +29 -0 xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp Index: DecimalDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- DecimalDatatypeValidator.cpp 14 Aug 2003 03:00:11 -0000 1.12 +++ DecimalDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.13 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.13 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.12 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -602,6 +605,32 @@ { ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::RethrowError, e.getMessage()); } + +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DecimalDatatypeValidator) + +void DecimalDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + /*** + * Note: + * + * During storing, we need write the specific number + * type info before calling base::serialize(). + * + * While loading, we do nothing here + ***/ + + if (serEng.isStoring()) + { + serEng<<(int) (XMLNumber::BigDecimal); + } + + AbstractNumericValidator::serialize(serEng); } 1.8 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp Index: DecimalDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DecimalDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.7 +++ DecimalDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -156,6 +159,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DecimalDatatypeValidator) protected: 1.7 +30 -1 xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp Index: DoubleDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DoubleDatatypeValidator.cpp 18 May 2003 14:02:07 -0000 1.6 +++ DoubleDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.7 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.7 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.6 2003/05/18 14:02:07 knoaman * Memory manager implementation: pass per instance manager. * @@ -319,6 +322,32 @@ { ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::RethrowError, e.getMessage()); } + +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DoubleDatatypeValidator) + +void DoubleDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + /*** + * Note: + * + * During storing, we need write the specific number + * type info before calling base::serialize(). + * + * While loading, we do nothing here + ***/ + + if (serEng.isStoring()) + { + serEng<<(int) (XMLNumber::Double); + } + + AbstractNumericValidator::serialize(serEng); } 1.5 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp Index: DoubleDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- DoubleDatatypeValidator.hpp 15 May 2003 18:53:26 -0000 1.4 +++ DoubleDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.5 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -151,6 +154,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DoubleDatatypeValidator) protected: 1.8 +15 -1 xml-xerces/c/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp Index: DurationDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DurationDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ DurationDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -163,6 +166,17 @@ , bool strict) { return XMLDateTime::compare(date1, date2, strict); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DurationDatatypeValidator) + +void DurationDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/DurationDatatypeValidator.hpp Index: DurationDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DurationDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DurationDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ DurationDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DurationDatatypeValidator) protected: 1.7 +30 -1 xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp Index: FloatDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- FloatDatatypeValidator.cpp 18 May 2003 14:02:07 -0000 1.6 +++ FloatDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.7 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.7 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.6 2003/05/18 14:02:07 knoaman * Memory manager implementation: pass per instance manager. * @@ -319,6 +322,32 @@ { ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::RethrowError, e.getMessage()); } + +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(FloatDatatypeValidator) + +void FloatDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + /*** + * Note: + * + * During storing, we need write the specific number + * type info before calling base::serialize(). + * + * While loading, we do nothing here + ***/ + + if (serEng.isStoring()) + { + serEng<<(int) (XMLNumber::Float); + } + + AbstractNumericValidator::serialize(serEng); } 1.5 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp Index: FloatDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FloatDatatypeValidator.hpp 15 May 2003 18:53:26 -0000 1.4 +++ FloatDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.5 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -151,6 +154,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(FloatDatatypeValidator) protected: 1.8 +16 -1 xml-xerces/c/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp Index: MonthDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- MonthDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ MonthDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,18 @@ void MonthDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseMonth(); +} + + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(MonthDatatypeValidator) + +void MonthDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/MonthDatatypeValidator.hpp Index: MonthDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/MonthDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MonthDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ MonthDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(MonthDatatypeValidator) protected: 1.8 +16 -1 xml-xerces/c/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp Index: MonthDayDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- MonthDayDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ MonthDayDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,18 @@ void MonthDayDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseMonthDay(); +} + + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(MonthDayDatatypeValidator) + +void MonthDayDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp Index: MonthDayDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MonthDayDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ MonthDayDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(MonthDayDatatypeValidator) protected: 1.8 +15 -1 xml-xerces/c/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp Index: TimeDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- TimeDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ TimeDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,17 @@ void TimeDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseTime(); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(TimeDatatypeValidator) + +void TimeDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/TimeDatatypeValidator.hpp Index: TimeDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/TimeDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- TimeDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ TimeDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -123,6 +126,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(TimeDatatypeValidator) protected: 1.8 +15 -1 xml-xerces/c/src/xercesc/validators/datatype/YearDatatypeValidator.cpp Index: YearDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/YearDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- YearDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ YearDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,17 @@ void YearDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseYear(); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(YearDatatypeValidator) + +void YearDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/YearDatatypeValidator.hpp Index: YearDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/YearDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- YearDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ YearDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(YearDatatypeValidator) protected: 1.8 +16 -1 xml-xerces/c/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp Index: YearMonthDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- YearMonthDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000 1.7 +++ YearMonthDatatypeValidator.cpp 2 Oct 2003 19:21:06 -0000 1.8 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.8 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.7 2003/10/01 16:32:41 neilg * improve handling of out of memory conditions, bug #23415. Thanks to David Cargill. * @@ -156,6 +159,18 @@ void YearMonthDatatypeValidator::parse(XMLDateTime* const pDate) { pDate->parseYearMonth(); +} + + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(YearMonthDatatypeValidator) + +void YearMonthDatatypeValidator::serialize(XSerializeEngine& serEng) +{ + DateTimeValidator::serialize(serEng); } XERCES_CPP_NAMESPACE_END 1.6 +9 -1 xml-xerces/c/src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp Index: YearMonthDatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- YearMonthDatatypeValidator.hpp 14 Aug 2003 03:00:11 -0000 1.5 +++ YearMonthDatatypeValidator.hpp 2 Oct 2003 19:21:06 -0000 1.6 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/10/02 19:21:06 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/08/14 03:00:11 knoaman * Code refactoring to improve performance of validation. * @@ -121,6 +124,11 @@ , const int finalSet , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(YearMonthDatatypeValidator) protected:
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]