Exporter for CMSTask
git-svn-id: https://svn.libreccm.org/ccm/trunk@5718 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
386cad0203
commit
98a5c08919
|
|
@ -84,6 +84,8 @@ import com.arsdigita.workflow.simple.WorkflowTemplate;
|
||||||
import com.arsdigita.xml.XML;
|
import com.arsdigita.xml.XML;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
import org.libreccm.export.ExportManager;
|
||||||
|
import org.librecms.workflow.CmsTasksExporter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main CMS initializer, executed recurringly at each system startup.
|
* The main CMS initializer, executed recurringly at each system startup.
|
||||||
|
|
@ -247,6 +249,8 @@ public class Initializer extends CompoundInitializer {
|
||||||
s_conf.getPersonOrgaUnitsStepSortKey());
|
s_conf.getPersonOrgaUnitsStepSortKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ExportManager.getInstance().registerExporter(new CmsTasksExporter());
|
||||||
|
|
||||||
s_log.debug("CMS.Initializer.init(DomainInitEvent) completed");
|
s_log.debug("CMS.Initializer.init(DomainInitEvent) completed");
|
||||||
} // END init(DomainInitEvent e)
|
} // END init(DomainInitEvent e)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package org.librecms.workflow;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.workflow.CMSTask;
|
||||||
|
import com.arsdigita.cms.workflow.CMSTaskType;
|
||||||
|
import com.arsdigita.workflow.simple.UserTask;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import org.libreccm.workflow.AbstractAssignableTasksExporter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class CmsTasksExporter extends AbstractAssignableTasksExporter<CMSTask> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<CMSTask> exportsType() {
|
||||||
|
return CMSTask.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String exportsBaseDataObjectType() {
|
||||||
|
|
||||||
|
return UserTask.BASE_DATA_OBJECT_TYPE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String convertsToType() {
|
||||||
|
return "org.libreccm.workflow.CmsTask";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void exportAssignableTaskProperties(
|
||||||
|
final CMSTask task, final JsonGenerator jsonGenerator)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
final CMSTaskType taskType = task.getTaskType();
|
||||||
|
|
||||||
|
final String type;
|
||||||
|
switch (taskType.getName().toUpperCase()) {
|
||||||
|
case "AUTHOR":
|
||||||
|
type = "AUTHOR";
|
||||||
|
break;
|
||||||
|
case "EDIT":
|
||||||
|
type = "EDIT";
|
||||||
|
break;
|
||||||
|
case "DEPLOY":
|
||||||
|
type = "DEPLOY";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
type = "AUTHOR";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonGenerator.writeStringField("taskType", type);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -23,7 +23,6 @@ import com.arsdigita.db.DbHelper;
|
||||||
import com.arsdigita.domain.DomainObject;
|
import com.arsdigita.domain.DomainObject;
|
||||||
import com.arsdigita.domain.DomainObjectInstantiator;
|
import com.arsdigita.domain.DomainObjectInstantiator;
|
||||||
import com.arsdigita.kernel.ACSObjectInstantiator;
|
import com.arsdigita.kernel.ACSObjectInstantiator;
|
||||||
import com.arsdigita.kernel.ResourceType;
|
|
||||||
import com.arsdigita.mimetypes.MimeType;
|
import com.arsdigita.mimetypes.MimeType;
|
||||||
import com.arsdigita.persistence.DataObject;
|
import com.arsdigita.persistence.DataObject;
|
||||||
import com.arsdigita.persistence.Session;
|
import com.arsdigita.persistence.Session;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
package org.libreccm.workflow;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.Party;
|
||||||
|
import com.arsdigita.kernel.User;
|
||||||
|
import com.arsdigita.workflow.simple.UserTask;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
* @param <T>
|
||||||
|
*/
|
||||||
|
public abstract class AbstractAssignableTasksExporter<T extends UserTask>
|
||||||
|
extends AbstractTasksExporter<T> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void exportTaskProperties(final T task,
|
||||||
|
final JsonGenerator jsonGenerator)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
jsonGenerator.writeBooleanField("locked", task.isLocked());
|
||||||
|
|
||||||
|
final User lockingUser = task.getLockedUser();
|
||||||
|
if (lockingUser != null) {
|
||||||
|
final String lockingUserUuid = generateUuid(lockingUser);
|
||||||
|
jsonGenerator.writeStringField("lockingUser", lockingUserUuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
final SimpleDateFormat dateFormat = new SimpleDateFormat(
|
||||||
|
"yyyy-MM-dd'T'HH:mm:ssZ", Locale.ROOT);
|
||||||
|
jsonGenerator.writeStringField("startDate",
|
||||||
|
dateFormat.format(task.getStartDate()));
|
||||||
|
jsonGenerator.writeStringField("dueDate",
|
||||||
|
dateFormat.format(task.getDueDate()));
|
||||||
|
jsonGenerator.writeNumberField("durationMinutes",
|
||||||
|
task.getDuration().getDuration());
|
||||||
|
|
||||||
|
final Party notificationSender = task.getNotificationSender();
|
||||||
|
if (notificationSender != null) {
|
||||||
|
final String notificationSenderUuid = generateUuid(
|
||||||
|
notificationSender);
|
||||||
|
jsonGenerator.writeStringField("notificationSender",
|
||||||
|
notificationSenderUuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
exportAssignableTaskProperties(task, jsonGenerator);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract void exportAssignableTaskProperties(
|
||||||
|
final T task, final JsonGenerator jsonGenerator)
|
||||||
|
throws IOException;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,22 +1,25 @@
|
||||||
package org.libreccm.workflow;
|
package org.libreccm.workflow;
|
||||||
|
|
||||||
import com.arsdigita.kernel.Party;
|
|
||||||
import com.arsdigita.kernel.User;
|
|
||||||
import com.arsdigita.workflow.simple.UserTask;
|
import com.arsdigita.workflow.simple.UserTask;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
public class AssignableTasksExporter extends AbstractTasksExporter<UserTask> {
|
public class AssignableTasksExporter
|
||||||
|
extends AbstractAssignableTasksExporter<UserTask> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void exportAssignableTaskProperties(
|
||||||
|
final UserTask task, final JsonGenerator jsonGenerator)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
// Nothing
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<UserTask> exportsType() {
|
public Class<UserTask> exportsType() {
|
||||||
|
|
@ -35,35 +38,4 @@ public class AssignableTasksExporter extends AbstractTasksExporter<UserTask> {
|
||||||
return "org.libreccm.workflow.AssignableTask";
|
return "org.libreccm.workflow.AssignableTask";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void exportTaskProperties(final UserTask task,
|
|
||||||
final JsonGenerator jsonGenerator)
|
|
||||||
throws IOException {
|
|
||||||
|
|
||||||
jsonGenerator.writeBooleanField("locked", task.isLocked());
|
|
||||||
|
|
||||||
final User lockingUser = task.getLockedUser();
|
|
||||||
if (lockingUser != null) {
|
|
||||||
final String lockingUserUuid = generateUuid(lockingUser);
|
|
||||||
jsonGenerator.writeStringField("lockingUser", lockingUserUuid);
|
|
||||||
}
|
|
||||||
|
|
||||||
final SimpleDateFormat dateFormat = new SimpleDateFormat(
|
|
||||||
"yyyy-MM-dd'T'HH:mm:ssZ", Locale.ROOT);
|
|
||||||
jsonGenerator.writeStringField("startDate",
|
|
||||||
dateFormat.format(task.getStartDate()));
|
|
||||||
jsonGenerator.writeStringField("dueDate",
|
|
||||||
dateFormat.format(task.getDueDate()));
|
|
||||||
jsonGenerator.writeNumberField("durationMinutes",
|
|
||||||
task.getDuration().getDuration());
|
|
||||||
|
|
||||||
final Party notificationSender = task.getNotificationSender();
|
|
||||||
if (notificationSender != null) {
|
|
||||||
final String notificationSenderUuid = generateUuid(
|
|
||||||
notificationSender);
|
|
||||||
jsonGenerator.writeStringField("notificationSender",
|
|
||||||
notificationSenderUuid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue