public void setup(SourceResolver _resolver, Map _objectModel, String src, Parameters _parameters)
throws ProcessingException, SAXException, IOException {
super.setup(_resolver, _objectModel, src, _parameters);
WorkflowManager workflowManager = null;
try {
Request request = ObjectModelHelper.getRequest(_objectModel);
Session session = RepositoryUtil.getSession(this.manager, request);
DocumentFactory map = DocumentUtil.createDocumentFactory(this.manager, session);
String webappUrl = ServletHelper.getWebappURI(request);
Document document = null;
if (map.isDocument(webappUrl)) {
document = map.getFromURL(webappUrl);
ResourceType doctype = document.getResourceType();
if (document.getPublication().getWorkflowSchema(doctype) != null) {
setHasWorkflow(true);
workflowManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
} else {
setHasWorkflow(false);
}
} else {
setHasWorkflow(false);
}
if (hasWorkflow()) {
Workflowable workflowable = WorkflowUtil.getWorkflowable(this.manager,
session,
getLogger(),
document);
Workflow workflow = workflowManager.getWorkflowSchema(workflowable);
String[] events = workflow.getEvents();
for (int i = 0; i < events.length; i++) {
if (workflowManager.canInvoke(workflowable, events[i])) {
this.executableEvents.add(events[i]);
}
}
}