001 /*
002 * Licensed under the Apache License, Version 2.0 (the "License");
003 * you may not use this file except in compliance with the License.
004 * You may obtain a copy of the License at
005 *
006 * http://www.apache.org/licenses/LICENSE-2.0
007 *
008 * Unless required by applicable law or agreed to in writing, software
009 * distributed under the License is distributed on an "AS IS" BASIS,
010 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011 * See the License for the specific language governing permissions and
012 * limitations under the License.
013 *
014 * See the NOTICE file distributed with this work for additional
015 * information regarding copyright ownership.
016 */
017
018 package com.osbcp.cssparser;
019
020 /**
021 * An exception that is thrown when the CSS parser finds a character it shouldn't have.
022 *
023 * @author <a href="mailto:christoffer@christoffer.me">Christoffer Pettersson</a>
024 */
025
026 public class IncorrectFormatException extends Exception {
027
028 private static final long serialVersionUID = 1L;
029
030 private ErrorCode errorCode;
031
032 /**
033 * Creates a new IncorrectFormatExeption with an error message;
034 *
035 * @param errorCode S unique error code associated with the error.
036 * @param message Error message describing the problem.
037 */
038
039 IncorrectFormatException(final ErrorCode errorCode, final String message) {
040 super(message);
041 this.errorCode = errorCode;
042 }
043
044 /**
045 * Returns a unique error code associated with the error.
046 *
047 * @return A unique error code associated with the error.
048 */
049
050 public ErrorCode getErrorCode() {
051 return errorCode;
052 }
053
054 /**
055 * List of unique error codes.
056 *
057 * @author <a href="mailto:christoffer@christoffer.me">Christoffer Pettersson</a>
058 */
059
060 public enum ErrorCode {
061
062 /**
063 * When the parse founds a semicolon ; when reading the property name.
064 */
065 FOUND_SEMICOLON_WHEN_READING_PROPERTY_NAME,
066
067 /**
068 * When the parse founds an end bracket } before the value's semicolon ; ending.
069 */
070 FOUND_END_BRACKET_BEFORE_SEMICOLON,
071
072 /**
073 * When the parse founds a colon , before reading a real selector name.
074 */
075 FOUND_COLON_WHEN_READING_SELECTOR_NAME;
076
077 }
078
079 }