001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *     https://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018package org.apache.commons.configuration2.ex;
019
020/**
021 * Thrown when a property is incompatible with the type requested.
022 *
023 * @since 1.0
024 */
025public class ConversionException extends ConfigurationRuntimeException {
026
027    /**
028     * The serial version UID.
029     */
030    private static final long serialVersionUID = -5167943099293540392L;
031
032    /**
033     * Constructs a new {@code ConversionException} without specified detail message.
034     */
035    public ConversionException() {
036    }
037
038    /**
039     * Constructs a new {@code ConversionException} with specified detail message.
040     *
041     * @param message the error message
042     */
043    public ConversionException(final String message) {
044        super(message);
045    }
046
047    /**
048     * Constructs a new {@code ConversionException} with specified detail message.
049     *
050     * @param format the error message for for {@link String#format(String, Object...)}.
051     * @param params the error parameters for for {@link String#format(String, Object...)}.
052     * @since 2.14.0
053     */
054    public ConversionException(final String format, final Object... params) {
055        super(String.format(format, params));
056    }
057
058    /**
059     * Constructs a new {@code ConversionException} with specified detail message and nested {@code Throwable}.
060     *
061     * @param message the error message
062     * @param cause   the exception or error that caused this exception to be thrown
063     */
064    public ConversionException(final String message, final Throwable cause) {
065        super(message, cause);
066    }
067
068    /**
069     * Constructs a new {@code ConversionException} with specified nested {@code Throwable}.
070     *
071     * @param cause the exception or error that caused this exception to be thrown
072     */
073    public ConversionException(final Throwable cause) {
074        super(cause);
075    }
076
077    /**
078     * Constructs a new {@code ConversionException} with specified detail message.
079     *
080     * @param format the error message for for {@link String#format(String, Object...)}.
081     * @param params the error parameters for for {@link String#format(String, Object...)}.
082     * @param cause  the cause (which is saved for later retrieval by the {@link #getCause()} method). (A {@code null} value is permitted, and indicates that
083     *               the cause is nonexistent or unknown.)
084     * @since 2.14.0
085     */
086    public ConversionException(final Throwable cause, final String format, final Object... params) {
087        super(cause, format, params);
088    }
089}