[ONOS-3877]Parser Exception

Change-Id: I5970210492f75dfccd8ffbf1ffe8464f729337da
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java
new file mode 100644
index 0000000..737048c
--- /dev/null
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/exceptions/ParserException.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.parser.exceptions;
+
+/**
+ * Base class for exceptions in parser operations.
+ */
+public class ParserException extends Exception {
+
+    private static final long serialVersionUID = 20160211L;
+    private int lineNumber;
+    private int charPositionInLine;
+    private String fileName;
+    private String msg;
+
+    /**
+     * Create a new parser exception.
+     */
+    public ParserException() {
+        super();
+    }
+
+    /**
+     * Creates a new parser exception with given message.
+     *
+     * @param message the detail of exception in string
+     */
+    public ParserException(String message) {
+        super(message);
+    }
+
+    /**
+     * Creates a new parser exception from given message and cause.
+     *
+     * @param message the detail of exception in string
+     * @param cause underlying cause of the error
+     */
+    public ParserException(final String message, final Throwable cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Creates a new parser exception from cause.
+     *
+     * @param cause underlying cause of the error
+     */
+    public ParserException(final Throwable cause) {
+        super(cause);
+    }
+
+    /**
+     * Returns line number of the exception.
+     *
+     * @return line number of the exception
+     */
+    public int getLineNumber() {
+        return this.lineNumber;
+    }
+
+    /**
+     * Returns YANG file name of the exception.
+     *
+     * @return YANG file name of the exception
+     */
+    public String getFileName() {
+        return this.fileName;
+    }
+
+    /**
+     * Returns position of the exception.
+     *
+     * @return position of the exception
+     */
+    public int getCharPositionInLine() {
+        return this.charPositionInLine;
+    }
+
+    /**
+     * Returns msg detail of exception in string.
+     *
+     * @return msg detail of exception in string
+     */
+    public String getMsg() {
+        return  this.msg;
+    }
+
+    /**
+     * Sets line number of YANG file.
+     *
+     * @param line line number of YANG file
+     */
+    public void setLine(int line) {
+        this.lineNumber = line;
+    }
+
+    /**
+     * Sets position of exception.
+     *
+     * @param charPosition position of exception
+     */
+    public void setCharPosition(int charPosition) {
+        this.charPositionInLine = charPosition;
+    }
+
+    /**
+     * Sets the detail of exception in string.
+     *
+     * @param msg the detail of exception in string
+     */
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    /**
+     * Sets file name in parser exception.
+     *
+     * @param fileName YANG file name
+     */
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/exceptions/package-info.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/exceptions/package-info.java
new file mode 100644
index 0000000..2905d8c
--- /dev/null
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/exceptions/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+/**
+ * Custom parser exceptions.
+ */
+package org.onosproject.yangutils.parser.exceptions;