Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.xerces.impl.dv.xs
Class AbstractDateTimeDV

    java.lang.Object
      |
      +--org.apache.xerces.impl.dv.xs.TypeValidator
            |
            +--org.apache.xerces.impl.dv.xs.AbstractDateTimeDV

Direct Known Subclasses:
  DateTimeDV, DayDV, DurationDV, MonthDayDV, MonthDV, TimeDV, YearDV, YearMonthDV

public abstract class AbstractDateTimeDV
extends TypeValidator

This is the base class of all date/time datatype validators. It implements common code for parsing, validating and comparing datatypes. Classes that extend this class, must implement parse() method. REVISIT: There are many instance variables, which would cause problems when we support grammar caching. A grammar is possibly used by two parser instances at the same time, then the same simple type decl object can be used to validate two strings at the same time. -SG

Version:
  $Id: AbstractDateTimeDV.java,v 1.8 2003/01/16 18:34:03 sandygao Exp $
Author:
  Elena Litani, Len Berman, Gopal Sharma, SUN Microsystems Inc.

Field Summary
`protected static int` | `CY`
`protected static int` | `D`
`protected static int` | `DAY`
`protected static int` | `h`
`protected static int` | `hh`
`protected static int` | `m`
`protected static int` | `M`
`protected static int` | `mm`
`protected static int` | `MONTH`
`protected static int` | `ms`
`protected static int` | `s`
`protected static int` | `TOTAL_SIZE`
`protected static int` | `utc`
`protected static int` | `YEAR`

Fields inherited from class org.apache.xerces.impl.dv.xs.TypeValidator
`EQUAL, GREATER_THAN, INDETERMINATE, LESS_THAN`

Constructor Summary
`AbstractDateTimeDV()`

Method Summary
`protected void` | `append(java.lang.StringBuffer message, int value, int nch)`
`int` | `compare(java.lang.Object value1, java.lang.Object value2)`
`protected short` | `compareDates(int[] date1, int[] date2, boolean strict)` Compare algorithm described in dateDime (3.2.7).
`protected short` | `compareOrder(int[] date1, int[] date2)` Given normalized values, determines order-relation between give date/time objects.
`protected java.lang.String` | `dateToString(int[] date)`
`protected int` | `findUTCSign(java.lang.String buffer, int start, int end)` Return index of UTC char: 'Z', '+', '-'
`protected int` | `fQuotient(int a, int b)`
`protected int` | `fQuotient(int temp, int low, int high)`
`short` | `getAllowedFacets()`
`protected int` | `getDate(java.lang.String buffer, int start, int end, int[] date)` Parses date CCYY-MM-DD
`protected void` | `getTime(java.lang.String buffer, int start, int end, int[] data, int[] timeZone)` Parses time hh:mm:ss.sss and time zone if any
`protected void` | `getTimeZone(java.lang.String buffer, int[] data, int sign, int end, int[] timeZone)` Parses time zone: 'Z' or {+,-} followed by hh:mm
`protected int` | `getYearMonth(java.lang.String buffer, int start, int end, int[] date)` Parses date CCYY-MM
`protected int` | `indexOf(java.lang.String buffer, int start, int end, char ch)` Computes index of given char within StringBuffer
`protected int` | `maxDayInMonthFor(int year, int month)` Given {year,month} computes maximum number of days for given month
`protected int` | `mod(int a, int b, int quotient)`
`protected int` | `modulo(int temp, int low, int high)`
`protected void` | `normalize(int[] date, int[] timeZone)` If timezone present - normalize dateTime [E Adding durations to dateTimes]
`protected int` | `parseInt(java.lang.String buffer, int start, int end)` Given start and end position, parses string value
`protected int` | `parseIntYear(java.lang.String buffer, int end)`
`protected void` | `parseTimeZone(java.lang.String buffer, int start, int end, int[] date, int[] timeZone)` Shared code from Date and YearMonth datatypes.
`protected void` | `resetDateObj(int[] data)` Resets object representation of date/time
`protected void` | `validateDateTime(int[] data, int[] timeZone)` Validates given date/time object accoring to W3C PR Schema [D.1 ISO 8601 Conventions]

Methods inherited from class org.apache.xerces.impl.dv.xs.TypeValidator
`checkExtraRules, getActualValue, getDataLength, getDigit, getFractionDigits, getTotalDigits, isDigit`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### CY

    protected static final int CY

### M

    protected static final int M

### D

    protected static final int D

### h

    protected static final int h

### m

    protected static final int m

### s

    protected static final int s

### ms

    protected static final int ms

### utc

    protected static final int utc

### hh

    protected static final int hh

### mm

    protected static final int mm

### TOTAL_SIZE

    protected static final int TOTAL_SIZE

### YEAR

    protected static final int YEAR

### MONTH

    protected static final int MONTH

### DAY

    protected static final int DAY

Constructor Detail

### AbstractDateTimeDV

    public AbstractDateTimeDV()

Method Detail

### getAllowedFacets

    public short getAllowedFacets()

  Overrides:
    `getAllowedFacets` in class `TypeValidator`

### compare

    public int compare(java.lang.Object value1,
                       java.lang.Object value2)

  Overrides:
    `compare` in class `TypeValidator`

### compareDates

    protected short compareDates(int[] date1,
                                 int[] date2,
                                 boolean strict)

  Compare algorithm described in dateDime (3.2.7). Duration datatype overwrites this method
  Parameters:
    `date1` - normalized date representation of the first value
    `date2` - normalized date representation of the second value
    `strict` -
  Returns:
    less, greater, less_equal, greater_equal, equal

### compareOrder

    protected short compareOrder(int[] date1,
                                 int[] date2)

  Given normalized values, determines order-relation between give date/time objects.
  Parameters:
    `date1` - date/time object
    `date2` - date/time object
  Returns:
    0 if date1 and date2 are equal, a value less than 0 if date1 is less than date2, a value greater than 0 if date1 is greater than date2

### getTime

    protected void getTime(java.lang.String buffer,
                           int start,
                           int end,
                           int[] data,
                           int[] timeZone)
                    throws java.lang.RuntimeException

  Parses time hh:mm:ss.sss and time zone if any
  Parameters:
    `start` -
    `end` -
    `data` -
  Throws:
    `java.lang.RuntimeException` -

### getDate

    protected int getDate(java.lang.String buffer,
                          int start,
                          int end,
                          int[] date)
                   throws java.lang.RuntimeException

  Parses date CCYY-MM-DD
  Parameters:
    `start` -
    `end` -
    `data` -
  Throws:
    `java.lang.RuntimeException` -

### getYearMonth

    protected int getYearMonth(java.lang.String buffer,
                               int start,
                               int end,
                               int[] date)
                        throws java.lang.RuntimeException

  Parses date CCYY-MM
  Parameters:
    `start` -
    `end` -
    `data` -
  Throws:
    `java.lang.RuntimeException` -

### parseTimeZone

    protected void parseTimeZone(java.lang.String buffer,
                                 int start,
                                 int end,
                                 int[] date,
                                 int[] timeZone)
                          throws java.lang.RuntimeException

  Shared code from Date and YearMonth datatypes. Finds if time zone sign is present
  Parameters:
    `end` -
    `date` -
  Throws:
    `java.lang.RuntimeException` -

### getTimeZone

    protected void getTimeZone(java.lang.String buffer,
                               int[] data,
                               int sign,
                               int end,
                               int[] timeZone)
                        throws java.lang.RuntimeException

  Parses time zone: 'Z' or {+,-} followed by hh:mm
  Parameters:
    `data` -
    `sign` -
  Throws:
    `java.lang.RuntimeException` -

### indexOf

    protected int indexOf(java.lang.String buffer,
                          int start,
                          int end,
                          char ch)

  Computes index of given char within StringBuffer
  Parameters:
    `start` -
    `end` -
    `ch` - character to look for in StringBuffer
  Returns:
    index of ch within StringBuffer

### validateDateTime

    protected void validateDateTime(int[] data,
                                    int[] timeZone)

  Validates given date/time object accoring to W3C PR Schema [D.1 ISO 8601 Conventions]
  Parameters:
    `data` -

### findUTCSign

    protected int findUTCSign(java.lang.String buffer,
                              int start,
                              int end)

  Return index of UTC char: 'Z', '+', '-'
  Parameters:
    `start` -
    `end` -
  Returns:
    index of the UTC character that was found

### parseInt

    protected int parseInt(java.lang.String buffer,
                           int start,
                           int end)
                    throws java.lang.NumberFormatException

  Given start and end position, parses string value
  Parameters:
    `value` - string to parse
    `start` - Start position
    `end` - end position
  Returns:
    return integer representation of characters

### parseIntYear

    protected int parseIntYear(java.lang.String buffer,
                               int end)

### normalize

    protected void normalize(int[] date,
                             int[] timeZone)

  If timezone present - normalize dateTime [E Adding durations to dateTimes]
  Parameters:
    `date` - CCYY-MM-DDThh:mm:ss+03
  Returns:
    CCYY-MM-DDThh:mm:ssZ

### resetDateObj

    protected void resetDateObj(int[] data)

  Resets object representation of date/time
  Parameters:
    `data` - date/time object

### maxDayInMonthFor

    protected int maxDayInMonthFor(int year,
                                   int month)

  Given {year,month} computes maximum number of days for given month
  Parameters:
    `year` -
    `month` -
  Returns:
    integer containg the number of days in a given month

### mod

    protected int mod(int a,
                      int b,
                      int quotient)

### fQuotient

    protected int fQuotient(int a,
                            int b)

### modulo

    protected int modulo(int temp,
                         int low,
                         int high)

### fQuotient

    protected int fQuotient(int temp,
                            int low,
                            int high)

### dateToString

    protected java.lang.String dateToString(int[] date)

### append

    protected void append(java.lang.StringBuffer message,
                          int value,
                          int nch)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1999-2003 Apache XML Project. All Rights Reserved.