BUG-7052: split out yang-parser-spi
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / spi / source / SourceException.java
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/SourceException.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/SourceException.java
deleted file mode 100644 (file)
index 1a37a4b..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * 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.source;
-
-import com.google.common.base.Preconditions;
-import java.util.Optional;
-import javax.annotation.Nonnull;
-
-/**
- * Thrown to indicate error in YANG model source.
- */
-public class SourceException extends RuntimeException {
-    private static final long serialVersionUID = 1L;
-
-    private final StatementSourceReference sourceRef;
-
-    /**
-     * Create a new instance with the specified message and source. The message will be appended with
-     * the source reference.
-     *
-     * @param message Context message
-     * @param source Statement source
-     */
-    public SourceException(@Nonnull final String message, @Nonnull final StatementSourceReference source) {
-        super(createMessage(message, source));
-        sourceRef = source;
-    }
-
-    /**
-     * Create a new instance with the specified message and source. The message will be appended with
-     * the source reference.
-     *
-     * @param message Context message
-     * @param source Statement source
-     * @param cause Underlying cause of this exception
-     */
-    public SourceException(@Nonnull final String message, @Nonnull final StatementSourceReference source,
-            final Throwable cause) {
-        super(createMessage(message, source), cause);
-        sourceRef = source;
-    }
-
-    /**
-     * Create a new instance with the specified source and a formatted message. The message will be appended with
-     * the source reference.
-     *
-     * @param source Statement source
-     * @param format Format string, according to {@link String#format(String, Object...)}.
-     * @param args Format string arguments, according to {@link String#format(String, Object...)}
-     */
-    public SourceException(@Nonnull final StatementSourceReference source, @Nonnull final String format,
-            final Object... args) {
-        this(String.format(format, args), source);
-    }
-
-    /**
-     * Create a new instance with the specified source and a formatted message. The message will be appended with
-     * the source reference.
-     *
-     * @param source Statement source
-     * @param cause Underlying cause of this exception
-     * @param format Format string, according to {@link String#format(String, Object...)}.
-     * @param args Format string arguments, according to {@link String#format(String, Object...)}
-     */
-    public SourceException(@Nonnull final StatementSourceReference source, final Throwable cause,
-            @Nonnull final String format, final Object... args) {
-        this(String.format(format, args), source, cause);
-    }
-
-    /**
-     * Return the reference to the source which caused this exception.
-     *
-     * @return Source reference
-     */
-    public @Nonnull StatementSourceReference getSourceReference() {
-        return sourceRef;
-    }
-
-    /**
-     * 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 SourceException 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 SourceException(source, format, args);
-        }
-    }
-
-    /**
-     * Throw an instance of this exception if an object is null. If the object is non-null, it will
-     * be returned as the result of this method.
-     *
-     * @param obj Object reference to be checked
-     * @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...)}
-     * @return Object if it is not null
-     * @throws SourceException if object is null
-     */
-    @Nonnull public static <T> T throwIfNull(final T obj, @Nonnull final StatementSourceReference source,
-            @Nonnull final String format, final Object... args) {
-        throwIf(obj == null, source, format, args);
-        return obj;
-    }
-
-    /**
-     * Throw an instance of this exception if an optional is not present. If it is present, this method will return
-     * the unwrapped value.
-     *
-     * @param opt Optional to be checked
-     * @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...)}
-     * @return Object unwrapped from the opt optional
-     * @throws SourceException if the optional is not present
-     */
-    @Nonnull public static <T> T unwrap(final Optional<T> opt, @Nonnull final StatementSourceReference source,
-            @Nonnull final String format, final Object... args) {
-        throwIf(!opt.isPresent(), source, format, args);
-        return opt.get();
-    }
-
-    private static String createMessage(@Nonnull final String message, @Nonnull final StatementSourceReference source) {
-        Preconditions.checkNotNull(message);
-        Preconditions.checkNotNull(source);
-
-        return message + " [at " + source + ']';
-    }
-}