/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.config.api; import java.util.Arrays; import java.util.List; /** * Exception that can be thrown during validation phase. This allows for * pointing user to a specific list of parameters that fail the validation. Note * that {@link org.opendaylight.controller.config.spi.Module#validate()} can * throw any runtime exception to trigger validation failure. */ public class JmxAttributeValidationException extends RuntimeException { private static final long serialVersionUID = 1L; private final List attributeNames; public JmxAttributeValidationException(JmxAttribute jmxAttribute) { this(Arrays.asList(jmxAttribute)); } public JmxAttributeValidationException(List jmxAttribute) { this.attributeNames = jmxAttribute; } public JmxAttributeValidationException(String message, JmxAttribute jmxAttribute) { this(message, Arrays.asList(jmxAttribute)); } public JmxAttributeValidationException(String message, List jmxAttributes) { super(message); this.attributeNames = jmxAttributes; } public JmxAttributeValidationException(String message, Throwable cause, JmxAttribute jmxAttribute) { this(message, cause, Arrays.asList(jmxAttribute)); } public JmxAttributeValidationException(String message, Throwable cause, List jmxAttributes) { super(message, cause); this.attributeNames = jmxAttributes; } public List getAttributeNames() { return attributeNames; } public static T checkNotNull(T param, JmxAttribute jmxAttribute) { String message = "is null"; return checkNotNull(param, message, jmxAttribute); } public static T checkNotNull(T param, String message, JmxAttribute jmxAttribute) { if (param == null) { throw new JmxAttributeValidationException( jmxAttribute.getAttributeName() + " " + message, jmxAttribute); } return param; } public static JmxAttributeValidationException wrap(Throwable throwable, JmxAttribute jmxAttribute) throws JmxAttributeValidationException { return wrap(throwable, throwable.getMessage(), jmxAttribute); } public static JmxAttributeValidationException wrap(Throwable throwable, String message, JmxAttribute jmxAttribute) { throw new JmxAttributeValidationException( jmxAttribute.getAttributeName() + " " + message, throwable, jmxAttribute); } public static void checkCondition(boolean condition, String message, JmxAttribute jmxAttribute) throws JmxAttributeValidationException { if (condition == false) { throw new JmxAttributeValidationException( jmxAttribute.getAttributeName() + " " + message, jmxAttribute); } } }