Option with one parameter (mandatory by default)

Introduced properties

protected abstract fun convert(str: String): VALUE

opts :: OptionParameter :: convert

Convert str to a value of type VALUE.
init defaultinit(help: String, default: VALUE, names: nullable Array[String])

opts :: OptionParameter :: defaultinit

fun parameter_mandatory: Bool

opts :: OptionParameter :: parameter_mandatory

Is the parameter mandatory?
fun parameter_mandatory=(parameter_mandatory: Bool)

opts :: OptionParameter :: parameter_mandatory=

Is the parameter mandatory?

Redefined properties

redef type SELF: OptionParameter

opts $ OptionParameter :: SELF

Type of this instance, automatically specialized in every class
redef fun read_param(opts: OptionContext, it: Iterator[String])

opts $ OptionParameter :: read_param

Consume parameters for this option

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
type VALUE: nullable Object

opts :: Option :: VALUE

Type of the value of the option
fun add_aliases(names: String...)

opts :: Option :: add_aliases

Add new aliases for this option
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
protected abstract fun convert(str: String): VALUE

opts :: OptionParameter :: convert

Convert str to a value of type VALUE.
fun default_value: VALUE

opts :: Option :: default_value

Default value of this option
fun default_value=(default_value: VALUE)

opts :: Option :: default_value=

Default value of this option
init defaultinit(help: String, default: VALUE, names: nullable Array[String])

opts :: OptionParameter :: defaultinit

init defaultinit(help: String, default: VALUE, names: nullable Array[String])

opts :: Option :: defaultinit

Create a new option
fun errors: Array[String]

opts :: Option :: errors

Gathering errors during parsing
protected fun errors=(errors: Array[String])

opts :: Option :: errors=

Gathering errors during parsing
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
fun helptext: String

opts :: Option :: helptext

Human readable description of the option
protected fun helptext=(helptext: String)

opts :: Option :: helptext=

Human readable description of the option
fun hidden: Bool

opts :: Option :: hidden

Is this option hidden from usage?
fun hidden=(hidden: Bool)

opts :: Option :: hidden=

Is this option hidden from usage?
init init

core :: Object :: init

fun init_opt(help: String, default: VALUE, names: nullable Array[String])

opts :: Option :: init_opt

Init option helptext, default_value and names.
fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun mandatory: Bool

opts :: Option :: mandatory

Is this option mandatory?
fun mandatory=(mandatory: Bool)

opts :: Option :: mandatory=

Is this option mandatory?
fun names: Array[String]

opts :: Option :: names

Names for the option (including long and short ones)
protected fun names=(names: Array[String])

opts :: Option :: names=

Names for the option (including long and short ones)
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun parameter_mandatory: Bool

opts :: OptionParameter :: parameter_mandatory

Is the parameter mandatory?
fun parameter_mandatory=(parameter_mandatory: Bool)

opts :: OptionParameter :: parameter_mandatory=

Is the parameter mandatory?
fun pretty(off: Int): String

opts :: Option :: pretty

A pretty print for this help
fun pretty_default: String

opts :: Option :: pretty_default

Pretty print the default value.
fun read: Bool

opts :: Option :: read

Has this option been read?
fun read=(read: Bool)

opts :: Option :: read=

Has this option been read?
protected fun read_param(opts: OptionContext, it: Iterator[String])

opts :: Option :: read_param

Consume parameters for this option
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun value: VALUE

opts :: Option :: value

Current value of this option
fun value=(value: VALUE)

opts :: Option :: value=

Current value of this option
package_diagram opts::OptionParameter OptionParameter opts::Option Option opts::OptionParameter->opts::Option core::Object Object opts::Option->core::Object ...core::Object ... ...core::Object->core::Object opts::OptionString OptionString opts::OptionString->opts::OptionParameter opts::OptionEnum OptionEnum opts::OptionEnum->opts::OptionParameter opts::OptionInt OptionInt opts::OptionInt->opts::OptionParameter opts::OptionFloat OptionFloat opts::OptionFloat->opts::OptionParameter opts::OptionArray OptionArray opts::OptionArray->opts::OptionParameter privileges::OptionUserAndGroup OptionUserAndGroup privileges::OptionUserAndGroup->opts::OptionParameter

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

abstract class Option

opts :: Option

Super class of all option's class

Children

class OptionArray

opts :: OptionArray

An option with an array as parameter
class OptionEnum

opts :: OptionEnum

An option to choose from an enumeration
class OptionFloat

opts :: OptionFloat

An option with a Float as parameter
class OptionInt

opts :: OptionInt

An option with an Int as parameter
class OptionString

opts :: OptionString

An option with a String as parameter
class OptionUserAndGroup

privileges :: OptionUserAndGroup

Option to ask for a username and group

Class definitions

opts $ OptionParameter
# Option with one parameter (mandatory by default)
abstract class OptionParameter
	super Option

	# Convert `str` to a value of type `VALUE`.
	protected fun convert(str: String): VALUE is abstract

	# Is the parameter mandatory?
	var parameter_mandatory = true is writable

	redef fun read_param(opts, it)
	do
		super

		var ok = it.is_ok
		if ok and not parameter_mandatory and not it.item.is_empty and it.item.chars.first == '-' then
			# The next item may looks like a known command
			# Only check if `not parameter_mandatory`
			for opt in opts.options do
				if opt.names.has(it.item) then
					# The next item is a known command
					ok = false
					break
				end
			end
		end

		if ok then
			value = convert(it.item)
			it.next
		else
			errors.add("Parameter expected for option {names.first}.")
		end
	end
end
lib/opts/opts.nit:142,1--176,3