Repair Doxygen build infrastructure
[vpp.git] / vpp-api / java / jvpp-registry / io / fd / vpp / jvpp / VppBaseCallException.java
1 /*
2  * Copyright (c) 2016 Cisco and/or its affiliates.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * 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 io.fd.vpp.jvpp;
18
19 /**
20  * Base exception representing failed operation of JVpp request call
21  */
22 public abstract class VppBaseCallException extends Exception {
23     private final String methodName;
24     private final int errorCode;
25
26     /**
27      * Constructs an VppCallbackException with the specified api method name and error code.
28      *
29      * @param methodName name of a method, which invocation or execution failed
30      * @param errorCode  negative error code value associated with this failure
31      * @throws NullPointerException     if apiMethodName is null
32      */
33     public VppBaseCallException(final String methodName, final int errorCode) {
34         super(String.format("vppApi.%s failed with error code: %d", methodName, errorCode));
35         this.methodName = java.util.Objects.requireNonNull(methodName, "apiMethodName is null!");
36         this.errorCode = errorCode;
37         if(errorCode >= 0) {
38             throw new IllegalArgumentException("Error code must be < 0. Was " + errorCode +
39                     " for " + methodName );
40         }
41     }
42
43     /**
44      * Returns  name of a method, which invocation failed.
45      *
46      * @return method name
47      */
48     public String getMethodName() {
49         return methodName;
50     }
51
52     /**
53      * Returns the error code associated with this failure.
54      *
55      * @return a negative integer error code
56      */
57     public int getErrorCode() {
58         return errorCode;
59     }
60 }