2 * Copyright (c) 2015 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.yangtools.yang.parser.spi.meta;
10 import javax.annotation.Nonnull;
11 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
12 import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
15 * Thrown when there was inference error
17 public class InferenceException extends SourceException {
18 private static final long serialVersionUID = 1L;
20 public InferenceException(@Nonnull final String message, @Nonnull final StatementSourceReference source,
21 final Throwable cause) {
22 super(message, source, cause);
25 public InferenceException(@Nonnull final String message, @Nonnull final StatementSourceReference source) {
26 super(message, source);
29 public InferenceException(@Nonnull final StatementSourceReference source, @Nonnull final String format,
30 final Object... args) {
31 this(String.format(format, args), source);
35 * Throw an instance of this exception if an expression evaluates to true. If the expression evaluates to false,
36 * this method does nothing.
38 * @param expression Expression to be evaluated
39 * @param source Statement source reference
40 * @param format Format string, according to {@link String#format(String, Object...)}.
41 * @param args Format string arguments, according to {@link String#format(String, Object...)}
42 * @throws InferenceException if the expression evaluates to true.
44 public static void throwIf(final boolean expression, @Nonnull final StatementSourceReference source,
45 @Nonnull final String format, final Object... args) {
47 throw new InferenceException(source, format, args);