in core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/cluster/TimePatternConverter.java [41:90]
public static long toMilliSeconds(String source) throws IllegalArgumentException {
long milliseconds = 0;
boolean foundFlag = false;
checkCorrectnessOfPattern(source);
Matcher matcher;
matcher = createMatcher(NUMBERS_ONLY_STRING_PATTERN, source);
if (matcher.find()) {
// Note: This will also be used for regular numeric strings.
// This String -> long converter will be used for all strings.
milliseconds = Long.valueOf(source);
} else {
matcher = createMatcher(HOUR_REGEX_PATTERN, source);
if (matcher.find()) {
milliseconds = milliseconds + (3600000 * Long.valueOf(matcher.group(1)));
foundFlag = true;
}
matcher = createMatcher(MINUTES_REGEX_PATTERN, source);
if (matcher.find()) {
long minutes = Long.valueOf(matcher.group(1));
if ((minutes > 59) && foundFlag) {
throw new IllegalArgumentException(
"Minutes should contain a valid value between 0 and 59: " + source);
}
foundFlag = true;
milliseconds = milliseconds + (60000 * minutes);
}
matcher = createMatcher(SECONDS_REGEX_PATTERN, source);
if (matcher.find()) {
long seconds = Long.valueOf(matcher.group(1));
if ((seconds > 59) && foundFlag) {
throw new IllegalArgumentException(
"Seconds should contain a valid value between 0 and 59: " + source);
}
foundFlag = true;
milliseconds = milliseconds + (1000 * seconds);
}
// No pattern matched... initiating fallback check and conversion (if required).
// The source at this point may contain illegal values or special characters
if (!foundFlag) {
milliseconds = Long.valueOf(source);
}
}
return milliseconds;
}