/* * Copyright (c) 2015 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.yangtools.yang.parser.spi.meta; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; /** * Thrown when there was inference error */ public class InferenceException extends SourceException { private static final long serialVersionUID = 1L; public InferenceException(@Nonnull final String message, @Nonnull final StatementSourceReference source, final Throwable cause) { super(message, source, cause); } public InferenceException(@Nonnull final String message, @Nonnull final StatementSourceReference source) { super(message, source); } public InferenceException(@Nonnull final StatementSourceReference source, @Nonnull final String format, final Object... args) { this(String.format(format, args), source); } /** * Throw an instance of this exception if an expression evaluates to true. If the expression evaluates to false, * this method does nothing. * * @param expression Expression to be evaluated * @param source Statement source reference * @param format Format string, according to {@link String#format(String, Object...)}. * @param args Format string arguments, according to {@link String#format(String, Object...)} * @throws InferenceException if the expression evaluates to true. */ public static void throwIf(final boolean expression, @Nonnull final StatementSourceReference source, @Nonnull final String format, final Object... args) { if (expression) { throw new InferenceException(source, format, args); } } }