1/**
2 * Copyright (c) 2008, http://www.snakeyaml.org
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.yaml.snakeyaml.reader;
17
18import org.yaml.snakeyaml.error.YAMLException;
19
20public class ReaderException extends YAMLException {
21    private static final long serialVersionUID = 8710781187529689083L;
22    private final String name;
23    private final char character;
24    private final int position;
25
26    public ReaderException(String name, int position, char character, String message) {
27        super(message);
28        this.name = name;
29        this.character = character;
30        this.position = position;
31    }
32
33    public String getName() {
34        return name;
35    }
36
37    public char getCharacter() {
38        return character;
39    }
40
41    public int getPosition() {
42        return position;
43    }
44
45    @Override
46    public String toString() {
47        return "unacceptable character '" + character + "' (0x"
48                + Integer.toHexString((int) character).toUpperCase() + ") " + getMessage()
49                + "\nin \"" + name + "\", position " + position;
50    }
51}
52