EMMA Coverage Report (generated Fri Feb 14 08:28:31 UTC 2014)
[all classes][org.qedeq.kernel.bo.parser]

COVERAGE SUMMARY FOR SOURCE FILE [MementoTextInput.java]

nameclass, %method, %block, %line, %
MementoTextInput.java100% (1/1)69%  (9/13)79%  (61/77)80%  (16/20)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MementoTextInput100% (1/1)69%  (9/13)79%  (61/77)80%  (16/20)
getColumn (): int 0%   (0/1)0%   (0/4)0%   (0/1)
getLine (): String 0%   (0/1)0%   (0/4)0%   (0/1)
getRow (): int 0%   (0/1)0%   (0/4)0%   (0/1)
readInverse (): int 0%   (0/1)0%   (0/4)0%   (0/1)
MementoTextInput (TextInput): void 100% (1/1)100% (11/11)100% (4/4)
clearMark (): void 100% (1/1)100% (5/5)100% (2/2)
getChar (): int 100% (1/1)100% (4/4)100% (1/1)
getPosition (): long 100% (1/1)100% (5/5)100% (1/1)
getRewindStackSize (): int 100% (1/1)100% (4/4)100% (1/1)
isEmpty (): boolean 100% (1/1)100% (4/4)100% (1/1)
markPosition (): void 100% (1/1)100% (11/11)100% (2/2)
read (): int 100% (1/1)100% (4/4)100% (1/1)
rewindPosition (): long 100% (1/1)100% (13/13)100% (3/3)

1/* This file is part of the project "Hilbert II" - http://www.qedeq.org
2 *
3 * Copyright 2000-2014,  Michael Meyling <mime@qedeq.org>.
4 *
5 * "Hilbert II" is free software; you can redistribute
6 * it and/or modify it under the terms of the GNU General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15 
16package org.qedeq.kernel.bo.parser;
17 
18import java.util.Stack;
19 
20import org.qedeq.base.io.TextInput;
21 
22/**
23 * Remember TextInput positions.
24 *
25 * @author  Michael Meyling
26 */
27public class MementoTextInput {
28 
29    /** For remembering input positions. */
30    private final Stack stack = new Stack();
31 
32    /** Input source to parse. */
33    private final TextInput input;
34 
35    /**
36     * Constructor.
37     *
38     * @param   input   Input source to parse.
39     */
40    public MementoTextInput(final TextInput input) {
41        this.input = input;
42    }
43 
44    /**
45     * Remember current position.
46     */
47    public void markPosition() {
48        stack.push(new Integer(input.getPosition()));
49    }
50 
51    /**
52     * Rewind to previous marked position. Also clears the mark.
53     *
54     * @return  Current position before pop.
55     */
56    public long rewindPosition() {
57        final long oldPosition = getPosition();
58        input.setPosition(((Integer) stack.pop()).intValue());
59        return oldPosition;
60    }
61 
62    /**
63     * Forget last remembered position.
64     */
65    public void clearMark() {
66        stack.pop();
67    }
68 
69    /**
70     * Get byte position.
71     *
72     * @return  Position.
73     */
74    public long getPosition() {
75        return input.getPosition();
76    }
77 
78    /**
79     * Reads a single character and does not change the reading
80     * position.
81     *
82     * @return  character read, if there are no more chars
83     *          <code>-1</code> is returned
84     */
85    public int getChar() {
86        return input.getChar();
87    }
88 
89    /**
90     * Reads a single character and increments the reading position
91     * by one.
92     *
93     * @return  character read, if there are no more chars
94     *          <code>-1</code> is returned
95     */
96    public int read() {
97        return input.read();
98    }
99 
100    /**
101     * Are there still any characters to read?
102     *
103     * @return  Anything left for reading further?
104     */
105    public final boolean isEmpty() {
106        return input.isEmpty();
107    }
108 
109    /**
110     * Get rewind stack size.
111     *
112     * @return  Rewind stack size.
113     */
114    public int getRewindStackSize() {
115        return stack.size();
116    }
117 
118    /**
119     * Returns the current column number.
120     *
121     * @return  Current column number (starting with line 1).
122     */
123    public int getColumn() {
124        return input.getColumn();
125    }
126 
127    /**
128     * Returns the current line number.
129     *
130     * @return  Current line number (starting with line 1).
131     */
132    public int getRow() {
133        return input.getRow();
134    }
135 
136    /**
137     * Returns the current line.
138     *
139     * @return  Current line.
140     */
141    public String getLine() {
142        return input.getLine();
143    }
144 
145    /**
146     * Decrements the reading position by one and reads a single character.
147     * If no characters are left, <code>-1</code> is returned.
148     * Otherwise a cast to <code>char</code> gives the character read.
149     *
150     * @return  Character read, if there are no more chars
151     *          <code>-1</code> is returned.
152     */
153    public int readInverse() {
154        return input.readInverse();
155    }
156 
157}

[all classes][org.qedeq.kernel.bo.parser]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov