1 22 23 package org.xquark.schema.datatypes; 24 25 import java.text.SimpleDateFormat ; 26 27 import org.apache.xerces.impl.xpath.regex.RegularExpression; 28 import org.xquark.schema.validation.ValidationContextProvider; 29 30 31 class DateType extends AbstractDateTimeType { 32 private static final String RCSRevision = "$Revision: 1.1 $"; 33 private static final String RCSName = "$Name: $"; 34 35 private SimpleDateFormat format; 36 private RegularExpression regex; 37 38 DateType() { 39 super("date", PrimitiveType.DATE); 40 format = new SimpleDateFormat ("yyyy-MM-dd"); 41 format.setLenient(false); 42 regex = new RegularExpression("(-)?([0-9]{4,}\\-[0-9]{2}\\-[0-9]{2})"+TIMEZONE_PATTERN, "X"); 43 } 44 45 public String toXMLString(Object data, ValidationContextProvider context) { 46 return stringValue(data); 49 } 50 51 protected SimpleDateFormat getDateTimeFormat() { 52 return format; 53 } 54 55 protected RegularExpression getRegularExpression() { 56 return regex; 57 } 58 59 protected boolean isTimeFormat() { 60 return false; 61 } 62 63 protected boolean isDateFormat() { 64 return true; 65 } 66 67 protected DateTime createDateTime(long millis, long tz, boolean tzSpecified) { 68 return new Value(millis, tz, tzSpecified); 69 } 70 71 class Value extends DateTime { 72 73 public Value(long millis, long tz, boolean tzSpecified) { 74 super(millis, tz, tzSpecified); 75 } 76 77 protected boolean checkClass(Object obj) { 78 return obj instanceof Value; 79 } 80 81 public String toString() { 82 return stringValue(this); 83 } 84 } 85 } 86 | Popular Tags |