Home | History | Annotate | Download | only in exception
      1 /*
      2  * Licensed to the Apache Software Foundation (ASF) under one or more
      3  * contributor license agreements.  See the NOTICE file distributed with
      4  * this work for additional information regarding copyright ownership.
      5  * The ASF licenses this file to You under the Apache License, Version 2.0
      6  * (the "License"); you may not use this file except in compliance with
      7  * the License.  You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 package org.apache.commons.math.exception;
     18 
     19 import org.apache.commons.math.exception.util.Localizable;
     20 import org.apache.commons.math.exception.util.LocalizedFormats;
     21 
     22 /**
     23  * Exception to be thrown when a number is too small.
     24  *
     25  * @since 2.2
     26  * @version $Revision$ $Date$
     27  */
     28 public class NumberIsTooSmallException extends MathIllegalNumberException {
     29 
     30     /** Serializable version Id. */
     31     private static final long serialVersionUID = -6100997100383932834L;
     32 
     33     /**
     34      * Higher bound.
     35      */
     36     private final Number min;
     37     /**
     38      * Whether the maximum is included in the allowed range.
     39      */
     40     private final boolean boundIsAllowed;
     41 
     42     /**
     43      * Construct the exception.
     44      *
     45      * @param wrong Value that is smaller than the minimum.
     46      * @param min minimum.
     47      * @param boundIsAllowed Whether {@code min} is included in the allowed range.
     48      */
     49     public NumberIsTooSmallException(Number wrong,
     50                                      Number min,
     51                                      boolean boundIsAllowed) {
     52         this(null, wrong, min, boundIsAllowed);
     53     }
     54 
     55     /**
     56      * Construct the exception with a specific context.
     57      *
     58      * @param specific Specific contexte pattern .
     59      * @param wrong Value that is smaller than the minimum.
     60      * @param min minimum.
     61      * @param boundIsAllowed Whether {@code min} is included in the allowed range.
     62      */
     63     public NumberIsTooSmallException(Localizable specific,
     64                                      Number wrong,
     65                                      Number min,
     66                                      boolean boundIsAllowed) {
     67         super(specific,
     68               boundIsAllowed ?
     69               LocalizedFormats.NUMBER_TOO_SMALL :
     70               LocalizedFormats.NUMBER_TOO_SMALL_BOUND_EXCLUDED,
     71               wrong, min);
     72 
     73         this.min = min;
     74         this.boundIsAllowed = boundIsAllowed;
     75     }
     76 
     77     /**
     78      * @return {@code true} if the minimum is included in the allowed range.
     79      **/
     80     public boolean getBoundIsAllowed() {
     81         return boundIsAllowed;
     82     }
     83 
     84     /**
     85      * @return the minimum.
     86      **/
     87     public Number getMin() {
     88         return min;
     89     }
     90 }
     91