EMMA Coverage Report (generated Tue Oct 28 00:01:11 GMT 2008)
[all classes][org.joda.time.base]

COVERAGE SUMMARY FOR SOURCE FILE [AbstractDateTime.java]

nameclass, %method, %block, %line, %
AbstractDateTime.java100% (1/1)100% (24/24)100% (199/199)100% (39/39)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AbstractDateTime100% (1/1)100% (24/24)100% (199/199)100% (39/39)
AbstractDateTime (): void 100% (1/1)100% (3/3)100% (2/2)
get (DateTimeFieldType): int 100% (1/1)100% (15/15)100% (3/3)
getCenturyOfEra (): int 100% (1/1)100% (7/7)100% (1/1)
getDayOfMonth (): int 100% (1/1)100% (7/7)100% (1/1)
getDayOfWeek (): int 100% (1/1)100% (7/7)100% (1/1)
getDayOfYear (): int 100% (1/1)100% (7/7)100% (1/1)
getEra (): int 100% (1/1)100% (7/7)100% (1/1)
getHourOfDay (): int 100% (1/1)100% (7/7)100% (1/1)
getMillisOfDay (): int 100% (1/1)100% (7/7)100% (1/1)
getMillisOfSecond (): int 100% (1/1)100% (7/7)100% (1/1)
getMinuteOfDay (): int 100% (1/1)100% (7/7)100% (1/1)
getMinuteOfHour (): int 100% (1/1)100% (7/7)100% (1/1)
getMonthOfYear (): int 100% (1/1)100% (7/7)100% (1/1)
getSecondOfDay (): int 100% (1/1)100% (7/7)100% (1/1)
getSecondOfMinute (): int 100% (1/1)100% (7/7)100% (1/1)
getWeekOfWeekyear (): int 100% (1/1)100% (7/7)100% (1/1)
getWeekyear (): int 100% (1/1)100% (7/7)100% (1/1)
getYear (): int 100% (1/1)100% (7/7)100% (1/1)
getYearOfCentury (): int 100% (1/1)100% (7/7)100% (1/1)
getYearOfEra (): int 100% (1/1)100% (7/7)100% (1/1)
toCalendar (Locale): Calendar 100% (1/1)100% (18/18)100% (6/6)
toGregorianCalendar (): GregorianCalendar 100% (1/1)100% (15/15)100% (4/4)
toString (String): String 100% (1/1)100% (10/10)100% (3/3)
toString (String, Locale): String 100% (1/1)100% (12/12)100% (3/3)

1/*
2 *  Copyright 2001-2005 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 */
16package org.joda.time.base;
17 
18import java.util.Calendar;
19import java.util.GregorianCalendar;
20import java.util.Locale;
21 
22import org.joda.time.DateTimeFieldType;
23import org.joda.time.DateTimeZone;
24import org.joda.time.ReadableDateTime;
25import org.joda.time.format.DateTimeFormat;
26 
27/**
28 * AbstractDateTime provides the common behaviour for datetime classes.
29 * <p>
30 * This class should generally not be used directly by API users.
31 * The {@link ReadableDateTime} interface should be used when different 
32 * kinds of date/time objects are to be referenced.
33 * <p>
34 * Whenever you want to implement <code>ReadableDateTime</code> you should
35 * extend this class.
36 * <p>
37 * AbstractDateTime subclasses may be mutable and not thread-safe.
38 *
39 * @author Brian S O'Neill
40 * @author Stephen Colebourne
41 * @since 1.0
42 */
43public abstract class AbstractDateTime
44        extends AbstractInstant
45        implements ReadableDateTime {
46 
47    /**
48     * Constructor.
49     */
50    protected AbstractDateTime() {
51        super();
52    }
53 
54    //-----------------------------------------------------------------------
55    /**
56     * Get the value of one of the fields of a datetime.
57     * <p>
58     * This method uses the chronology of the datetime to obtain the value.
59     * It is essentially a generic way of calling one of the get methods.
60     *
61     * @param type  a field type, usually obtained from DateTimeFieldType
62     * @return the value of that field
63     * @throws IllegalArgumentException if the field type is null
64     */
65    public int get(DateTimeFieldType type) {
66        if (type == null) {
67            throw new IllegalArgumentException("The DateTimeFieldType must not be null");
68        }
69        return type.getField(getChronology()).get(getMillis());
70    }
71 
72    //-----------------------------------------------------------------------
73    /**
74     * Get the era field value.
75     * 
76     * @return the era
77     */
78    public int getEra() {
79        return getChronology().era().get(getMillis());
80    }
81 
82    /**
83     * Get the year of era field value.
84     * 
85     * @return the year of era
86     */
87    public int getCenturyOfEra() {
88        return getChronology().centuryOfEra().get(getMillis());
89    }
90 
91    /**
92     * Get the year of era field value.
93     * 
94     * @return the year of era
95     */
96    public int getYearOfEra() {
97        return getChronology().yearOfEra().get(getMillis());
98    }
99 
100    /**
101     * Get the year of century field value.
102     * 
103     * @return the year of century
104     */
105    public int getYearOfCentury() {
106        return getChronology().yearOfCentury().get(getMillis());
107    }
108 
109    /**
110     * Get the year field value.
111     * 
112     * @return the year
113     */
114    public int getYear() {
115        return getChronology().year().get(getMillis());
116    }
117 
118    /**
119     * Get the weekyear field value.
120     * 
121     * @return the year of a week based year
122     */
123    public int getWeekyear() {
124        return getChronology().weekyear().get(getMillis());
125    }
126 
127    /**
128     * Get the month of year field value.
129     * 
130     * @return the month of year
131     */
132    public int getMonthOfYear() {
133        return getChronology().monthOfYear().get(getMillis());
134    }
135 
136    /**
137     * Get the week of weekyear field value.
138     * 
139     * @return the week of a week based year
140     */
141    public int getWeekOfWeekyear() {
142        return getChronology().weekOfWeekyear().get(getMillis());
143    }
144 
145    /**
146     * Get the day of year field value.
147     * 
148     * @return the day of year
149     */
150    public int getDayOfYear() {
151        return getChronology().dayOfYear().get(getMillis());
152    }
153 
154    /**
155     * Get the day of month field value.
156     * <p>
157     * The values for the day of month are defined in {@link org.joda.time.DateTimeConstants}.
158     * 
159     * @return the day of month
160     */
161    public int getDayOfMonth() {
162        return getChronology().dayOfMonth().get(getMillis());
163    }
164 
165    /**
166     * Get the day of week field value.
167     * <p>
168     * The values for the day of week are defined in {@link org.joda.time.DateTimeConstants}.
169     * 
170     * @return the day of week
171     */
172    public int getDayOfWeek() {
173        return getChronology().dayOfWeek().get(getMillis());
174    }
175 
176    //-----------------------------------------------------------------------
177    /**
178     * Get the hour of day field value.
179     *
180     * @return the hour of day
181     */
182    public int getHourOfDay() {
183        return getChronology().hourOfDay().get(getMillis());
184    }
185 
186    /**
187     * Get the minute of day field value.
188     *
189     * @return the minute of day
190     */
191    public int getMinuteOfDay() {
192        return getChronology().minuteOfDay().get(getMillis());
193    }
194 
195    /**
196     * Get the minute of hour field value.
197     *
198     * @return the minute of hour
199     */
200    public int getMinuteOfHour() {
201        return getChronology().minuteOfHour().get(getMillis());
202    }
203 
204    /**
205     * Get the second of day field value.
206     *
207     * @return the second of day
208     */
209    public int getSecondOfDay() {
210        return getChronology().secondOfDay().get(getMillis());
211    }
212 
213    /**
214     * Get the second of minute field value.
215     *
216     * @return the second of minute
217     */
218    public int getSecondOfMinute() {
219        return getChronology().secondOfMinute().get(getMillis());
220    }
221 
222    /**
223     * Get the millis of day field value.
224     *
225     * @return the millis of day
226     */
227    public int getMillisOfDay() {
228        return getChronology().millisOfDay().get(getMillis());
229    }
230 
231    /**
232     * Get the millis of second field value.
233     *
234     * @return the millis of second
235     */
236    public int getMillisOfSecond() {
237        return getChronology().millisOfSecond().get(getMillis());
238    }
239 
240    //-----------------------------------------------------------------------
241    /**
242     * Get the date time as a <code>java.util.Calendar</code>, assigning
243     * exactly the same millisecond instant.
244     * The locale is passed in, enabling Calendar to select the correct
245     * localized subclass.
246     * <p>
247     * The JDK and Joda-Time both have time zone implementations and these
248     * differ in accuracy. Joda-Time's implementation is generally more up to
249     * date and thus more accurate - for example JDK1.3 has no historical data.
250     * The effect of this is that the field values of the <code>Calendar</code>
251     * may differ from those of this object, even though the milliseond value
252     * is the same. Most of the time this just means that the JDK field values
253     * are wrong, as our time zone information is more up to date.
254     *
255     * @param locale  the locale to get the Calendar for, or default if null
256     * @return a localized Calendar initialised with this datetime
257     */
258    public Calendar toCalendar(Locale locale) {
259        if (locale == null) {
260            locale = Locale.getDefault();
261        }
262        DateTimeZone zone = getZone();
263        Calendar cal = Calendar.getInstance(zone.toTimeZone(), locale);
264        cal.setTime(toDate());
265        return cal;
266    }
267 
268    /**
269     * Get the date time as a <code>java.util.GregorianCalendar</code>,
270     * assigning exactly the same millisecond instant.
271     * <p>
272     * The JDK and Joda-Time both have time zone implementations and these
273     * differ in accuracy. Joda-Time's implementation is generally more up to
274     * date and thus more accurate - for example JDK1.3 has no historical data.
275     * The effect of this is that the field values of the <code>Calendar</code>
276     * may differ from those of this object, even though the milliseond value
277     * is the same. Most of the time this just means that the JDK field values
278     * are wrong, as our time zone information is more up to date.
279     *
280     * @return a GregorianCalendar initialised with this datetime
281     */
282    public GregorianCalendar toGregorianCalendar() {
283        DateTimeZone zone = getZone();
284        GregorianCalendar cal = new GregorianCalendar(zone.toTimeZone());
285        cal.setTime(toDate());
286        return cal;
287    }
288 
289    //-----------------------------------------------------------------------
290    /**
291     * Output the instant using the specified format pattern.
292     *
293     * @param pattern  the pattern specification, null means use <code>toString</code>
294     * @see  org.joda.time.format.DateTimeFormat
295     */
296    public String toString(String pattern) {
297        if (pattern == null) {
298            return toString();
299        }
300        return DateTimeFormat.forPattern(pattern).print(this);
301    }
302 
303    /**
304     * Output the instant using the specified format pattern.
305     *
306     * @param pattern  the pattern specification, null means use <code>toString</code>
307     * @param locale  Locale to use, null means default
308     * @see  org.joda.time.format.DateTimeFormat
309     */
310    public String toString(String pattern, Locale locale) throws IllegalArgumentException {
311        if (pattern == null) {
312            return toString();
313        }
314        return DateTimeFormat.forPattern(pattern).withLocale(locale).print(this);
315    }
316 
317}

[all classes][org.joda.time.base]
EMMA 2.0.5312 (C) Vladimir Roubtsov