KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > joda > time > convert > PartialConverter


1 /*
2  * Copyright 2001-2006 Stephen Colebourne
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.joda.time.convert;
17
18 import org.joda.time.Chronology;
19 import org.joda.time.DateTimeZone;
20 import org.joda.time.ReadablePartial;
21 import org.joda.time.format.DateTimeFormatter;
22
23 /**
24  * PartialConverter defines how an object is converted to a ReadablePartial.
25  * <p>
26  * The two methods in this interface must be called in order, as the
27  * <code>getPartialValues</code> method relies on the result of the
28  * <code>getChronology</code> method being passed in.
29  *
30  * @author Stephen Colebourne
31  * @since 1.0
32  */

33 public interface PartialConverter extends Converter {
34
35     /**
36      * Extracts the chronology from an object of this converter's type
37      * where the time zone is specified.
38      *
39      * @param object the object to convert
40      * @param zone the specified zone to use, null means default zone
41      * @return the chronology, never null
42      * @throws ClassCastException if the object is invalid
43      * @since 1.3
44      */

45     Chronology getChronology(Object JavaDoc object, DateTimeZone zone);
46
47     /**
48      * Extracts the chronology from an object of this converter's type
49      * where the chronology is specified.
50      *
51      * @param object the object to convert
52      * @param chrono the chronology to use, null usually means ISO
53      * @return the chronology, not converted to UTC/local time zone, must be non-null valid
54      * @throws ClassCastException if the object is invalid
55      */

56     Chronology getChronology(Object JavaDoc object, Chronology chrono);
57
58     /**
59      * Extracts the values of the partial from an object of this converter's type.
60      * The chrono parameter is a hint to the converter, should it require a
61      * chronology to aid in conversion.
62      *
63      * @param fieldSource a partial that provides access to the fields.
64      * This partial may be incomplete and only getFieldType(int) should be used
65      * @param object the object to convert
66      * @param chrono the chronology to use, which is the non-null result of getChronology()
67      * @return the array of field values that match the fieldSource, must be non-null valid
68      * @throws ClassCastException if the object is invalid
69      */

70     int[] getPartialValues(ReadablePartial fieldSource, Object JavaDoc object, Chronology chrono);
71
72     /**
73      * Extracts the values of the partial from an object of this converter's type.
74      * The chrono parameter is a hint to the converter, should it require a
75      * chronology to aid in conversion.
76      *
77      * @param fieldSource a partial that provides access to the fields.
78      * This partial may be incomplete and only getFieldType(int) should be used
79      * @param object the object to convert
80      * @param chrono the chronology to use, which is the non-null result of getChronology()
81      * @param parser if converting from a String, the given parser is preferred
82      * @return the array of field values that match the fieldSource, must be non-null valid
83      * @throws ClassCastException if the object is invalid
84      * @since 1.3
85      */

86     int[] getPartialValues(ReadablePartial fieldSource, Object JavaDoc object, Chronology chrono,
87                            DateTimeFormatter parser);
88
89 }
90
Popular Tags