sandygao    2003/01/16 10:34:04

  Modified:    java/src/org/apache/xerces/impl/dv/xs
                        AbstractDateTimeDV.java DateDV.java DayDV.java
                        MonthDayDV.java MonthDV.java TimeDV.java
                        YearDV.java YearMonthDV.java
  Log:
  Generate correct canonical lexical representation for date-time types.
  
  Revision  Changes    Path
  1.8       +33 -8     
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java
  
  Index: AbstractDateTimeDV.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AbstractDateTimeDV.java   18 Nov 2002 23:10:10 -0000      1.7
  +++ AbstractDateTimeDV.java   16 Jan 2003 18:34:03 -0000      1.8
  @@ -690,21 +690,46 @@
   
       protected String dateToString(int[] date) {
           StringBuffer message = new StringBuffer(25);
  -        message.append(date[CY]);
  +        append(message, date[CY], 4);
           message.append('-');
  -        message.append(date[M]);
  +        append(message, date[M], 2);
           message.append('-');
  -        message.append(date[D]);
  +        append(message, date[D], 2);
           message.append('T');
  -        message.append(date[h]);
  +        append(message, date[h], 2);
           message.append(':');
  -        message.append(date[m]);
  +        append(message, date[m], 2);
           message.append(':');
  -        message.append(date[s]);
  +        append(message, date[s], 2);
           message.append('.');
           message.append(date[ms]);
  -        message.append((char)date[utc]);
  +        append(message, (char)date[utc], 0);
           return message.toString();
  +    }
  +    
  +    protected void append(StringBuffer message, int value, int nch) {
  +        if (value < 0) {
  +            message.append('-');
  +            value = -value;
  +        }
  +        if (nch == 4) {
  +            if (value < 10)
  +                message.append("000");
  +            else if (value < 100)
  +                message.append("00");
  +            else if (value < 1000)
  +                message.append("0");
  +            message.append(value);
  +        }
  +        else if (nch == 2) {
  +            if (value < 10)
  +                message.append('0');
  +            message.append(value);
  +        }
  +        else {
  +            if (value != 0)
  +                message.append((char)value);
  +        }
       }
   
       //
  
  
  
  1.8       +12 -1     xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DateDV.java
  
  Index: DateDV.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DateDV.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DateDV.java       20 Nov 2002 00:49:47 -0000      1.7
  +++ DateDV.java       16 Jan 2003 18:34:04 -0000      1.8
  @@ -105,4 +105,15 @@
           return date;
       }
   
  +    protected String dateToString(int[] date) {
  +        StringBuffer message = new StringBuffer(25);
  +        append(message, date[CY], 4);
  +        message.append('-');
  +        append(message, date[M], 2);
  +        message.append('-');
  +        append(message, date[D], 2);
  +        append(message, (char)date[utc], 0);
  +        return message.toString();
  +    }
  +
   }
  
  
  
  1.7       +3 -3      xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DayDV.java
  
  Index: DayDV.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DayDV.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DayDV.java        18 Nov 2002 23:10:10 -0000      1.6
  +++ DayDV.java        16 Jan 2003 18:34:04 -0000      1.7
  @@ -135,8 +135,8 @@
           message.append('-');
           message.append('-');
           message.append('-');
  -        message.append(date[D]);
  -        message.append((char)date[utc]);
  +        append(message, date[D], 2);
  +        append(message, (char)date[utc], 0);
           return message.toString();
       }
   
  
  
  
  1.7       +4 -4      xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDayDV.java
  
  Index: MonthDayDV.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDayDV.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MonthDayDV.java   18 Nov 2002 23:10:10 -0000      1.6
  +++ MonthDayDV.java   16 Jan 2003 18:34:04 -0000      1.7
  @@ -146,10 +146,10 @@
           StringBuffer message = new StringBuffer(8);
           message.append('-');
           message.append('-');
  -        message.append(date[M]);
  +        append(message, date[M], 2);
           message.append('-');
  -        message.append(date[D]);
  -        message.append((char)date[utc]);
  +        append(message, date[D], 2);
  +        append(message, (char)date[utc], 0);
           return message.toString();
       }
   
  
  
  
  1.9       +3 -3      xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDV.java
  
  Index: MonthDV.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDV.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- MonthDV.java      18 Nov 2002 23:10:10 -0000      1.8
  +++ MonthDV.java      16 Jan 2003 18:34:04 -0000      1.9
  @@ -185,8 +185,8 @@
           StringBuffer message = new StringBuffer(5);
           message.append('-');
           message.append('-');
  -        message.append(date[M]);
  -        message.append((char)date[utc]);
  +        append(message, date[M], 2);
  +        append(message, (char)date[utc], 0);
           return message.toString();
       }
   
  
  
  
  1.7       +5 -5      xml-xerces/java/src/org/apache/xerces/impl/dv/xs/TimeDV.java
  
  Index: TimeDV.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/TimeDV.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TimeDV.java       18 Nov 2002 23:10:10 -0000      1.6
  +++ TimeDV.java       16 Jan 2003 18:34:04 -0000      1.7
  @@ -124,14 +124,14 @@
        */
       protected String dateToString(int[] date) {
           StringBuffer message = new StringBuffer(16);
  -        message.append(date[h]);
  +        append(message, date[h], 2);
           message.append(':');
  -        message.append(date[m]);
  +        append(message, date[m], 2);
           message.append(':');
  -        message.append(date[s]);
  +        append(message, date[s], 2);
           message.append('.');
           message.append(date[ms]);
  -        message.append((char)date[utc]);
  +        append(message, (char)date[utc], 0);
           return message.toString();
       }
   
  
  
  
  1.7       +3 -3      xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearDV.java
  
  Index: YearDV.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearDV.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- YearDV.java       18 Nov 2002 23:10:11 -0000      1.6
  +++ YearDV.java       16 Jan 2003 18:34:04 -0000      1.7
  @@ -134,8 +134,8 @@
        */
       protected String dateToString(int[] date) {
           StringBuffer message = new StringBuffer(5);
  -        message.append(date[CY]);
  -        message.append((char)date[utc]);
  +        append(message, date[CY], 4);
  +        append(message, (char)date[utc], 0);
           return message.toString();
       }
   
  
  
  
  1.7       +10 -1     
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearMonthDV.java
  
  Index: YearMonthDV.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearMonthDV.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- YearMonthDV.java  18 Nov 2002 23:10:11 -0000      1.6
  +++ YearMonthDV.java  16 Jan 2003 18:34:04 -0000      1.7
  @@ -113,6 +113,15 @@
           return date;
       }
   
  +    protected String dateToString(int[] date) {
  +        StringBuffer message = new StringBuffer(25);
  +        append(message, date[CY], 4);
  +        message.append('-');
  +        append(message, date[M], 2);
  +        append(message, (char)date[utc], 0);
  +        return message.toString();
  +    }
  +
   }
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to