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
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceRepresents aArgumentReaderwhere the cursor position cannot be changed.static interfaceRepresents aArgumentReaderwhere the cursor may move. -
Method Summary
Modifier and TypeMethodDescriptionbooleancanRead()Gets whether this reader has not finished reading the input string.createException(Component errorMessage) Creates anArgumentParseExceptionwith the provided message, based on the current state of this object.intcursor()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.charGets the character after the cursor ifcanRead()is true.Gets the substring that has yet to be read.intGet the number of characters that have not yet been read.intGets 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:
trueif 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 anArgumentParseExceptionwith 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
-