/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.curate; import java.util.Arrays; import java.util.List; /** * TaskQueueEntry defines the record or entry in the named task queues. * Regular immutable value object class. * * @author richardrodgers */ public final class TaskQueueEntry { private final String epersonId; private final String submitTime; private final String tasks; private final String objId; /** * TaskQueueEntry constructor with enumerated field values. * * @param epersonId * task owner * @param submitTime * time the task was submitted (System.currentTimeMillis()) * @param taskNames * list of task names * @param objId * usually a handle or workflow id */ public TaskQueueEntry(String epersonId, long submitTime, List<String> taskNames, String objId) { this.epersonId = epersonId; this.submitTime = Long.toString(submitTime); StringBuilder sb = new StringBuilder(); for (String tName : taskNames) { sb.append(tName).append(","); } this.tasks = sb.substring(0, sb.length() - 1); this.objId = objId; } /** * Constructor with a pipe-separated list of field values. * * @param entry * list of field values separated by '|'s */ public TaskQueueEntry(String entry) { String[] tokens = entry.split("\\|"); epersonId = tokens[0]; submitTime = tokens[1]; tasks = tokens[2]; objId = tokens[3]; } /** * Returns the epersonId (email) of the agent who enqueued this task entry. * * @return epersonId * name of EPerson (email) or 'unknown' if none recorded. */ public String getEpersonId() { return epersonId; } /** * Returns the timestamp of when this entry was enqueued. * * @return time * Submission timestamp */ public long getSubmitTime() { return Long.valueOf(submitTime); } /** * Return the list of tasks associated with this entry. * * @return tasks * the list of task names (Plugin names) */ public List<String> getTaskNames() { return Arrays.asList(tasks.split(",")); } /** * Returns the object identifier. * @return objId * usually a handle or workflow id */ public String getObjectId() { return objId; } /** * Returns a string representation of the entry * @return string * pipe-separated field values */ @Override public String toString() { return epersonId + "|" + submitTime + "|" + tasks + "|" + objId; } }