Overhaul the argument parsing API
This commit is contained in:
parent
62d26082c9
commit
82f5c18129
9 changed files with 207 additions and 153 deletions
|
@ -2,9 +2,13 @@ import 'package:libac_dart/argparse/Args.dart';
|
|||
|
||||
class BoolArgument extends Argument<bool> {
|
||||
bool _value = false;
|
||||
BoolArgument({required super.name, super.description = ""}) {
|
||||
hasValue = false;
|
||||
_value = true;
|
||||
bool _hasValue = true;
|
||||
|
||||
BoolArgument({required super.name, bool? value = true}) {
|
||||
if (value != null)
|
||||
this._value = value;
|
||||
else
|
||||
_hasValue = false;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -21,4 +25,9 @@ class BoolArgument extends Argument<bool> {
|
|||
String toString() {
|
||||
return "BooleanArgument{ ${name}=${_value} }";
|
||||
}
|
||||
|
||||
@override
|
||||
bool hasValue() {
|
||||
return _hasValue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,25 @@
|
|||
import 'package:libac_dart/argparse/Args.dart';
|
||||
|
||||
class IntegerArgument extends Argument<int> {
|
||||
final int value;
|
||||
int _value = 0;
|
||||
bool _hasValue = false;
|
||||
|
||||
IntegerArgument(
|
||||
{required super.name, required this.value, super.description = ""}) {
|
||||
hasValue = value != 0;
|
||||
IntegerArgument({required super.name, int? value}) {
|
||||
if (value != null) {
|
||||
this._value = value;
|
||||
_hasValue = true;
|
||||
} else
|
||||
_hasValue = false;
|
||||
}
|
||||
|
||||
@override
|
||||
bool hasValue() {
|
||||
return _hasValue;
|
||||
}
|
||||
|
||||
@override
|
||||
int getValue() {
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -20,16 +29,25 @@ class IntegerArgument extends Argument<int> {
|
|||
|
||||
@override
|
||||
String toString() {
|
||||
return "IntegerArgument{ ${name}=${value} }";
|
||||
return "IntegerArgument{ ${name}=${_value} }";
|
||||
}
|
||||
}
|
||||
|
||||
class DoubleArgument extends Argument<double> {
|
||||
final double value;
|
||||
double _value = 0.0;
|
||||
bool _hasValue = false;
|
||||
|
||||
DoubleArgument(
|
||||
{required super.name, required this.value, super.description = ""}) {
|
||||
hasValue = value != 0.0;
|
||||
DoubleArgument({required super.name, double? value}) {
|
||||
if (value != null) {
|
||||
_hasValue = true;
|
||||
_value = value;
|
||||
} else
|
||||
_hasValue = false;
|
||||
}
|
||||
|
||||
@override
|
||||
bool hasValue() {
|
||||
return _hasValue;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -39,11 +57,11 @@ class DoubleArgument extends Argument<double> {
|
|||
|
||||
@override
|
||||
double getValue() {
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return "DoubleArgument{ ${name}=${value} }";
|
||||
return "DoubleArgument{ ${name}=${_value} }";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,25 @@
|
|||
import 'package:libac_dart/argparse/Args.dart';
|
||||
|
||||
class StringArgument extends Argument<String> {
|
||||
final String value;
|
||||
String _value = "";
|
||||
bool _hasValue = false;
|
||||
|
||||
StringArgument(
|
||||
{required super.name, required this.value, super.description}) {
|
||||
hasValue = value.isNotEmpty;
|
||||
StringArgument({required super.name, String? value}) {
|
||||
if (value != null) {
|
||||
_hasValue = true;
|
||||
_value = value;
|
||||
} else
|
||||
_hasValue = false;
|
||||
}
|
||||
|
||||
@override
|
||||
bool hasValue() {
|
||||
return _hasValue;
|
||||
}
|
||||
|
||||
@override
|
||||
String getValue() {
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -20,6 +29,6 @@ class StringArgument extends Argument<String> {
|
|||
|
||||
@override
|
||||
String toString() {
|
||||
return "StringArgument{ ${name}=${value} }";
|
||||
return "StringArgument{ ${name}=${_value} }";
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue