001 package com.thaiopensource.datatype.xsd.regex; 002 003 /** 004 * Thrown when an syntactically incorrect regular expression is detected. 005 */ 006 public class RegexSyntaxException extends Exception { 007 private final int position; 008 009 /** 010 * Represents an unknown position within a string containing a regular expression. 011 */ 012 static public final int UNKNOWN_POSITION = -1; 013 014 public RegexSyntaxException(String detail) { 015 this(detail, UNKNOWN_POSITION); 016 } 017 018 public RegexSyntaxException(String detail, int position) { 019 super(detail); 020 this.position = position; 021 } 022 023 /** 024 * Returns the index into the regular expression where the error was detected 025 * or <code>UNKNOWN_POSITION</code> if this is unknown. 026 * 027 * @return the index into the regular expression where the error was detected, 028 * or <code>UNKNOWNN_POSITION</code> if this is unknown 029 */ 030 public int getPosition() { 031 return position; 032 } 033 }