|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.xerces.impl.dv.xs.TypeValidator | +--org.apache.xerces.impl.dv.xs.AbstractDateTimeDV
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
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 |
MONTH_SIZE
|
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 | |
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 |
boolean |
isEqual(java.lang.Object value1,
java.lang.Object value2)
|
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 |
protected static final int CY
protected static final int M
protected static final int D
protected static final int h
protected static final int m
protected static final int s
protected static final int ms
protected static final int utc
protected static final int hh
protected static final int mm
protected static final int TOTAL_SIZE
protected static final int MONTH_SIZE
protected static final int YEAR
protected static final int MONTH
protected static final int DAY
Constructor Detail |
public AbstractDateTimeDV()
Method Detail |
public short getAllowedFacets()
getAllowedFacets
in class TypeValidator
public boolean isEqual(java.lang.Object value1, java.lang.Object value2)
isEqual
in class TypeValidator
public int compare(java.lang.Object value1, java.lang.Object value2)
compare
in class TypeValidator
protected short compareDates(int[] date1, int[] date2, boolean strict)
date1
- normalized date representation of the first valuedate2
- normalized date representation of the second valuestrict
-
protected short compareOrder(int[] date1, int[] date2)
date1
- date/time objectdate2
- date/time object
protected void getTime(java.lang.String buffer, int start, int end, int[] data, int[] timeZone) throws java.lang.RuntimeException
start
- end
- data
-
java.lang.RuntimeException
protected int getDate(java.lang.String buffer, int start, int end, int[] date) throws java.lang.RuntimeException
start
- end
-
java.lang.RuntimeException
protected int getYearMonth(java.lang.String buffer, int start, int end, int[] date) throws java.lang.RuntimeException
start
- end
-
java.lang.RuntimeException
protected void parseTimeZone(java.lang.String buffer, int start, int end, int[] date, int[] timeZone) throws java.lang.RuntimeException
end
- date
-
java.lang.RuntimeException
protected void getTimeZone(java.lang.String buffer, int[] data, int sign, int end, int[] timeZone) throws java.lang.RuntimeException
data
- sign
-
java.lang.RuntimeException
protected int indexOf(java.lang.String buffer, int start, int end, char ch)
start
- end
- ch
- character to look for in StringBuffer
protected void validateDateTime(int[] data, int[] timeZone)
data
- protected int findUTCSign(java.lang.String buffer, int start, int end)
start
- end
-
protected int parseInt(java.lang.String buffer, int start, int end) throws java.lang.NumberFormatException
start
- Start positionend
- end position
java.lang.NumberFormatException
protected int parseIntYear(java.lang.String buffer, int end)
protected void normalize(int[] date, int[] timeZone)
date
- CCYY-MM-DDThh:mm:ss+03
protected void resetDateObj(int[] data)
data
- date/time objectprotected int maxDayInMonthFor(int year, int month)
year
- month
-
protected int mod(int a, int b, int quotient)
protected int fQuotient(int a, int b)
protected int modulo(int temp, int low, int high)
protected int fQuotient(int temp, int low, int high)
protected java.lang.String dateToString(int[] date)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |