MCPcopy Create free account
hub / github.com/jmrozanec/cron-utils / mapTo

Method mapTo

src/main/java/com/cronutils/mapper/WeekDay.java:51–66  ·  view source on GitHub ↗

Maps given WeekDay to representation hold by this instance. @param targetWeekDayDefinition - referred weekDay @param dayOfWeek - day of week to be mapped. Value corresponds to this instance mapping. @return - int result

(final int dayOfWeek, final WeekDay targetWeekDayDefinition)

Source from the content-addressed store, hash-verified

49 * @return - int result
50 */
51 public int mapTo(final int dayOfWeek, final WeekDay targetWeekDayDefinition) {
52 if (firstDayZero && targetWeekDayDefinition.isFirstDayZero()) {
53 return bothSameStartOfRange(0, 6, this, targetWeekDayDefinition).apply(dayOfWeek);
54 }
55 if (!firstDayZero && !targetWeekDayDefinition.isFirstDayZero()) {
56 return bothSameStartOfRange(1, 7, this, targetWeekDayDefinition).apply(dayOfWeek);
57 }
58 //start range is different for each case. We need to normalize ranges
59 if (targetWeekDayDefinition.isFirstDayZero()) {
60 //my range is 1-7. I normalize ranges, get the "zero" mapping and turn result into original scale
61 return mapTo(dayOfWeek, new WeekDay(targetWeekDayDefinition.getMondayDoWValue() + 1, false)) - 1;
62 } else {
63 //my range is 0-6. I normalize ranges, get the "one" mapping and turn result into original scale
64 return (mapTo(dayOfWeek, new WeekDay(targetWeekDayDefinition.getMondayDoWValue() - 1, true))) % 7 + 1;
65 }
66 }
67
68 private Function<Integer, Integer> bothSameStartOfRange(final int startRange, final int endRange, final WeekDay source, final WeekDay target) {
69 return integer -> {

Calls 4

bothSameStartOfRangeMethod · 0.95
isFirstDayZeroMethod · 0.80
applyMethod · 0.65
getMondayDoWValueMethod · 0.45