/**
   * Constructs a new <CODE>CronExpression</CODE> based on the specified parameter.
   *
   * @param cronExpression String representation of the cron expression the new object should
   *     represent
   * @throws java.text.ParseException if the string expression cannot be parsed into a valid <CODE>
   *     CronExpression</CODE>
   */
  public CronExpression(String cronExpression) throws ParseException {
    if (cronExpression == null) {
      throw new IllegalArgumentException(MSGS.cronExpressionNull());
    }

    this.cronExpression = cronExpression;

    buildExpression(cronExpression.toUpperCase());
  }