Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
refactor: Added required comments for CronParser
  • Loading branch information
Roshni Joshi committed Nov 28, 2023
commit 4dba1b39a5cca1a25e0107fdbce038fcb4998707
24 changes: 24 additions & 0 deletions src/main/java/com/cronutils/parser/CronParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,12 @@ public Cron parse(final String expression) {
}
}

/**
* Parse string with nickname cron expressions
* @param expression cron expression, never null
* @return Cron instance
* @throws java.lang.IllegalArgumentException if expression does not match cron definition
*/
private Cron parseNicknameExpression(final String expression) {
Set<CronNicknames> cronNicknames = cronDefinition.getCronNicknames();
if(cronNicknames.isEmpty()){
Expand Down Expand Up @@ -142,11 +148,23 @@ private Cron parseNicknameExpression(final String expression) {
}
}

/**
* Parse string with composite cron expressions
* @param expression cron expression, never null
* @return Cron instance
* @throws java.lang.IllegalArgumentException if expression does not match cron definition
*/
private Cron parseCompositeExpression(final String expression) {
List<Cron> crons = Arrays.stream(expression.split("\\|\\|")).map(this::parse).collect(Collectors.toList());
return new CompositeCron(crons);
}

/**
* Parse string with multiple cron expressions
* @param expression cron expression, never null
* @return Cron instance
* @throws java.lang.IllegalArgumentException if expression does not match cron definition
*/
private Cron parseMultipleExpression(final String expression) {
List<String> crons = new ArrayList<>();
int cronscount = Arrays.stream(expression.split("\\s+")).mapToInt(s->s.split("\\|").length).max().orElse(0);
Expand All @@ -164,6 +182,12 @@ private Cron parseMultipleExpression(final String expression) {
return new CompositeCron(crons.stream().map(this::parse).collect(Collectors.toList()));
}

/**
* Parse string with single cron expression
* @param noExtraSpaceExpression cleaned cron expression, never null
* @return Cron instance
* @throws java.lang.IllegalArgumentException if expression does not match cron definition
*/
private Cron parseSingleExpression(final String noExtraSpaceExpression) {
final String[] expressionParts = noExtraSpaceExpression.toUpperCase().split(" ");
final int expressionLength = expressionParts.length;
Expand Down