1 /*
2 * The MIT License
3 *
4 * Copyright (c) <2012> <Bruno P. Kinoshita>
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 */
24 package org.tap4j.parser;
25
26 import org.tap4j.model.TapElement;
27 import org.tap4j.model.TestSet;
28
29 /**
30 * Memento for parsers. Stores information about a parser in certain moment
31 * of the parsing method.
32 *
33 * @since 3.0
34 */
35 public class Memento {
36
37 private boolean firstLine;
38
39 private boolean planBeforeTestResult;
40
41 private String lastLine;
42
43 private TapElement lastParsedElement;
44
45 /**
46 * Indicator of the base indentation level. Usually defined by the TAP
47 * Header.
48 */
49 private int baseIndentationLevel;
50
51 /**
52 * Helper indicator of in what indentantion level we are working at moment.
53 * It is helpful specially when you have many nested elements, like a META
54 * element with some multiline text.
55 */
56 private int currentIndentationLevel;
57
58 private boolean currentlyInYaml;
59
60 private boolean currentlyInSubtest;
61
62 private StringBuilder diagnosticBuffer = new StringBuilder();
63
64 private TestSet testSet;
65
66 public Memento() {
67 super();
68 }
69
70 /**
71 * @return if is first line
72 */
73 public boolean isFirstLine() {
74 return firstLine;
75 }
76
77 /**
78 * @param is first line value
79 */
80 public void setFirstLine(boolean firstLine) {
81 this.firstLine = firstLine;
82 }
83
84 /**
85 * @return the planBeforeTestResult
86 */
87 public boolean isPlanBeforeTestResult() {
88 return planBeforeTestResult;
89 }
90
91 /**
92 * @param planBeforeTestResult the planBeforeTestResult to set
93 */
94 public void setPlanBeforeTestResult(boolean planBeforeTestResult) {
95 this.planBeforeTestResult = planBeforeTestResult;
96 }
97
98 /**
99 * @return the lastLine
100 */
101 public String getLastLine() {
102 return lastLine;
103 }
104
105 /**
106 * @param lastLine the lastLine to set
107 */
108 public void setLastLine(String lastLine) {
109 this.lastLine = lastLine;
110 }
111
112 /**
113 * @return the lastParsedElement
114 */
115 public TapElement getLastParsedElement() {
116 return lastParsedElement;
117 }
118
119 /**
120 * @param lastParsedElement the lastParsedElement to set
121 */
122 public void setLastParsedElement(TapElement lastParsedElement) {
123 this.lastParsedElement = lastParsedElement;
124 }
125
126 /**
127 * @return the baseIndentationLevel
128 */
129 public int getBaseIndentationLevel() {
130 return baseIndentationLevel;
131 }
132
133 /**
134 * @param baseIndentationLevel the baseIndentationLevel to set
135 */
136 public void setBaseIndentationLevel(int baseIndentationLevel) {
137 this.baseIndentationLevel = baseIndentationLevel;
138 }
139
140 /**
141 * @return the currentIndentationLevel
142 */
143 public int getCurrentIndentationLevel() {
144 return currentIndentationLevel;
145 }
146
147 /**
148 * @param currentIndentationLevel the currentIndentationLevel to set
149 */
150 public void setCurrentIndentationLevel(int currentIndentationLevel) {
151 this.currentIndentationLevel = currentIndentationLevel;
152 }
153
154 /**
155 * @return the currentlyInYaml
156 */
157 public boolean isCurrentlyInYaml() {
158 return currentlyInYaml;
159 }
160
161 /**
162 * @param currentlyInYaml the currentlyInYaml to set
163 */
164 public void setCurrentlyInYaml(boolean currentlyInYaml) {
165 this.currentlyInYaml = currentlyInYaml;
166 }
167
168 /**
169 * @return the currentlyInSubtest
170 */
171 public boolean isCurrentlyInSubtest() {
172 return currentlyInSubtest;
173 }
174
175 /**
176 * @param currentlyInSubtest the currentlyInSubtest to set
177 */
178 public void setCurrentlyInSubtest(boolean currentlyInSubtest) {
179 this.currentlyInSubtest = currentlyInSubtest;
180 }
181
182 /**
183 * @return the diagnosticBuffer
184 */
185 public StringBuilder getDiagnosticBuffer() {
186 return diagnosticBuffer;
187 }
188
189 /**
190 * @param diagnosticBuffer the diagnosticBuffer to set
191 */
192 public void setDiagnosticBuffer(StringBuilder diagnosticBuffer) {
193 this.diagnosticBuffer = diagnosticBuffer;
194 }
195
196 /**
197 * @return the testSet
198 */
199 public TestSet getTestSet() {
200 return testSet;
201 }
202
203 /**
204 * @param testSet the testSet to set
205 */
206 public void setTestSet(TestSet testSet) {
207 this.testSet = testSet;
208 }
209
210 }