001    /*
002    // $Id: MdxParseException.java 229 2009-05-08 19:11:29Z jhyde $
003    // This software is subject to the terms of the Eclipse Public License v1.0
004    // Agreement, available at the following URL:
005    // http://www.eclipse.org/legal/epl-v10.html.
006    // Copyright (C) 2007-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package org.olap4j.mdx.parser;
011    
012    import org.olap4j.mdx.ParseRegion;
013    
014    /**
015     * Exception thrown by an {@link org.olap4j.mdx.parser.MdxParser} to
016     * indicate an error in parsing. Has a {@link org.olap4j.mdx.ParseRegion}.
017     *
018     * @author jhyde
019     * @version $Id: MdxParseException.java 229 2009-05-08 19:11:29Z jhyde $
020     */
021    public class MdxParseException extends RuntimeException {
022        private final ParseRegion region;
023    
024        /**
025         * Creates an MdxParseException with a region of the source code and a
026         * specified cause.
027         *
028         * @param region Region of source code which contains the error
029         *
030         * @param  cause the cause (which is saved for later retrieval by the
031         *         {@link #getCause()} method).  (A <tt>null</tt> value is
032         *         permitted, and indicates that the cause is nonexistent or
033         *         unknown.)
034         */
035        public MdxParseException(ParseRegion region, Throwable cause) {
036            super(cause);
037            this.region = region;
038        }
039    
040        /**
041         * Creates an MdxParseException with a region of the source code and a
042         * specified detail message.
043         *
044         * @param region Region of source code which contains the error
045         *
046         * @param   message   the detail message. The detail message is saved for
047         *          later retrieval by the {@link #getMessage()} method.
048         */
049        public MdxParseException(ParseRegion region, String message) {
050            super(message);
051            this.region = region;
052        }
053    
054        public ParseRegion getRegion() {
055            return region;
056        }
057    }
058    
059    // End MdxParseException.java