CronExpression.fromString constructor

CronExpression.fromString(
  1. String cronExpression
)

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,
  );
}