Polish CronSequenceGenerator and tests

This commit is contained in:
Sam Brannen
2016-04-23 18:05:54 +02:00
parent 151530b93b
commit 4a4cd5bde8
2 changed files with 29 additions and 28 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -95,7 +95,6 @@ public class CronSequenceGenerator {
parse(expression);
}
/**
* Return the cron pattern that this sequence generator has been built for.
*/
@@ -149,22 +148,6 @@ public class CronSequenceGenerator {
return calendar.getTime();
}
/**
* Indicates whether the specified cron expression can be parsed into a
* valid cron sequence generator
* @param cronExpression the expression to evaluate
* @return a boolean indicating whether the given expression is a valid cron
* expression
*/
public static boolean isValidExpression(String cronExpression) {
String[] fields = StringUtils.tokenizeToStringArray(cronExpression, " ");
return validateCronFields(fields);
}
private static boolean validateCronFields(String[] fields) {
return fields != null && fields.length == 6;
}
private void doNext(Calendar calendar, int dot) {
List<Integer> resets = new ArrayList<Integer>();
@@ -278,7 +261,7 @@ public class CronSequenceGenerator {
*/
private void parse(String expression) throws IllegalArgumentException {
String[] fields = StringUtils.tokenizeToStringArray(expression, " ");
if (!validateCronFields(fields)) {
if (!areValidCronFields(fields)) {
throw new IllegalArgumentException(String.format(
"Cron expression must consist of 6 fields (found %d in \"%s\")", fields.length, expression));
}
@@ -399,6 +382,23 @@ public class CronSequenceGenerator {
}
/**
* Determine whether the specified expression represents a valid cron pattern.
* <p>Specifically, this method verifies that the expression contains six
* fields separated by single spaces.
* @param expression the expression to evaluate
* @return {@code true} if the given expression is a valid cron expression
*/
public static boolean isValidExpression(String expression) {
String[] fields = StringUtils.tokenizeToStringArray(expression, " ");
return areValidCronFields(fields);
}
private static boolean areValidCronFields(String[] fields) {
return (fields != null && fields.length == 6);
}
@Override
public boolean equals(Object other) {
if (this == other) {