View Javadoc

1   /*
2    *  Copyright 2001-2009 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  
20  /**
21   * LongConverter converts a Long to an instant, partial or duration.
22   * The Long value represents milliseconds in the ISO chronology.
23   *
24   * @author Stephen Colebourne
25   * @author Brian S O'Neill
26   * @since 1.0
27   */
28  class LongConverter extends AbstractConverter
29          implements InstantConverter, PartialConverter, DurationConverter {
30  
31      /**
32       * Singleton instance.
33       */
34      static final LongConverter INSTANCE = new LongConverter();
35  
36      /**
37       * Restricted constructor.
38       */
39      protected LongConverter() {
40          super();
41      }
42  
43      //-----------------------------------------------------------------------
44      /**
45       * Gets the millisecond instant, which is the Long value.
46       * 
47       * @param object  the Long to convert, must not be null
48       * @param chrono  the chronology to use, which is always non-null
49       * @return the millisecond value
50       * @throws NullPointerException if the object is null
51       * @throws ClassCastException if the object is an invalid type
52       */
53      public long getInstantMillis(Object object, Chronology chrono) {
54          return ((Long) object).longValue();
55      }
56  
57      //-----------------------------------------------------------------------
58      /**
59       * Gets the millisecond duration, which is the Long value.
60       * 
61       * @param object  the Long to convert, must not be null
62       * @return the millisecond duration
63       * @throws NullPointerException if the object is null
64       * @throws ClassCastException if the object is an invalid type
65       */
66      public long getDurationMillis(Object object) {
67          return ((Long) object).longValue();
68      }
69  
70      //-----------------------------------------------------------------------
71      /**
72       * Returns Long.class.
73       * 
74       * @return Long.class
75       */
76      public Class<?> getSupportedType() {
77          return Long.class;
78      }
79  
80  }