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

COVERAGE SUMMARY FOR SOURCE FILE [UnsupportedDateTimeField.java]

nameclass, %method, %block, %line, %
UnsupportedDateTimeField.java100% (1/1)98%  (53/54)97%  (226/232)99%  (67/68)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class UnsupportedDateTimeField100% (1/1)98%  (53/54)97%  (226/232)99%  (67/68)
getDifferenceAsLong (long, long): long 0%   (0/1)0%   (0/6)0%   (0/1)
UnsupportedDateTimeField (DateTimeFieldType, DurationField): void 100% (1/1)100% (17/17)100% (6/6)
add (ReadablePartial, int, int [], int): int [] 100% (1/1)100% (3/3)100% (1/1)
add (long, int): long 100% (1/1)100% (6/6)100% (1/1)
add (long, long): long 100% (1/1)100% (6/6)100% (1/1)
addWrapField (ReadablePartial, int, int [], int): int [] 100% (1/1)100% (3/3)100% (1/1)
addWrapField (long, int): long 100% (1/1)100% (3/3)100% (1/1)
addWrapPartial (ReadablePartial, int, int [], int): int [] 100% (1/1)100% (3/3)100% (1/1)
get (long): int 100% (1/1)100% (3/3)100% (1/1)
getAsShortText (ReadablePartial, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsShortText (ReadablePartial, int, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsShortText (int, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsShortText (long): String 100% (1/1)100% (3/3)100% (1/1)
getAsShortText (long, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsText (ReadablePartial, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsText (ReadablePartial, int, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsText (int, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getAsText (long): String 100% (1/1)100% (3/3)100% (1/1)
getAsText (long, Locale): String 100% (1/1)100% (3/3)100% (1/1)
getDifference (long, long): int 100% (1/1)100% (6/6)100% (1/1)
getDurationField (): DurationField 100% (1/1)100% (3/3)100% (1/1)
getInstance (DateTimeFieldType, DurationField): UnsupportedDateTimeField 100% (1/1)100% (38/38)100% (10/10)
getLeapAmount (long): int 100% (1/1)100% (3/3)100% (1/1)
getLeapDurationField (): DurationField 100% (1/1)100% (2/2)100% (1/1)
getMaximumShortTextLength (Locale): int 100% (1/1)100% (3/3)100% (1/1)
getMaximumTextLength (Locale): int 100% (1/1)100% (3/3)100% (1/1)
getMaximumValue (): int 100% (1/1)100% (3/3)100% (1/1)
getMaximumValue (ReadablePartial): int 100% (1/1)100% (3/3)100% (1/1)
getMaximumValue (ReadablePartial, int []): int 100% (1/1)100% (3/3)100% (1/1)
getMaximumValue (long): int 100% (1/1)100% (3/3)100% (1/1)
getMinimumValue (): int 100% (1/1)100% (3/3)100% (1/1)
getMinimumValue (ReadablePartial): int 100% (1/1)100% (3/3)100% (1/1)
getMinimumValue (ReadablePartial, int []): int 100% (1/1)100% (3/3)100% (1/1)
getMinimumValue (long): int 100% (1/1)100% (3/3)100% (1/1)
getName (): String 100% (1/1)100% (4/4)100% (1/1)
getRangeDurationField (): DurationField 100% (1/1)100% (2/2)100% (1/1)
getType (): DateTimeFieldType 100% (1/1)100% (3/3)100% (1/1)
isLeap (long): boolean 100% (1/1)100% (3/3)100% (1/1)
isLenient (): boolean 100% (1/1)100% (2/2)100% (1/1)
isSupported (): boolean 100% (1/1)100% (2/2)100% (1/1)
readResolve (): Object 100% (1/1)100% (6/6)100% (1/1)
remainder (long): long 100% (1/1)100% (3/3)100% (1/1)
roundCeiling (long): long 100% (1/1)100% (3/3)100% (1/1)
roundFloor (long): long 100% (1/1)100% (3/3)100% (1/1)
roundHalfCeiling (long): long 100% (1/1)100% (3/3)100% (1/1)
roundHalfEven (long): long 100% (1/1)100% (3/3)100% (1/1)
roundHalfFloor (long): long 100% (1/1)100% (3/3)100% (1/1)
set (ReadablePartial, int, int [], String, Locale): int [] 100% (1/1)100% (3/3)100% (1/1)
set (ReadablePartial, int, int [], int): int [] 100% (1/1)100% (3/3)100% (1/1)
set (long, String): long 100% (1/1)100% (3/3)100% (1/1)
set (long, String, Locale): long 100% (1/1)100% (3/3)100% (1/1)
set (long, int): long 100% (1/1)100% (3/3)100% (1/1)
toString (): String 100% (1/1)100% (2/2)100% (1/1)
unsupported (): UnsupportedOperationException 100% (1/1)100% (13/13)100% (1/1)

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.field;
17 
18import java.io.Serializable;
19import java.util.HashMap;
20import java.util.Locale;
21import org.joda.time.DateTimeField;
22import org.joda.time.DateTimeFieldType;
23import org.joda.time.DurationField;
24import org.joda.time.ReadablePartial;
25 
26/**
27 * A placeholder implementation to use when a datetime field is not supported.
28 * <p>
29 * UnsupportedDateTimeField is thread-safe and immutable.
30 *
31 * @author Brian S O'Neill
32 * @since 1.0
33 */
34public final class UnsupportedDateTimeField extends DateTimeField implements Serializable {
35 
36    /** Serialilzation version */
37    private static final long serialVersionUID = -1934618396111902255L;
38 
39    /** The cache of unsupported datetime field instances */
40    private static HashMap cCache;
41 
42    /**
43     * Gets an instance of UnsupportedDateTimeField for a specific named field.
44     * Names should be of standard format, such as 'monthOfYear' or 'hourOfDay'.
45     * The returned instance is cached.
46     * 
47     * @param type  the type to obtain
48     * @return the instance
49     * @throws IllegalArgumentException if durationField is null
50     */
51    public static synchronized UnsupportedDateTimeField getInstance(
52            DateTimeFieldType type, DurationField durationField) {
53 
54        UnsupportedDateTimeField field;
55        if (cCache == null) {
56            cCache = new HashMap(7);
57            field = null;
58        } else {
59            field = (UnsupportedDateTimeField)cCache.get(type);
60            if (field != null && field.getDurationField() != durationField) {
61                field = null;
62            }
63        }
64        if (field == null) {
65            field = new UnsupportedDateTimeField(type, durationField);
66            cCache.put(type, field);
67        }
68        return field;
69    }
70 
71    /** The field type */
72    private final DateTimeFieldType iType;
73    /** The duration of the datetime field */
74    private final DurationField iDurationField;
75 
76    /**
77     * Constructor.
78     * 
79     * @param type  the field type
80     * @param durationField  the duration to use
81     */
82    private UnsupportedDateTimeField(DateTimeFieldType type, DurationField durationField) {
83        if (type == null || durationField == null) {
84            throw new IllegalArgumentException();
85        }
86        iType = type;
87        iDurationField = durationField;
88    }
89 
90    //-----------------------------------------------------------------------
91    // Design note: Simple accessors return a suitable value, but methods
92    // intended to perform calculations throw an UnsupportedOperationException.
93 
94    public DateTimeFieldType getType() {
95        return iType;
96    }
97 
98    public String getName() {
99        return iType.getName();
100    }
101 
102    /**
103     * This field is not supported.
104     *
105     * @return false always
106     */
107    public boolean isSupported() {
108        return false;
109    }
110 
111    /**
112     * This field is not lenient.
113     *
114     * @return false always
115     */
116    public boolean isLenient() {
117        return false;
118    }
119 
120    /**
121     * Always throws UnsupportedOperationException
122     *
123     * @throws UnsupportedOperationException
124     */
125    public int get(long instant) {
126        throw unsupported();
127    }
128 
129    /**
130     * Always throws UnsupportedOperationException
131     *
132     * @throws UnsupportedOperationException
133     */
134    public String getAsText(long instant, Locale locale) {
135        throw unsupported();
136    }
137 
138    /**
139     * Always throws UnsupportedOperationException
140     *
141     * @throws UnsupportedOperationException
142     */
143    public String getAsText(long instant) {
144        throw unsupported();
145    }
146 
147    /**
148     * Always throws UnsupportedOperationException
149     *
150     * @throws UnsupportedOperationException
151     */
152    public String getAsText(ReadablePartial partial, int fieldValue, Locale locale) {
153        throw unsupported();
154    }
155 
156    /**
157     * Always throws UnsupportedOperationException
158     *
159     * @throws UnsupportedOperationException
160     */
161    public String getAsText(ReadablePartial partial, Locale locale) {
162        throw unsupported();
163    }
164 
165    /**
166     * Always throws UnsupportedOperationException
167     *
168     * @throws UnsupportedOperationException
169     */
170    public String getAsText(int fieldValue, Locale locale) {
171        throw unsupported();
172    }
173 
174    /**
175     * Always throws UnsupportedOperationException
176     *
177     * @throws UnsupportedOperationException
178     */
179    public String getAsShortText(long instant, Locale locale) {
180        throw unsupported();
181    }
182 
183    /**
184     * Always throws UnsupportedOperationException
185     *
186     * @throws UnsupportedOperationException
187     */
188    public String getAsShortText(long instant) {
189        throw unsupported();
190    }
191 
192    /**
193     * Always throws UnsupportedOperationException
194     *
195     * @throws UnsupportedOperationException
196     */
197    public String getAsShortText(ReadablePartial partial, int fieldValue, Locale locale) {
198        throw unsupported();
199    }
200 
201    /**
202     * Always throws UnsupportedOperationException
203     *
204     * @throws UnsupportedOperationException
205     */
206    public String getAsShortText(ReadablePartial partial, Locale locale) {
207        throw unsupported();
208    }
209 
210    /**
211     * Always throws UnsupportedOperationException
212     *
213     * @throws UnsupportedOperationException
214     */
215    public String getAsShortText(int fieldValue, Locale locale) {
216        throw unsupported();
217    }
218 
219    /**
220     * Delegates to the duration field.
221     *
222     * @throws UnsupportedOperationException if the duration is unsupported
223     */
224    public long add(long instant, int value) {
225        return getDurationField().add(instant, value);
226    }
227 
228    /**
229     * Delegates to the duration field.
230     *
231     * @throws UnsupportedOperationException if the duration is unsupported
232     */
233    public long add(long instant, long value) {
234        return getDurationField().add(instant, value);
235    }
236 
237    /**
238     * Always throws UnsupportedOperationException
239     *
240     * @throws UnsupportedOperationException
241     */
242    public int[] add(ReadablePartial instant, int fieldIndex, int[] values, int valueToAdd) {
243        throw unsupported();
244    }
245 
246    /**
247     * Always throws UnsupportedOperationException
248     *
249     * @throws UnsupportedOperationException
250     */
251    public int[] addWrapPartial(ReadablePartial instant, int fieldIndex, int[] values, int valueToAdd) {
252        throw unsupported();
253    }
254 
255    /**
256     * Always throws UnsupportedOperationException
257     *
258     * @throws UnsupportedOperationException
259     */
260    public long addWrapField(long instant, int value) {
261        throw unsupported();
262    }
263 
264    /**
265     * Always throws UnsupportedOperationException
266     *
267     * @throws UnsupportedOperationException
268     */
269    public int[] addWrapField(ReadablePartial instant, int fieldIndex, int[] values, int valueToAdd) {
270        throw unsupported();
271    }
272 
273    /**
274     * Delegates to the duration field.
275     *
276     * @throws UnsupportedOperationException if the duration is unsupported
277     */
278    public int getDifference(long minuendInstant, long subtrahendInstant) {
279        return getDurationField().getDifference(minuendInstant, subtrahendInstant);
280    }
281 
282    /**
283     * Delegates to the duration field.
284     *
285     * @throws UnsupportedOperationException if the duration is unsupported
286     */
287    public long getDifferenceAsLong(long minuendInstant, long subtrahendInstant) {
288        return getDurationField().getDifferenceAsLong(minuendInstant, subtrahendInstant);
289    }
290 
291    /**
292     * Always throws UnsupportedOperationException
293     *
294     * @throws UnsupportedOperationException
295     */
296    public long set(long instant, int value) {
297        throw unsupported();
298    }
299 
300    /**
301     * Always throws UnsupportedOperationException
302     *
303     * @throws UnsupportedOperationException
304     */
305    public int[] set(ReadablePartial instant, int fieldIndex, int[] values, int newValue) {
306        throw unsupported();
307    }
308 
309    /**
310     * Always throws UnsupportedOperationException
311     *
312     * @throws UnsupportedOperationException
313     */
314    public long set(long instant, String text, Locale locale) {
315        throw unsupported();
316    }
317 
318    /**
319     * Always throws UnsupportedOperationException
320     *
321     * @throws UnsupportedOperationException
322     */
323    public long set(long instant, String text) {
324        throw unsupported();
325    }
326 
327    /**
328     * Always throws UnsupportedOperationException
329     *
330     * @throws UnsupportedOperationException
331     */
332    public int[] set(ReadablePartial instant, int fieldIndex, int[] values, String text, Locale locale) {
333        throw unsupported();
334    }
335 
336    /**
337     * Even though this DateTimeField is unsupported, the duration field might
338     * be supported.
339     *
340     * @return a possibly supported DurationField
341     */
342    public DurationField getDurationField() {
343        return iDurationField;
344    }
345 
346    /**
347     * Always returns null.
348     *
349     * @return null always
350     */
351    public DurationField getRangeDurationField() {
352        return null;
353    }
354 
355    /**
356     * Always throws UnsupportedOperationException
357     *
358     * @throws UnsupportedOperationException
359     */
360    public boolean isLeap(long instant) {
361        throw unsupported();
362    }
363 
364    /**
365     * Always throws UnsupportedOperationException
366     *
367     * @throws UnsupportedOperationException
368     */
369    public int getLeapAmount(long instant) {
370        throw unsupported();
371    }
372 
373    /**
374     * Always returns null.
375     *
376     * @return null always
377     */
378    public DurationField getLeapDurationField() {
379        return null;
380    }
381 
382    /**
383     * Always throws UnsupportedOperationException
384     *
385     * @throws UnsupportedOperationException
386     */
387    public int getMinimumValue() {
388        throw unsupported();
389    }
390 
391    /**
392     * Always throws UnsupportedOperationException
393     *
394     * @throws UnsupportedOperationException
395     */
396    public int getMinimumValue(long instant) {
397        throw unsupported();
398    }
399 
400    /**
401     * Always throws UnsupportedOperationException
402     *
403     * @throws UnsupportedOperationException
404     */
405    public int getMinimumValue(ReadablePartial instant) {
406        throw unsupported();
407    }
408 
409    /**
410     * Always throws UnsupportedOperationException
411     *
412     * @throws UnsupportedOperationException
413     */
414    public int getMinimumValue(ReadablePartial instant, int[] values) {
415        throw unsupported();
416    }
417 
418    /**
419     * Always throws UnsupportedOperationException
420     *
421     * @throws UnsupportedOperationException
422     */
423    public int getMaximumValue() {
424        throw unsupported();
425    }
426 
427    /**
428     * Always throws UnsupportedOperationException
429     *
430     * @throws UnsupportedOperationException
431     */
432    public int getMaximumValue(long instant) {
433        throw unsupported();
434    }
435 
436    /**
437     * Always throws UnsupportedOperationException
438     *
439     * @throws UnsupportedOperationException
440     */
441    public int getMaximumValue(ReadablePartial instant) {
442        throw unsupported();
443    }
444 
445    /**
446     * Always throws UnsupportedOperationException
447     *
448     * @throws UnsupportedOperationException
449     */
450    public int getMaximumValue(ReadablePartial instant, int[] values) {
451        throw unsupported();
452    }
453 
454    /**
455     * Always throws UnsupportedOperationException
456     *
457     * @throws UnsupportedOperationException
458     */
459    public int getMaximumTextLength(Locale locale) {
460        throw unsupported();
461    }
462 
463    /**
464     * Always throws UnsupportedOperationException
465     *
466     * @throws UnsupportedOperationException
467     */
468    public int getMaximumShortTextLength(Locale locale) {
469        throw unsupported();
470    }
471 
472    /**
473     * Always throws UnsupportedOperationException
474     *
475     * @throws UnsupportedOperationException
476     */
477    public long roundFloor(long instant) {
478        throw unsupported();
479    }
480 
481    /**
482     * Always throws UnsupportedOperationException
483     *
484     * @throws UnsupportedOperationException
485     */
486    public long roundCeiling(long instant) {
487        throw unsupported();
488    }
489 
490    /**
491     * Always throws UnsupportedOperationException
492     *
493     * @throws UnsupportedOperationException
494     */
495    public long roundHalfFloor(long instant) {
496        throw unsupported();
497    }
498 
499    /**
500     * Always throws UnsupportedOperationException
501     *
502     * @throws UnsupportedOperationException
503     */
504    public long roundHalfCeiling(long instant) {
505        throw unsupported();
506    }
507 
508    /**
509     * Always throws UnsupportedOperationException
510     *
511     * @throws UnsupportedOperationException
512     */
513    public long roundHalfEven(long instant) {
514        throw unsupported();
515    }
516 
517    /**
518     * Always throws UnsupportedOperationException
519     *
520     * @throws UnsupportedOperationException
521     */
522    public long remainder(long instant) {
523        throw unsupported();
524    }
525 
526    //------------------------------------------------------------------------
527    /**
528     * Get a suitable debug string.
529     * 
530     * @return debug string
531     */
532    public String toString() {
533        return "UnsupportedDateTimeField";
534    }
535 
536    /**
537     * Ensure proper singleton serialization
538     */
539    private Object readResolve() {
540        return getInstance(iType, iDurationField);
541    }
542 
543    private UnsupportedOperationException unsupported() {
544        return new UnsupportedOperationException(iType + " field is unsupported");
545    }
546 
547}

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