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 * http://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
018 package org.apache.commons.math;
019
020 import org.apache.commons.math.ConvergenceException;
021 import org.apache.commons.math.exception.util.DummyLocalizable;
022 import org.apache.commons.math.exception.util.Localizable;
023 import org.apache.commons.math.exception.util.LocalizedFormats;
024
025 /**
026 * Error thrown when a numerical computation exceeds its allowed
027 * number of iterations.
028 *
029 * @version $Revision: 1070725 $ $Date: 2011-02-15 02:31:12 +0100 (mar. 15 f??vr. 2011) $
030 * @since 1.2
031 */
032 public class MaxIterationsExceededException extends ConvergenceException {
033
034 /** Serializable version identifier. */
035 private static final long serialVersionUID = -7821226672760574694L;
036
037 /** Maximal number of iterations allowed. */
038 private final int maxIterations;
039
040 /**
041 * Constructs an exception with a default detail message.
042 * @param maxIterations maximal number of iterations allowed
043 */
044 public MaxIterationsExceededException(final int maxIterations) {
045 super(LocalizedFormats.MAX_ITERATIONS_EXCEEDED, maxIterations);
046 this.maxIterations = maxIterations;
047 }
048
049 /**
050 * Constructs an exception with specified formatted detail message.
051 * Message formatting is delegated to {@link java.text.MessageFormat}.
052 * @param maxIterations the exceeded maximal number of iterations
053 * @param pattern format specifier
054 * @param arguments format arguments
055 * @deprecated as of 2.2 replaced by {@link #MaxIterationsExceededException(int, Localizable, Object...)}
056 */
057 @Deprecated
058 public MaxIterationsExceededException(final int maxIterations,
059 final String pattern, final Object ... arguments) {
060 this(maxIterations, new DummyLocalizable(pattern), arguments);
061 }
062
063 /**
064 * Constructs an exception with specified formatted detail message.
065 * Message formatting is delegated to {@link java.text.MessageFormat}.
066 * @param maxIterations the exceeded maximal number of iterations
067 * @param pattern format specifier
068 * @param arguments format arguments
069 * @since 2.2
070 */
071 public MaxIterationsExceededException(final int maxIterations,
072 final Localizable pattern, final Object ... arguments) {
073 super(pattern, arguments);
074 this.maxIterations = maxIterations;
075 }
076
077 /** Get the maximal number of iterations allowed.
078 * @return maximal number of iterations allowed
079 */
080 public int getMaxIterations() {
081 return maxIterations;
082 }
083
084 }