KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > xquark > schema > datatypes > GYearType


1 /*
2  * This file belongs to the XQuark distribution.
3  * Copyright (C) 2003 Universite de Versailles Saint-Quentin.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307.
18  * You can also get it at http://www.gnu.org/licenses/lgpl.html
19  *
20  * For more information on this software, see http://www.xquark.org.
21  */

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