You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2003/08/14 05:00:12 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/datatype DateDatatypeValidator.cpp DateDatatypeValidator.hpp DateTimeDatatypeValidator.cpp DateTimeDatatypeValidator.hpp DateTimeValidator.cpp DateTimeValidator.hpp DayDatatypeValidator.cpp DayDatatypeValidator.hpp DecimalDatatypeValidator.cpp DecimalDatatypeValidator.hpp DurationDatatypeValidator.cpp DurationDatatypeValidator.hpp MonthDatatypeValidator.cpp MonthDatatypeValidator.hpp MonthDayDatatypeValidator.cpp MonthDayDatatypeValidator.hpp TimeDatatypeValidator.cpp TimeDatatypeValidator.hpp YearDatatypeValidator.cpp YearDatatypeValidator.hpp YearMonthDatatypeValidator.cpp YearMonthDatatypeValidator.hpp

knoaman     2003/08/13 20:00:12

  Modified:    c/src/xercesc/validators/datatype DateDatatypeValidator.cpp
                        DateDatatypeValidator.hpp
                        DateTimeDatatypeValidator.cpp
                        DateTimeDatatypeValidator.hpp DateTimeValidator.cpp
                        DateTimeValidator.hpp DayDatatypeValidator.cpp
                        DayDatatypeValidator.hpp
                        DecimalDatatypeValidator.cpp
                        DecimalDatatypeValidator.hpp
                        DurationDatatypeValidator.cpp
                        DurationDatatypeValidator.hpp
                        MonthDatatypeValidator.cpp
                        MonthDatatypeValidator.hpp
                        MonthDayDatatypeValidator.cpp
                        MonthDayDatatypeValidator.hpp
                        TimeDatatypeValidator.cpp TimeDatatypeValidator.hpp
                        YearDatatypeValidator.cpp YearDatatypeValidator.hpp
                        YearMonthDatatypeValidator.cpp
                        YearMonthDatatypeValidator.hpp
  Log:
  Code refactoring to improve performance of validation.
  
  Revision  Changes    Path
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DateDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ DateDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void DateDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseDate();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DateDatatypeValidator.hpp	15 May 2003 18:53:26 -0000	1.4
  +++ DateDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,6 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DateTimeDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ DateTimeDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void DateTimeDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseDateTime();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DateTimeDatatypeValidator.hpp	15 May 2003 18:53:26 -0000	1.4
  +++ DateTimeDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,6 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.8       +62 -58    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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DateTimeValidator.cpp	18 May 2003 14:02:07 -0000	1.7
  +++ DateTimeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.8
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.8  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.7  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -114,7 +117,10 @@
   //  Constructors and Destructor
   // ---------------------------------------------------------------------------
   DateTimeValidator::~DateTimeValidator()
  -{}
  +{
  +    if (fDateTime)
  +        delete fDateTime;
  +}
   
   DateTimeValidator::DateTimeValidator(
                             DatatypeValidator*            const baseValidator
  @@ -123,6 +129,7 @@
                           , const ValidatorType                 type
                           , MemoryManager* const                manager)
   :AbstractNumericFacetValidator(baseValidator, facets, finalSet, type, manager)
  +, fDateTime(0)
   {
       //do not invoke init() here !!!
   }
  @@ -207,78 +214,75 @@
       if (asBase)
           return;
   
  +    // the derived classes' parse() method constructs an
  +    // XMLDateTime object anc invokes appropriate XMLDateTime's
  +    // parser to parse the content.
  +    if (fDateTime)
  +        fDateTime->setBuffer(content);
  +    else
  +        fDateTime = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
  -    {
  -        // the derived classes' parse() method constructs an
  -        // XMLDateTime object anc invokes appropriate XMLDateTime's
  -        // parser to parse the content.
  -        XMLDateTime *theDate = parse(content);
  -        Janitor<XMLDateTime> jname(theDate);
  -        int result;
  +    parse(fDateTime);
   
  -        // must be < MaxExclusive
  -        if ( (thisFacetsDefined & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0 )
  +    // must be < MaxExclusive
  +    if ((thisFacetsDefined & DatatypeValidator::FACET_MAXEXCLUSIVE) != 0)
  +    {
  +        if (compareValues(fDateTime, getMaxExclusive()) != XMLDateTime::LESS_THAN)
           {
  -            result = compareValues(theDate, getMaxExclusive());
  -            if ( result != XMLDateTime::LESS_THAN )
  -            {
  -                REPORT_VALUE_ERROR(theDate
  -                    , getMaxExclusive()
  -                    , XMLExcepts::VALUE_exceed_maxExcl)
  -            }
  -        } 	
  +            REPORT_VALUE_ERROR( fDateTime
  +                              , getMaxExclusive()
  +                              , XMLExcepts::VALUE_exceed_maxExcl)
  +        }
  +    } 	
   
  -        // must be <= MaxInclusive
  -        if ( (thisFacetsDefined & DatatypeValidator::FACET_MAXINCLUSIVE) != 0 )
  +    // must be <= MaxInclusive
  +    if ((thisFacetsDefined & DatatypeValidator::FACET_MAXINCLUSIVE) != 0)
  +    {
  +        int result = compareValues(fDateTime, getMaxInclusive());
  +        if ( result == XMLDateTime::GREATER_THAN || result == XMLDateTime::INDETERMINATE )
           {
  -            result = compareValues(theDate, getMaxInclusive());
  -            if ( result == XMLDateTime::GREATER_THAN || result == XMLDateTime::INDETERMINATE )
  -            {
  -                REPORT_VALUE_ERROR(theDate
  -                    , getMaxInclusive()
  -                    , XMLExcepts::VALUE_exceed_maxIncl)
  -            }
  +            REPORT_VALUE_ERROR( fDateTime
  +                              , getMaxInclusive()
  +                              , XMLExcepts::VALUE_exceed_maxIncl)
           }
  +    }
   
  -        // must be >= MinInclusive
  -        if ( (thisFacetsDefined & DatatypeValidator::FACET_MININCLUSIVE) != 0 )
  +    // must be >= MinInclusive
  +    if ((thisFacetsDefined & DatatypeValidator::FACET_MININCLUSIVE) != 0)
  +    {
  +        int result = compareValues(fDateTime, getMinInclusive());
  +        if (result == XMLDateTime::LESS_THAN || result == XMLDateTime::INDETERMINATE)
           {
  -            result = compareValues(theDate, getMinInclusive());
  -            if (result == XMLDateTime::LESS_THAN || result == XMLDateTime::INDETERMINATE )
  -            {
  -                REPORT_VALUE_ERROR(theDate
  -                    , getMinInclusive()
  -                    , XMLExcepts::VALUE_exceed_minIncl)
  -            }
  +            REPORT_VALUE_ERROR( fDateTime
  +                              , getMinInclusive()
  +                              , XMLExcepts::VALUE_exceed_minIncl)
           }
  +    }
   
  -        // must be > MinExclusive
  -        if ( (thisFacetsDefined & DatatypeValidator::FACET_MINEXCLUSIVE) != 0 )
  +    // must be > MinExclusive
  +    if ( (thisFacetsDefined & DatatypeValidator::FACET_MINEXCLUSIVE) != 0 )
  +    {
  +        if (compareValues(fDateTime, getMinExclusive()) != XMLDateTime::GREATER_THAN)
           {
  -            result = compareValues(theDate, getMinExclusive());
  -            if (result != XMLDateTime::GREATER_THAN)
  -            {
  -                REPORT_VALUE_ERROR(theDate
  -                    , getMinExclusive()
  -                    , XMLExcepts::VALUE_exceed_minExcl)
  -            }
  +            REPORT_VALUE_ERROR( fDateTime
  +                              , getMinExclusive()
  +                              , XMLExcepts::VALUE_exceed_minExcl)
           }
  +    }
   
  -        if ((thisFacetsDefined & DatatypeValidator::FACET_ENUMERATION) != 0 &&
  -            (getEnumeration() != 0))
  +    if ((thisFacetsDefined & DatatypeValidator::FACET_ENUMERATION) != 0 &&
  +        (getEnumeration() != 0))
  +    {
  +        int i=0;
  +        int enumLength = getEnumeration()->size();
  +        for ( ; i < enumLength; i++)
           {
  -            int i=0;
  -            int enumLength = getEnumeration()->size();
  -            for ( ; i < enumLength; i++)
  -            {
  -                if (compareValues(theDate, getEnumeration()->elementAt(i)) == XMLDateTime::EQUAL)
  -                    break;
  -            }
  -
  -            if (i == enumLength)
  -                ThrowXML1(InvalidDatatypeValueException, XMLExcepts::VALUE_NotIn_Enumeration, content);
  +            if (compareValues(fDateTime, getEnumeration()->elementAt(i)) == XMLDateTime::EQUAL)
  +                break;
           }
   
  +        if (i == enumLength)
  +            ThrowXML1(InvalidDatatypeValueException, XMLExcepts::VALUE_NotIn_Enumeration, content);
       }
   }
   
  
  
  
  1.4       +7 -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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DateTimeValidator.hpp	15 May 2003 18:53:26 -0000	1.3
  +++ DateTimeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.4
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.4  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.3  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -151,12 +154,15 @@
       //  helper interface: to be implemented/overwritten by derived class
       // -----------------------------------------------------------------------
       virtual XMLDateTime*   parse(const XMLCh* const) = 0;
  +    virtual void parse(XMLDateTime* const) = 0;
   
       // to be overwritten by duration
       virtual int            compareDates(const XMLDateTime* const lValue
                                         , const XMLDateTime* const rValue
                                         , bool                     strict);
   
  +private:
  +    XMLDateTime* fDateTime;
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DayDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ DayDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void DayDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseDay();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DayDatatypeValidator.hpp	15 May 2003 18:53:26 -0000	1.4
  +++ DayDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,6 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.12      +24 -14    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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- DecimalDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.11
  +++ DecimalDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.12
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.12  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.11  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -169,6 +172,7 @@
   :AbstractNumericValidator(0, 0, 0, DatatypeValidator::Decimal, manager)
   , fTotalDigits(0)
   , fFractionDigits(0)
  +, fCompareData(0)
   {}
   
   DecimalDatatypeValidator::DecimalDatatypeValidator(
  @@ -180,12 +184,16 @@
   :AbstractNumericValidator(baseValidator, facets, finalSet, DatatypeValidator::Decimal, manager)
   , fTotalDigits(0)
   , fFractionDigits(0)
  +, fCompareData(0)
   {
       init(enums);
   }
   
   DecimalDatatypeValidator::~DecimalDatatypeValidator()
  -{}
  +{
  +    if (fCompareData)
  +        delete fCompareData;
  +}
   
   // -----------------------------------------------------------------------
   // Compare methods
  @@ -521,8 +529,10 @@
           return;
   
       try {
  -        XMLBigDecimal theValue(content, fMemoryManager);
  -        XMLBigDecimal *theData = &theValue;
  +        if (fCompareData)
  +            fCompareData->setDecimalValue(content);
  +        else
  +            fCompareData = new (fMemoryManager) XMLBigDecimal(content, fMemoryManager);
   
           if (getEnumeration())
           {
  @@ -530,7 +540,7 @@
               int enumLength = getEnumeration()->size();
               for ( ; i < enumLength; i++)
               {
  -                if (compareValues(theData, (XMLBigDecimal*) getEnumeration()->elementAt(i)) ==0 )
  +                if (compareValues(fCompareData, (XMLBigDecimal*) getEnumeration()->elementAt(i)) ==0 )
                       break;
               }
   
  @@ -538,17 +548,17 @@
                   ThrowXML1(InvalidDatatypeValueException, XMLExcepts::VALUE_NotIn_Enumeration, content);
           }
   
  -        boundsCheck(theData);
  +        boundsCheck(fCompareData);
   
           if ( (thisFacetsDefined & DatatypeValidator::FACET_FRACTIONDIGITS) != 0 )
           {
  -            if ( theData->getScale() > fFractionDigits )
  +            if ( fCompareData->getScale() > fFractionDigits )
               {                
  -                XMLString::binToText(theData->getScale(), value1, BUF_LEN, 10);
  +                XMLString::binToText(fCompareData->getScale(), value1, BUF_LEN, 10);
                   XMLString::binToText(fFractionDigits, value2, BUF_LEN, 10);
                   ThrowXML3(InvalidDatatypeFacetException
                                    , XMLExcepts::VALUE_exceed_fractDigit
  -                                 , theData->getRawData()
  +                                 , fCompareData->getRawData()
                                    , value1
                                    , value2);
               }
  @@ -556,13 +566,13 @@
   
           if ( (thisFacetsDefined & DatatypeValidator::FACET_TOTALDIGITS) != 0 )
           {
  -            if ( theData->getTotalDigit() > fTotalDigits )
  +            if ( fCompareData->getTotalDigit() > fTotalDigits )
               {                
  -                XMLString::binToText(theData->getTotalDigit(), value1, BUF_LEN, 10);
  +                XMLString::binToText(fCompareData->getTotalDigit(), value1, BUF_LEN, 10);
                   XMLString::binToText(fTotalDigits, value2, BUF_LEN, 10);
                   ThrowXML3(InvalidDatatypeFacetException
                                    , XMLExcepts::VALUE_exceed_totalDigit
  -                                 , theData->getRawData()
  +                                 , fCompareData->getRawData()
                                    , value1
                                    , value2);
               }
  @@ -574,13 +584,13 @@
                where i and n are integers such that |i| < 10^totalDigits and 0 <= n <= totalDigits.
               ***/
   
  -            if ( theData->getScale() > fTotalDigits )  
  +            if ( fCompareData->getScale() > fTotalDigits )  
               {                
  -                XMLString::binToText(theData->getScale(), value1, BUF_LEN, 10);
  +                XMLString::binToText(fCompareData->getScale(), value1, BUF_LEN, 10);
                   XMLString::binToText(fTotalDigits, value2, BUF_LEN, 10);
                   ThrowXML3(InvalidDatatypeFacetException
                                    , XMLExcepts::VALUE_exceed_totalDigit
  -                                 , theData->getRawData()
  +                                 , fCompareData->getRawData()
                                    , value1
                                    , value2);
               }
  
  
  
  1.7       +9 -4      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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DecimalDatatypeValidator.hpp	22 May 2003 02:10:52 -0000	1.6
  +++ DecimalDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.7
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.7  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.6  2003/05/22 02:10:52  knoaman
    * Default the memory manager.
    *
  @@ -97,6 +100,8 @@
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  +class XMLBigDecimal;
  +
   class VALIDATORS_EXPORT DecimalDatatypeValidator : public AbstractNumericValidator
   {
   public:
  @@ -221,9 +226,9 @@
       //  Private data members
       //
       // -----------------------------------------------------------------------
  -	 unsigned int         fTotalDigits;
  -	 unsigned int         fFractionDigits;
  -
  +    unsigned int         fTotalDigits;
  +    unsigned int         fFractionDigits;
  +    XMLBigDecimal*       fCompareData;
   };
   
   // -----------------------------------------------------------------------
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DurationDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ DurationDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void DurationDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseDuration();
   }
   
   int DurationDatatypeValidator::compareDates(const XMLDateTime* const date1
  
  
  
  1.5       +5 -2      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DurationDatatypeValidator.hpp	15 May 2003 18:53:26 -0000	1.4
  +++ DurationDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,7 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  -
  +    virtual void                  parse(XMLDateTime* const);
       virtual int                   compareDates(const XMLDateTime* const
                                                , const XMLDateTime* const
                                                , bool                   );
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MonthDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ MonthDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void MonthDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseMonth();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MonthDatatypeValidator.hpp	15 May 2003 18:53:26 -0000	1.4
  +++ MonthDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,6 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MonthDayDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ MonthDayDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void MonthDayDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseMonthDay();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MonthDayDatatypeValidator.hpp	15 May 2003 18:53:26 -0000	1.4
  +++ MonthDayDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,6 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TimeDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ TimeDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void TimeDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseTime();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TimeDatatypeValidator.hpp	15 May 2003 18:53:27 -0000	1.4
  +++ TimeDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -127,6 +130,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- YearDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ YearDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void YearDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseYear();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -2      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- YearDatatypeValidator.hpp	15 May 2003 18:53:27 -0000	1.4
  +++ YearDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,7 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  -};
  +    virtual void                  parse(XMLDateTime* const);};
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  
  1.6       +9 -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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- YearMonthDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  +++ YearMonthDatatypeValidator.cpp	14 Aug 2003 03:00:11 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.5  2003/05/18 14:02:07  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -140,6 +143,11 @@
       }
   
       return pRetDate;
  +}
  +
  +void YearMonthDatatypeValidator::parse(XMLDateTime* const pDate)
  +{
  +    pDate->parseYearMonth();
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.5       +5 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- YearMonthDatatypeValidator.hpp	15 May 2003 18:53:27 -0000	1.4
  +++ YearMonthDatatypeValidator.hpp	14 Aug 2003 03:00:11 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/08/14 03:00:11  knoaman
  + * Code refactoring to improve performance of validation.
  + *
    * Revision 1.4  2003/05/15 18:53:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -125,6 +128,7 @@
       //  implementation of (DateTimeValidator's) virtual interface
       // -----------------------------------------------------------------------
       virtual XMLDateTime*          parse(const XMLCh* const);
  +    virtual void                  parse(XMLDateTime* const);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org