runOperation method
dynamic
runOperation(
- String operator,
- dynamic rhs
)
override
Implementation
@override
runOperation(String operator, dynamic rhs) {
int left = dateTime.millisecondsSinceEpoch;
int right = 0;
if (rhs is Date) {
right = rhs.dateTime.millisecondsSinceEpoch;
} else if (rhs is num) {
right = rhs.toInt();
} else if (rhs is String) {
right = DateTime.parse(rhs).millisecondsSinceEpoch;
}
dynamic rtn;
switch (operator) {
case '==':
rtn = left == right;
break;
case '!=':
rtn = left != right;
break;
case '<':
rtn = left < right;
break;
case '<=':
rtn = left <= right;
break;
case '>':
rtn = left > right;
break;
case '>=':
rtn = left >= right;
break;
case '-':
rtn = left - right;
break;
case '+':
rtn = left + right;
break;
case '/':
rtn = left / right;
break;
case '*':
rtn = left * right;
break;
case '%':
rtn = left % right;
break;
case '|':
rtn = left | right;
break;
case '^':
rtn = left ^ right;
break;
case '<<':
rtn = left << right;
break;
case '>>':
rtn = left >> right;
break;
case '&':
rtn = left & right;
break;
default:
throw ArgumentError('Unrecognized operator ${operator}');
}
return rtn;
}