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]