1 2 58 59 package org.enhydra.apache.xerces.validators.datatype; 60 61 import java.util.Hashtable ; 62 63 69 70 public class DayDatatypeValidator extends DateTimeValidator { 71 72 private final static int DAY_SIZE=5; 74 75 public DayDatatypeValidator() throws InvalidDatatypeFacetException{ 76 super(); 77 } 78 79 public DayDatatypeValidator ( DatatypeValidator base, Hashtable facets, 80 boolean derivedByList ) throws InvalidDatatypeFacetException { 81 super(base, facets, derivedByList); 82 } 83 84 94 protected int[] parse(String str, int[] date) throws SchemaDateTimeException{ 95 96 resetBuffer(str); 97 98 if ( date== null ) { 100 date=new int[TOTAL_SIZE]; 101 } 102 resetDateObj(date); 103 if (fBuffer.charAt(0)!='-' || fBuffer.charAt(1)!='-' || fBuffer.charAt(2)!='-') { 104 throw new SchemaDateTimeException ("Error in day parsing"); 105 } 106 107 date[CY]=YEAR; 109 date[M]=MONTH; 110 111 date[D]=parseInt(fStart+3,fStart+5); 112 113 114 if ( DAY_SIZE<fEnd ) { 115 int sign = findUTCSign(DAY_SIZE, fEnd); 116 if ( sign<0 ) { 117 throw new SchemaDateTimeException ("Error in day parsing"); 118 } 119 else { 120 getTimeZone(date, sign); 121 } 122 } 123 125 validateDateTime(date); 127 128 if ( date[utc]!=0 && date[utc]!='Z' ) { 129 normalize(date); 130 } 131 return date; 132 } 133 134 140 protected String dateToString(int[] date) { 141 message.setLength(0); 142 message.append('-'); 143 message.append('-'); 144 message.append('-'); 145 message.append(date[D]); 146 message.append((char)date[utc]); 147 return message.toString(); 148 } 149 150 } 151 152 | Popular Tags |