TaskServletUtils.java 4.11 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.granite.taskmanagement.Task
 *  com.adobe.granite.taskmanagement.TaskAction
 *  com.adobe.granite.workflow.exec.Status
 *  org.apache.jackrabbit.util.ISO8601
 *  org.apache.sling.commons.json.JSONException
 *  org.apache.sling.commons.json.io.JSONWriter
 */
package com.adobe.granite.taskmanagement.impl.servlet;

import com.adobe.granite.taskmanagement.Task;
import com.adobe.granite.taskmanagement.TaskAction;
import com.adobe.granite.taskmanagement.impl.TaskImpl;
import com.adobe.granite.taskmanagement.impl.servlet.TaskJSONField;
import com.adobe.granite.workflow.exec.Status;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.apache.jackrabbit.util.ISO8601;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.io.JSONWriter;

public class TaskServletUtils {
    private TaskServletUtils() {
    }

    static String getFormattedDate(Date date) {
        Calendar cal = Calendar.getInstance();
        String dateString = "";
        if (date != null) {
            cal.setTime(date);
            dateString = ISO8601.format((Calendar)cal);
        }
        return dateString;
    }

    public static void writeTaskInfo(JSONWriter w, Task task) throws JSONException {
        w.object();
        w.key(TaskJSONField.TASK_ID.getValue()).value((Object)task.getId());
        w.key(TaskJSONField.PARENT_TASK_ID.getValue()).value((Object)task.getParentId());
        w.key(TaskJSONField.ACTION_NAMES.getValue());
        w.array();
        List taskActions = task.getActions();
        if (taskActions != null) {
            for (TaskAction action : taskActions) {
                w.value((Object)action.getActionID());
            }
        }
        w.endArray();
        w.key(TaskJSONField.UPDATE_TIME.getValue()).value((Object)TaskServletUtils.getFormattedDate(task.getLastModified()));
        w.key(TaskJSONField.CREATE_TIME.getValue()).value((Object)TaskServletUtils.getFormattedDate(task.getTimeStarted()));
        w.key(TaskJSONField.COMPLETE_TIME.getValue()).value((Object)TaskServletUtils.getFormattedDate(task.getTimeEnded()));
        w.key(TaskJSONField.DESCRIPTION.getValue()).value((Object)task.getDescription());
        w.key(TaskJSONField.INSTRUCTIONS.getValue()).value((Object)task.getInstructions());
        w.key(TaskJSONField.CONTENT_PATH.getValue()).value((Object)task.getContentPath());
        w.key(TaskJSONField.IS_PARENT_TASK.getValue()).value(task.hasSubTasks());
        w.key(TaskJSONField.NAME.getValue()).value((Object)task.getName());
        w.key(TaskJSONField.OWNER_ID.getValue()).value((Object)task.getCurrentAssignee());
        w.key(TaskJSONField.CREATED_BY.getValue()).value((Object)task.getCreatedBy());
        w.key(TaskJSONField.NAME_HIERARCHY.getValue()).value((Object)("/tasks/" + ((TaskImpl)task).getNameHierarchy()));
        String selectedActionId = null;
        if (task.getSelectedAction() != null) {
            selectedActionId = task.getSelectedAction().getActionID();
        }
        w.key(TaskJSONField.SELECTED_ACTION.getValue()).value((Object)selectedActionId);
        w.key(TaskJSONField.PROPERTIES.getValue());
        w.object();
        Iterator propertyNameIterator = task.getPropertyNames();
        if (propertyNameIterator != null) {
            while (propertyNameIterator.hasNext()) {
                String key = (String)propertyNameIterator.next();
                Object propertyValue = task.getProperty(key);
                if (propertyValue == null) continue;
                w.key(key).value(propertyValue);
            }
        }
        w.endObject();
        w.key(TaskJSONField.STATUS.getValue()).value((Object)task.getStatus());
        w.key(TaskJSONField.TASK_TYPE_NAME.getValue()).value((Object)task.getTaskTypeName());
        w.key(TaskJSONField.SUBTASKS.getValue());
        w.array();
        if (task.getSubTasks() != null) {
            for (Task subTask : task.getSubTasks()) {
                TaskServletUtils.writeTaskInfo(w, subTask);
            }
        }
        w.endArray();
        w.endObject();
    }
}