Util.java 2.54 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.granite.maintenance.impl;

import com.adobe.granite.maintenance.MaintenanceTaskInfo;
import com.adobe.granite.maintenance.MaintenanceUtil;

public abstract class Util {
    public static String getCronExpression(int[] timeDef) {
        if (timeDef != null) {
            return "0 " + String.valueOf(timeDef[0]) + " " + String.valueOf(timeDef[1]) + " * * ?";
        }
        return null;
    }

    public static String getCronExpression(MaintenanceTaskInfo.TaskSchedule schedule, Integer[] weekdays, String time, Integer firstLastWeek) {
        int[] parsedTime = MaintenanceUtil.parseTime(time);
        StringBuilder sb = new StringBuilder();
        if (parsedTime != null) {
            sb.append("0 ");
            sb.append(String.valueOf(parsedTime[1]));
            sb.append(' ');
            sb.append(String.valueOf(parsedTime[0]));
            if (MaintenanceTaskInfo.TaskSchedule.DAILY.equals((Object)schedule)) {
                if (weekdays == null) {
                    sb.append(" * * ?");
                } else {
                    sb.append(" ? * ");
                    boolean first = true;
                    Integer[] arr$ = weekdays;
                    int len$ = arr$.length;
                    for (int i$ = 0; i$ < len$; ++i$) {
                        int day = arr$[i$];
                        if (!first) {
                            sb.append(',');
                        }
                        sb.append(String.valueOf(day - 1));
                        first = false;
                    }
                }
            } else if (MaintenanceTaskInfo.TaskSchedule.WEEKLY.equals((Object)schedule) || MaintenanceTaskInfo.TaskSchedule.BIWEEKLY.equals((Object)schedule)) {
                if (weekdays == null) {
                    weekdays = new Integer[]{1};
                }
                if (weekdays.length >= 1) {
                    sb.append(" ? * ");
                    sb.append(String.valueOf(weekdays[0]));
                }
            } else if (schedule == MaintenanceTaskInfo.TaskSchedule.MONTHLY) {
                if (weekdays == null) {
                    weekdays = new Integer[]{1};
                }
                if (weekdays.length >= 1) {
                    String recurrence = firstLastWeek == null ? "" : (firstLastWeek == 0 ? "#1" : "L");
                    sb.append(" ? * ");
                    sb.append(String.valueOf(weekdays[0]) + recurrence);
                }
            }
        }
        return sb.length() > 0 ? sb.toString() : null;
    }
}