*/
package org.opendaylight.yangtools.yang.parser.spi.meta;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.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
+ * Thrown when there is an inference error.
*/
public class InferenceException extends SourceException {
private static final long serialVersionUID = 1L;
- public InferenceException(@Nonnull final String message, @Nonnull final StatementSourceReference source,
+ public InferenceException(final @NonNull String message, final @NonNull StatementSourceReference source) {
+ super(message, source);
+ }
+
+ public InferenceException(final @NonNull String message, final @NonNull StatementSourceReference source,
final Throwable cause) {
super(message, source, cause);
}
- public InferenceException(@Nonnull final String message, @Nonnull final StatementSourceReference source) {
- super(message, source);
+ public InferenceException(final @NonNull StatementSourceReference source, final @NonNull String format,
+ final Object... args) {
+ this(String.format(format, args), source);
}
- public InferenceException(@Nonnull final StatementSourceReference source, @Nonnull final String format,
+ public InferenceException(final @NonNull String message, final @NonNull CommonStmtCtx stmt) {
+ super(message, stmt);
+ }
+
+ public InferenceException(final @NonNull String message, final @NonNull CommonStmtCtx stmt, final Throwable cause) {
+ super(message, stmt, cause);
+ }
+
+ public InferenceException(final @NonNull CommonStmtCtx stmt, final @NonNull String format,
final Object... args) {
- this(String.format(format, args), source);
+ this(stmt.sourceReference(), format, args);
}
/**
* @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) {
+ public static void throwIf(final boolean expression, final @NonNull StatementSourceReference source,
+ final @NonNull String format, final Object... args) {
if (expression) {
throw new InferenceException(source, format, args);
}
}
+
+ /**
+ * 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 stmt Statement context
+ * @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, final @NonNull CommonStmtCtx stmt,
+ final @NonNull String format, final Object... args) {
+ if (expression) {
+ throw new InferenceException(stmt.sourceReference(), format, args);
+ }
+ }
}