Home | History | Annotate | Download | only in util
      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 char c;
     34 
     35     private 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     /**
     73      * Returns the message string of the IllegalFormatConversionException.
     74      *
     75      * @return the message string of the IllegalFormatConversionException.
     76      */
     77     @Override
     78     public String getMessage() {
     79         StringBuilder buffer = new StringBuilder();
     80         buffer.append(c);
     81         buffer.append(" is incompatible with ");
     82         buffer.append(arg.getName());
     83         return buffer.toString();
     84     }
     85 
     86 }
     87