Interface ArgumentReader
- All Known Subinterfaces:
ArgumentReader.Immutable
,ArgumentReader.Mutable
public interface ArgumentReader
An
ArgumentReader
allows for sequential reading of an input
String
, by providing a "cursor" that advances when part
of the String
is read.
The base ArgumentReader
interface (this) only contains
methods that get the state of the reader. The sub-interfaces,
ArgumentReader.Immutable
and ArgumentReader.Mutable
indicate whether the reader
is indicating state or is an active reader.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Represents aArgumentReader
where the cursor position cannot be changed.static interface
Represents aArgumentReader
where the cursor may move. -
Method Summary
Modifier and TypeMethodDescriptionboolean
canRead()
Gets whether this reader has not finished reading the input string.createException
(Component errorMessage) Creates anArgumentParseException
with the provided message, based on the current state of this object.int
cursor()
Gets the location of the cursor.input()
Gets the argument string that is being read by this reader.parsed()
Gets the substring that has already been parsed.char
Gets the character after the cursor ifcanRead()
is true.Gets the substring that has yet to be read.int
Get the number of characters that have not yet been read.int
Gets the length of the input string.
-
Method Details
-
input
String input()Gets the argument string that is being read by this reader.- Returns:
- The input
String
-
remainingLength
int remainingLength()Get the number of characters that have not yet been read.- Returns:
- The length of the remaining string
-
totalLength
int totalLength()Gets the length of the input string.- Returns:
- The length of the input string
-
cursor
int cursor()Gets the location of the cursor.If zero, the cursor has not yet read a character. If equal to
totalLength()
, this cursor is at the end of the string, andcanRead()
will befalse
- Returns:
- The location of the cursor
-
parsed
String parsed()Gets the substring that has already been parsed.- Returns:
- The substring that has been parsed.
-
remaining
String remaining()Gets the substring that has yet to be read.- Returns:
- The substring that has yet to be read.
-
canRead
boolean canRead()Gets whether this reader has not finished reading the input string.This is equivalent to
remainingLength()
> 0- Returns:
true
if there are further characters to read.
-
peekCharacter
char peekCharacter()Gets the character after the cursor ifcanRead()
is true.- Returns:
- The next character
- Throws:
IllegalStateException
- ifcanRead()
is false
-
createException
Creates anArgumentParseException
with the provided message, based on the current state of this object.Note that the exception will not be thrown. It is up to the caller of this method to throw the exception.
- Parameters:
errorMessage
- The error message to display- Returns:
- The exception
-