Package net.loomchild.segment.srx
Class TextManager
java.lang.Object
net.loomchild.segment.srx.TextManager
Represents text manager.
Responsible for managing current text, reading more text from the reader
and checking if there is more text left.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
(package private) int
private Reader
private CharSequence
-
Constructor Summary
ConstructorsConstructorDescriptionTextManager
(Reader reader, int bufferLength) Creates text manager reading text from given reader.TextManager
(CharSequence text) Creates text manager containing given text. -
Method Summary
Modifier and TypeMethodDescriptionint
getText()
boolean
private void
initText()
Reads initial text from reader if it has not been initialized yet.private String
read
(int amount) Reads the given amount of characters and returns them as a string.private int
Reads specified amount of characters.void
readText
(int amount) Deletes given amount of characters from current character buffer and tries to read up to given amount of new characters and stores them in current character buffer.
-
Field Details
-
text
-
nextCharacter
int nextCharacter -
reader
-
bufferLength
private int bufferLength
-
-
Constructor Details
-
TextManager
Creates text manager containing given text. Reading more text is not possible when using this constructor.- Parameters:
text
-
-
TextManager
Creates text manager reading text from given reader. Only specified amount of memory for buffer will be used. Managed text will never be longer than given buffer size. Text is not actually read until required (lazy initialization).- Parameters:
reader
-bufferLength
- read buffer size
-
-
Method Details
-
getBufferLength
public int getBufferLength() -
getText
- Returns:
- current text
-
hasMoreText
public boolean hasMoreText()- Returns:
- true if more text can be read
-
readText
public void readText(int amount) Deletes given amount of characters from current character buffer and tries to read up to given amount of new characters and stores them in current character buffer.- Parameters:
amount
- amount of characters to read- Throws:
IllegalArgumentException
- ifhasMoreText()
returns false or amount is greater than buffer size
-
initText
private void initText()Reads initial text from reader if it has not been initialized yet. -
read
Reads the given amount of characters and returns them as a string. UpdatesnextCharacter
by reading one additional character.- Parameters:
amount
- amount to be read- Returns:
- read characters as a string
-
read
Reads specified amount of characters. It is needed because when reading from consoleReader.read(char[])
it returns after first end of line (probably it checks if characters are available).- Parameters:
reader
- inputbuffer
- buffer where read characters will be stored- Returns:
- number of read characters
-