2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.config.api;
10 import java.util.Arrays;
11 import java.util.List;
14 * Exception that can be thrown during validation phase. This allows for
15 * pointing user to a specific list of parameters that fail the validation. Note
16 * that {@link org.opendaylight.controller.config.spi.Module#validate()} can
17 * throw any runtime exception to trigger validation failure.
19 public class JmxAttributeValidationException extends RuntimeException {
20 private static final long serialVersionUID = 1L;
21 private final List<JmxAttribute> attributeNames;
23 public JmxAttributeValidationException(JmxAttribute jmxAttribute) {
24 this(Arrays.asList(jmxAttribute));
27 public JmxAttributeValidationException(List<JmxAttribute> jmxAttribute) {
28 this.attributeNames = jmxAttribute;
31 public JmxAttributeValidationException(String message,
32 JmxAttribute jmxAttribute) {
33 this(message, Arrays.asList(jmxAttribute));
36 public JmxAttributeValidationException(String message,
37 List<JmxAttribute> jmxAttributes) {
39 this.attributeNames = jmxAttributes;
42 public JmxAttributeValidationException(String message, Throwable cause,
43 JmxAttribute jmxAttribute) {
44 this(message, cause, Arrays.asList(jmxAttribute));
47 public JmxAttributeValidationException(String message, Throwable cause,
48 List<JmxAttribute> jmxAttributes) {
49 super(message, cause);
50 this.attributeNames = jmxAttributes;
53 public List<JmxAttribute> getAttributeNames() {
54 return attributeNames;
57 public static <T> T checkNotNull(T param, JmxAttribute jmxAttribute) {
58 String message = "is null";
59 return checkNotNull(param, message, jmxAttribute);
62 public static <T> T checkNotNull(T param, String message,
63 JmxAttribute jmxAttribute) {
65 throw new JmxAttributeValidationException(
66 jmxAttribute.getAttributeName() + " " + message,
72 public static JmxAttributeValidationException wrap(Throwable throwable,
73 JmxAttribute jmxAttribute) throws JmxAttributeValidationException {
74 return wrap(throwable, throwable.getMessage(), jmxAttribute);
77 public static JmxAttributeValidationException wrap(Throwable throwable,
78 String message, JmxAttribute jmxAttribute) {
80 throw new JmxAttributeValidationException(
81 jmxAttribute.getAttributeName() + " " + message, throwable,
85 public static void checkCondition(boolean condition, String message,
86 JmxAttribute jmxAttribute) throws JmxAttributeValidationException {
87 if (condition == false) {
88 throw new JmxAttributeValidationException(
89 jmxAttribute.getAttributeName() + " " + message,