View Javadoc
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.math4.legacy.linear;
18  
19  import org.apache.commons.math4.legacy.exception.MultiDimensionMismatchException;
20  import org.apache.commons.math4.legacy.exception.util.LocalizedFormats;
21  
22  /**
23   * Exception to be thrown when either the number of rows or the number of
24   * columns of a matrix do not match the expected values.
25   *
26   * @since 3.0
27   */
28  public class MatrixDimensionMismatchException extends MultiDimensionMismatchException {
29      /** Serializable version Id. */
30      private static final long serialVersionUID = -8415396756375798143L;
31  
32      /**
33       * Construct an exception from the mismatched dimensions.
34       *
35       * @param wrongRowDim Wrong row dimension.
36       * @param wrongColDim Wrong column dimension.
37       * @param expectedRowDim Expected row dimension.
38       * @param expectedColDim Expected column dimension.
39       */
40      public MatrixDimensionMismatchException(int wrongRowDim,
41                                              int wrongColDim,
42                                              int expectedRowDim,
43                                              int expectedColDim) {
44          super(LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
45                new Integer[] { wrongRowDim, wrongColDim },
46                new Integer[] { expectedRowDim, expectedColDim });
47      }
48  
49      /**
50       * @return the expected row dimension.
51       */
52      public int getWrongRowDimension() {
53          return getWrongDimension(0);
54      }
55      /**
56       * @return the expected row dimension.
57       */
58      public int getExpectedRowDimension() {
59          return getExpectedDimension(0);
60      }
61      /**
62       * @return the wrong column dimension.
63       */
64      public int getWrongColumnDimension() {
65          return getWrongDimension(1);
66      }
67      /**
68       * @return the expected column dimension.
69       */
70      public int getExpectedColumnDimension() {
71          return getExpectedDimension(1);
72      }
73  }