OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / libcore / luni / src / main / java / java / util / IllegalFormatConversionException.java
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements.  See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License.  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
17 package java.util;
18
19 import java.io.Serializable;
20
21 /**
22  * An {@code IllegalFormatConversionException} will be thrown when the parameter
23  * is incompatible with the corresponding format specifier.
24  *
25  * @see java.lang.RuntimeException
26  *
27  * @since 1.5
28  */
29 public class IllegalFormatConversionException extends IllegalFormatException
30         implements Serializable {
31     private static final long serialVersionUID = 17000126L;
32
33     private final char c;
34
35     private final Class<?> arg;
36
37     /**
38      * Constructs a new {@code IllegalFormatConversionException} with the class
39      * of the mismatched conversion and corresponding parameter.
40      *
41      * @param c
42      *           the class of the mismatched conversion.
43      * @param arg
44      *           the corresponding parameter.
45      */
46     public IllegalFormatConversionException(char c, Class<?> arg) {
47         this.c = c;
48         if (arg == null) {
49             throw new NullPointerException();
50         }
51         this.arg = arg;
52     }
53
54     /**
55      * Returns the class of the mismatched parameter.
56      *
57      * @return the class of the mismatched parameter.
58      */
59     public Class<?> getArgumentClass() {
60         return arg;
61     }
62
63     /**
64      * Returns the incompatible conversion.
65      *
66      * @return the incompatible conversion.
67      */
68     public char getConversion() {
69         return c;
70     }
71
72     @Override
73     public String getMessage() {
74         return "%" + c + " can't format " + arg.getName() + " arguments";
75     }
76 }