Package org.snakeyaml.engine.v2.scanner
Class StreamReader
- java.lang.Object
-
- org.snakeyaml.engine.v2.scanner.StreamReader
-
public final class StreamReader extends java.lang.ObjectRead the provided stream of code points into String and implement look-ahead operations. Checks if code points are in the allowed range.
-
-
Field Summary
Fields Modifier and Type Field Description private char[]bufferprivate intbufferSizeprivate int[]codePointsWindowRead data (as a moving window for input stream)private intcolumnprivate intdataLengthReal length of the data in dataWindowprivate intdocumentIndexprivate booleaneofprivate intindexindex is only required to implement 1024 key length restriction and the total length restrictionprivate intlineprivate java.lang.Stringnameprivate intpointerThe variable points to the current position in the data arrayprivate java.io.Readerstreamprivate booleanuseMarks
-
Constructor Summary
Constructors Constructor Description StreamReader(java.io.Reader reader, LoadSettings loadSettings)Deprecated.use the other constructor with LoadSettings firstStreamReader(java.lang.String stream, LoadSettings loadSettings)Deprecated.use the other constructor with LoadSettings firstStreamReader(LoadSettings loadSettings, java.io.Reader reader)CreateStreamReader(LoadSettings loadSettings, java.lang.String stream)Create
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleanensureEnoughData()private booleanensureEnoughData(int size)voidforward()read the next character and move the pointer.voidforward(int length)read the next length characters and move the pointer.intgetColumn()intgetDocumentIndex()Get the position of the currect char in the current YAML documentintgetIndex()intgetLine()java.util.Optional<Mark>getMark()GenerateMarkif it is configuredstatic booleanisPrintable(int c)Check if the code point is human-readablestatic booleanisPrintable(java.lang.String data)Check if the all the data is human-readable (used in Representer)private voidmoveIndices(int length)intpeek()Peek the next code point (look without moving the pointer)intpeek(int index)Peek the next index-th code pointjava.lang.Stringprefix(int length)Create String from code pointsjava.lang.StringprefixForward(int length)prefix(length) immediately followed by forward(length)voidresetDocumentIndex()Reset the position to start (at the start of a new document in the stream)private voidupdate()
-
-
-
Field Detail
-
name
private final java.lang.String name
-
stream
private final java.io.Reader stream
-
bufferSize
private final int bufferSize
-
buffer
private final char[] buffer
-
useMarks
private final boolean useMarks
-
codePointsWindow
private int[] codePointsWindow
Read data (as a moving window for input stream)
-
dataLength
private int dataLength
Real length of the data in dataWindow
-
pointer
private int pointer
The variable points to the current position in the data array
-
eof
private boolean eof
-
index
private int index
index is only required to implement 1024 key length restriction and the total length restriction
-
documentIndex
private int documentIndex
-
line
private int line
-
column
private int column
-
-
Constructor Detail
-
StreamReader
@Deprecated public StreamReader(java.io.Reader reader, LoadSettings loadSettings)Deprecated.use the other constructor with LoadSettings first- Parameters:
loadSettings- - configuration optionsreader- - the input
-
StreamReader
public StreamReader(LoadSettings loadSettings, java.io.Reader reader)
Create- Parameters:
loadSettings- - configuration optionsreader- - the input
-
StreamReader
@Deprecated public StreamReader(java.lang.String stream, LoadSettings loadSettings)Deprecated.use the other constructor with LoadSettings first- Parameters:
stream- - the inputloadSettings- - configuration options
-
StreamReader
public StreamReader(LoadSettings loadSettings, java.lang.String stream)
Create- Parameters:
loadSettings- - configuration optionsstream- - the input
-
-
Method Detail
-
isPrintable
public static boolean isPrintable(java.lang.String data)
Check if the all the data is human-readable (used in Representer)- Parameters:
data- - content to be checked for human-readability- Returns:
- true only when everything is human-readable
-
isPrintable
public static boolean isPrintable(int c)
Check if the code point is human-readable- Parameters:
c- - code point to be checked for human-readability- Returns:
- true only when the code point is human-readable
-
getMark
public java.util.Optional<Mark> getMark()
GenerateMarkif it is configured- Returns:
Markof the current position or emptyOptionalotherwise
-
forward
public void forward()
read the next character and move the pointer. if the last character is high surrogate one more character will be read
-
forward
public void forward(int length)
read the next length characters and move the pointer. if the last character is high surrogate one more character will be read- Parameters:
length- amount of characters to move forward
-
peek
public int peek()
Peek the next code point (look without moving the pointer)- Returns:
- the next code point or 0 if empty
-
peek
public int peek(int index)
Peek the next index-th code point- Parameters:
index- to peek- Returns:
- the next index-th code point or 0 if empty
-
prefix
public java.lang.String prefix(int length)
Create String from code points- Parameters:
length- amount of the characters to convert- Returns:
- the String representation
-
prefixForward
public java.lang.String prefixForward(int length)
prefix(length) immediately followed by forward(length)- Parameters:
length- amount of characters to get- Returns:
- the next length code points
-
ensureEnoughData
private boolean ensureEnoughData()
-
ensureEnoughData
private boolean ensureEnoughData(int size)
-
update
private void update()
-
getColumn
public int getColumn()
- Returns:
- current position as number (in characters) from the beginning of the current line
-
moveIndices
private void moveIndices(int length)
-
getDocumentIndex
public int getDocumentIndex()
Get the position of the currect char in the current YAML document- Returns:
- index of the current position from the beginning of the current document
-
resetDocumentIndex
public void resetDocumentIndex()
Reset the position to start (at the start of a new document in the stream)
-
getIndex
public int getIndex()
- Returns:
- current position as number (in characters) from the beginning of the stream
-
getLine
public int getLine()
- Returns:
- current line from the beginning of the stream
-
-