Overhaul the argument parsing API

This commit is contained in:
zontreck 2025-01-22 03:58:52 -07:00
parent 62d26082c9
commit 82f5c18129
9 changed files with 207 additions and 153 deletions

View file

@ -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;
}
}

View file

@ -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} }";
}
}

View file

@ -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} }";
}
}