Skip to content

Commit de4ee85

Browse files
committed
Implement >= and <= operators.
1 parent 9a10970 commit de4ee85

File tree

2 files changed

+56
-53
lines changed

2 files changed

+56
-53
lines changed

lib/src/api/models/condition.dart

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -23,63 +23,58 @@ enum ConditionOperation {
2323

2424
/// less than operator. Checks if the value of the variable is less than the
2525
/// value provided.
26-
lessThan;
26+
lessThan,
27+
28+
/// greater than or equal to operator. Checks if the value of the variable is
29+
/// greater than or equal to the value provided.
30+
greaterThanOrEqualTo,
31+
32+
/// less than or equal to operator. Checks if the value of the variable is
33+
/// less than or equal to the value provided.
34+
lessThanOrEqualTo;
2735

2836
/// label for the operation
29-
String get label {
30-
switch (this) {
31-
case ConditionOperation.equalsTo:
32-
return 'Equals To';
33-
case ConditionOperation.notEqualsTo:
34-
return 'Not Equal To';
35-
case ConditionOperation.greaterThan:
36-
return 'Greater Than';
37-
case ConditionOperation.lessThan:
38-
return 'Less Than';
39-
}
40-
}
37+
String get label => switch (this) {
38+
equalsTo => 'Equals To',
39+
notEqualsTo => 'Not Equal To',
40+
greaterThan => 'Greater Than',
41+
lessThan => 'Less Than',
42+
greaterThanOrEqualTo => 'Greater Than Or Equal To',
43+
lessThanOrEqualTo => 'Less Than Or Equal To',
44+
};
4145

4246
/// short description of the operation
43-
String get sentence {
44-
switch (this) {
45-
case ConditionOperation.equalsTo:
46-
return 'equal to';
47-
case ConditionOperation.notEqualsTo:
48-
return 'not equal to';
49-
case ConditionOperation.greaterThan:
50-
return 'greater than';
51-
case ConditionOperation.lessThan:
52-
return 'less than';
53-
}
54-
}
47+
String get sentence => switch (this) {
48+
equalsTo => 'equal to',
49+
notEqualsTo => 'not equal to',
50+
greaterThan => 'greater than',
51+
lessThan => 'less than',
52+
greaterThanOrEqualTo => 'greater than or equal to',
53+
lessThanOrEqualTo => 'less than or equal to',
54+
};
5555

5656
/// short description of the operation
57-
String get sign {
58-
switch (this) {
59-
case ConditionOperation.equalsTo:
60-
return '==';
61-
case ConditionOperation.notEqualsTo:
62-
return '!=';
63-
case ConditionOperation.greaterThan:
64-
return '>';
65-
case ConditionOperation.lessThan:
66-
return '<';
67-
}
68-
}
57+
String get sign => switch (this) {
58+
equalsTo => '==',
59+
notEqualsTo => '!=',
60+
greaterThan => '>',
61+
lessThan => '<',
62+
greaterThanOrEqualTo => '>=',
63+
lessThanOrEqualTo => '<=',
64+
};
6965

7066
/// Allows the provided [visitor] to visit this operation.
71-
bool accept(Object? left, Object? right, ConditionOperatorVisitor visitor) {
72-
switch (this) {
73-
case ConditionOperation.equalsTo:
74-
return visitor.visitEqualsOperator(left, right);
75-
case ConditionOperation.notEqualsTo:
76-
return visitor.visitNotEqualsOperator(left, right);
77-
case ConditionOperation.greaterThan:
78-
return visitor.visitGreaterThanOperator(left, right);
79-
case ConditionOperation.lessThan:
80-
return visitor.visitLessThanOperator(left, right);
81-
}
82-
}
67+
bool accept(Object? left, Object? right, ConditionOperatorVisitor visitor) =>
68+
switch (this) {
69+
equalsTo => visitor.visitEqualsOperator(left, right),
70+
notEqualsTo => visitor.visitNotEqualsOperator(left, right),
71+
greaterThan => visitor.visitGreaterThanOperator(left, right),
72+
lessThan => visitor.visitLessThanOperator(left, right),
73+
greaterThanOrEqualTo =>
74+
visitor.visitGreaterThanOrEqualToOperator(left, right),
75+
lessThanOrEqualTo =>
76+
visitor.visitLessThanOrEqualToOperator(left, right),
77+
};
8378
}
8479

8580
/// join operator for complex conditions
@@ -595,17 +590,23 @@ class CanvasConditions with EquatableMixin {
595590

596591
/// A visitor that can be used to visit a [ConditionOperation].
597592
abstract interface class ConditionOperatorVisitor {
598-
/// Visits a [ConditionOperation].
593+
/// Visits a [ConditionOperation.equalsTo].
599594
bool visitEqualsOperator(Object? left, Object? right);
600595

601-
/// Visits a [ConditionOperation].
596+
/// Visits a [ConditionOperation.notEqualsTo].
602597
bool visitNotEqualsOperator(Object? left, Object? right);
603598

604-
/// Visits a [ConditionOperation].
599+
/// Visits a [ConditionOperation.greaterThan].
605600
bool visitGreaterThanOperator(Object? left, Object? right);
606601

607-
/// Visits a [ConditionOperation].
602+
/// Visits a [ConditionOperation.lessThan].
608603
bool visitLessThanOperator(Object? left, Object? right);
604+
605+
/// Visits a [ConditionOperation.greaterThanOrEqualTo].
606+
bool visitGreaterThanOrEqualToOperator(Object? left, Object? right);
607+
608+
/// Visits a [ConditionOperation.lessThanOrEqualTo].
609+
bool visitLessThanOrEqualToOperator(Object? left, Object? right);
609610
}
610611

611612
/// An interface for evaluating conditions.

lib/src/api/models/condition.g.dart

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)