Joutsen.ArgumentsParsing v0.3.0+1-ga4c84ed
Public Member Functions | Protected Member Functions | Protected Attributes | Properties | List of all members
Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType > Class Template Reference

A reader that processes a value from the input literals. More...

Public Member Functions

 ValueArgumentReader ()
 Creates a new instance for resulting types which implement the IConvertible interface. More...
 
 ValueArgumentReader (SimpleTypeConverter< string, ValueType > converter)
 Creates a new instance using a custom converter to produce the result value. More...
 
 ValueArgumentReader (SimpleTypeConverter< string, ValueType > converter, String startDelimiter, String endDelimiter, String partConnector, bool keepDelimiters)
 Creates a new instance using a custom converter for delimited values to produce the result value. More...
 
virtual ArgumentReadResult< ValueType > Read (ArgumentsIterator args, string name, int offset=0)
 Reads literals from the input to create a resulting value. More...
 
ArgumentReadResult< ValueType > Read (ArgumentsIterator args, string name, int offset=0)
 Reads literals from the input. More...
 

Protected Member Functions

virtual ArgumentReadResult< ValueType > ReadToEndDelimiter (ArgumentsIterator arguments, string name, int offset)
 Reads multiple literals from the input until the end delimiter is found. More...
 
virtual ValueType GetParsedValue (StringBuilder fullArgument, String name)
 Combines multiple literals into a single result value. More...
 
virtual ValueType GetParsedValue (string value, string argumentName)
 Converts a read value into the target type. More...
 

Protected Attributes

SimpleTypeConverter< string, ValueType > _converter
 The converter used to change the read literals into a different type. More...
 

Properties

virtual String ValueStartDelimiter [get, set]
 The delimiter that determines the start of a delimited value. More...
 
virtual String ValueEndDelimiter [get, set]
 The delimiter that determines the end of a delimited value. More...
 
virtual String ValuePartsConnector [get, set]
 The value that is added between the different literals read from the input when reading a delimited value. More...
 
virtual bool KeepDelimiters [get, set]
 Determines if the resulting value should contain the delimiters or not. More...
 
Set< String > ArgumentPrefixes [set]
 The prefixes of the arguments used by the parser. More...
 
virtual SimpleTypeConverter< string, ValueType > TypeConverter [get, set]
 The converter used to change the read literals into a different type. More...
 
- Properties inherited from Joutsen.ArgumentsParsing.ArgumentReader< ValueType >
Set< String > ArgumentPrefixes [set]
 The prefixes of the arguments used by the parser. More...
 

Detailed Description

A reader that processes a value from the input literals.

Remarks
This reader supports reading multiple values enclosed by delimiters into a single result value. The different values can be put together separated by a configured value and the delimiters can either be stripped or remain in the resulting value.
Since
0.2.0

Constructor & Destructor Documentation

◆ ValueArgumentReader() [1/3]

Creates a new instance for resulting types which implement the IConvertible interface.

◆ ValueArgumentReader() [2/3]

Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ValueArgumentReader ( SimpleTypeConverter< string, ValueType >  converter)

Creates a new instance using a custom converter to produce the result value.

◆ ValueArgumentReader() [3/3]

Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ValueArgumentReader ( SimpleTypeConverter< string, ValueType >  converter,
String  startDelimiter,
String  endDelimiter,
String  partConnector,
bool  keepDelimiters 
)

Creates a new instance using a custom converter for delimited values to produce the result value.

Member Function Documentation

◆ GetParsedValue() [1/2]

virtual ValueType Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.GetParsedValue ( string  value,
string  argumentName 
)
protectedvirtual

Converts a read value into the target type.

◆ GetParsedValue() [2/2]

virtual ValueType Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.GetParsedValue ( StringBuilder  fullArgument,
String  name 
)
protectedvirtual

Combines multiple literals into a single result value.

◆ Read()

virtual ArgumentReadResult< ValueType > Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.Read ( ArgumentsIterator  args,
string  name,
int  offset = 0 
)
virtual

Reads literals from the input to create a resulting value.

Parameters
argsthe input list of literal values represented by an iterator
namethe name of the argument whose values to read as found in the input
offsetan optional additional offset of literals where to start reading from the input
Returns
the value read from the input and the number of literals used in the process
Exceptions
ArgumentParseExceptionif a value cannot be converted to the ValueType or if a delimited value is not 'closed' correctly

Implements Joutsen.ArgumentsParsing.ArgumentReader< ValueType >.

Reimplemented in Joutsen.ArgumentsParsing.ChoiceArgumentReader< ValueType >.

◆ ReadToEndDelimiter()

virtual ArgumentReadResult< ValueType > Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ReadToEndDelimiter ( ArgumentsIterator  arguments,
string  name,
int  offset 
)
protectedvirtual

Reads multiple literals from the input until the end delimiter is found.

Member Data Documentation

◆ _converter

SimpleTypeConverter<string, ValueType> Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >._converter
protected

The converter used to change the read literals into a different type.

Property Documentation

◆ ArgumentPrefixes

Set<String> Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ArgumentPrefixes
set

The prefixes of the arguments used by the parser.

The values are sometimes used to limit the number of values read from the input.

Implements Joutsen.ArgumentsParsing.ArgumentReader< ValueType >.

◆ KeepDelimiters

virtual bool Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.KeepDelimiters
getset

Determines if the resulting value should contain the delimiters or not.

◆ TypeConverter

virtual SimpleTypeConverter<string, ValueType> Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.TypeConverter
getset

The converter used to change the read literals into a different type.

◆ ValueEndDelimiter

virtual String Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ValueEndDelimiter
getset

The delimiter that determines the end of a delimited value.

◆ ValuePartsConnector

virtual String Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ValuePartsConnector
getset

The value that is added between the different literals read from the input when reading a delimited value.

◆ ValueStartDelimiter

virtual String Joutsen.ArgumentsParsing.ValueArgumentReader< ValueType >.ValueStartDelimiter
getset

The delimiter that determines the start of a delimited value.