CronExpression.fromString constructor
CronExpression.fromString(
- String cronExpression
Parses a cron expression string into a CronExpression.
Accepts 5-part (Standard), 6-part, or 7-part (Quartz) expressions.
If fewer than 5 parts are provided, falls back to * * ? * *.
Implementation
factory CronExpression.fromString(String cronExpression) {
List<String> expressionParts = cronExpression.split(' ');
if (expressionParts.length < 5) {
expressionParts = '* * ? * *'.split(' ');
}
var expressionType = expressionParts.contains('?')
? CronExpressionType.quartz
: CronExpressionType.standard;
if (expressionParts.length == 5) {
expressionParts.insert(0, '');
expressionParts.add('');
} else if (expressionParts.length == 6) {
expressionParts.add('');
}
return CronExpression(
CronSecond(
expressionParts[0].isEmpty ? null : expressionParts[0],
),
CronMinute(
expressionParts[1],
),
CronHour(
expressionParts[2],
),
CronDay(
expressionParts[3],
expressionParts[5],
expressionType,
),
CronMonth(
expressionParts[4],
expressionType,
),
CronYear(
expressionParts[6].isEmpty ? null : expressionParts[6],
),
expressionType,
);
}