Use implements instead of extends

This commit is contained in:
Your Name 2026-02-11 09:19:18 +01:00
parent 6133e58226
commit 692ad41502
2 changed files with 10 additions and 8 deletions

View file

@ -18,7 +18,7 @@
- [X] Create Formula.toStringLiteral. It is the reverse of Formula.fromSet( Formula.fromArrayStringLiteral(string)[0] )
- [X] Create UnitSpec.toStringLiteral, like Formula.toStringLiteral
- [X] Make Formula and UnitSpec subclasses of FormulaElement. Change return type of functions that return Object to FormulaElement if necessary.
- [ ] Define toStringLiteral in FormulaElement.
- [X] Define toStringLiteral in FormulaElement.
- Database file location:
- [ ] In linux, the sqlite database file will be located following rules at https://specifications.freedesktop.org/basedir/latest/
- [ ] In Windows, the sqlite database file will be in %appdata%/Roaming

View file

@ -67,9 +67,13 @@ List<FormulaElement> parseCorpusElements(String arrayStringLiteral) {
typedef Number = double;
/// Abstract base class for formula elements
abstract class FormulaElement {}
abstract class FormulaElement {
/// Creates a string literal representation of the FormulaElement that can be parsed
/// by the D4RT parser to recreate the same FormulaElement object.
String toStringLiteral();
}
class UnitSpec extends FormulaElement {
class UnitSpec implements FormulaElement {
final String name;
final String baseUnit;
final String symbol;
@ -136,8 +140,7 @@ class UnitSpec extends FormulaElement {
return units.toList(growable: false);
}
/// Creates a string literal representation of the UnitSpec that can be parsed
/// by the D4RT parser to recreate the same UnitSpec object.
@override
String toStringLiteral() {
final buffer = StringBuffer('{');
buffer.write('"name": "$name", "symbol": "$symbol"');
@ -194,8 +197,7 @@ class VariableSpec {
@override
int get hashCode => Object.hash(unit, name, values != null ? const DeepCollectionEquality().hash(values!) : 0);
/// Creates a string literal representation of the VariableSpec that can be parsed
/// by the D4RT parser.
@override
String toStringLiteral() {
final buffer = StringBuffer('{');
buffer.write('"name": "$name"');
@ -219,7 +221,7 @@ class VariableSpec {
}
}
class Formula extends FormulaElement {
class Formula implements FormulaElement {
final String name;
final String? description;
final List<VariableSpec> input;