1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.yaml.snakeyaml.tokens;
18
19 import org.yaml.snakeyaml.error.Mark;
20 import org.yaml.snakeyaml.error.YAMLException;
21
22 public abstract class Token {
23 public enum ID {
24 Alias, Anchor, BlockEnd, BlockEntry, BlockMappingStart, BlockSequenceStart, Directive, DocumentEnd, DocumentStart, FlowEntry, FlowMappingEnd, FlowMappingStart, FlowSequenceEnd, FlowSequenceStart, Key, Scalar, StreamEnd, StreamStart, Tag, Value
25 }
26
27 private final Mark startMark;
28 private final Mark endMark;
29
30 public Token(Mark startMark, Mark endMark) {
31 if (startMark == null || endMark == null) {
32 throw new YAMLException("Token requires marks.");
33 }
34 this.startMark = startMark;
35 this.endMark = endMark;
36 }
37
38 public String toString() {
39 return "<" + this.getClass().getName() + "(" + getArguments() + ")>";
40 }
41
42 public Mark getStartMark() {
43 return startMark;
44 }
45
46 public Mark getEndMark() {
47 return endMark;
48 }
49
50
51
52
53 protected String getArguments() {
54 return "";
55 }
56
57
58
59
60
61
62 public abstract Token.ID getTokenId();
63
64
65
66
67 @Override
68 public boolean equals(Object obj) {
69 if (obj instanceof Token) {
70 return toString().equals(obj.toString());
71 } else {
72 return false;
73 }
74 }
75 }