xlawrence 2005/07/29 15:15:51 CEST
Modified files:
core/src/java/org/jahia/engines/workflow
AdvancedWorkflowEngine.java
Log:
cleanup
Revision Changes Path
1.16 +187 -180
jahia/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.java.diff?r1=1.15&r2=1.16&f=h
Index: AdvancedWorkflowEngine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- AdvancedWorkflowEngine.java 25 Jul 2005 08:28:15 -0000 1.15
+++ AdvancedWorkflowEngine.java 29 Jul 2005 13:15:50 -0000 1.16
@@ -1,5 +1,16 @@
package org.jahia.engines.workflow;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.Vector;
import org.jahia.content.ContentObject;
import org.jahia.content.JahiaObject;
import org.jahia.content.ObjectKey;
@@ -9,12 +20,12 @@
import org.jahia.engines.EngineToolBox;
import org.jahia.engines.validation.EngineValidationHelper;
import org.jahia.engines.JahiaEngine;
+import org.jahia.engines.workflow.WorkflowEngine.PageNotifData;
import org.jahia.exceptions.JahiaException;
import org.jahia.params.ProcessingContext;
import org.jahia.registries.ServicesRegistry;
import org.jahia.resourcebundle.JahiaResourceBundle;
import org.jahia.services.cache.Cache;
-import org.jahia.services.cache.CacheFactory;
import org.jahia.services.lock.LockKey;
import org.jahia.services.lock.LockService;
import org.jahia.services.pages.ContentPage;
@@ -29,7 +40,6 @@
import org.jahia.services.workflow.ExternalWorkflow;
import org.jahia.services.workflow.WorkflowService;
-import java.util.*;
/**
* Created by IntelliJ IDEA.
@@ -40,7 +50,6 @@
*/
public class AdvancedWorkflowEngine extends WorkflowEngine {
-
private final String CLASS_NAME = this.getClass().getName();
private static final String TEMPLATE_JSP = "advworkflow";
private HashMap _lastDisplay = new HashMap();
@@ -63,7 +72,6 @@
private final static String ACCEPT = "default";
private final static String REFUSE = "reject";
-
protected AdvancedWorkflowEngine() {
logger.debug("Starting Workflow Engine");
toolBox = EngineToolBox.getInstance();
@@ -94,14 +102,13 @@
* @return The composed URL; on s'en serait doute...
* @throws JahiaException
*/
- public String renderLink(ProcessingContext jParams, Object theObj)
+ public String renderLink(final ProcessingContext jParams, final Object
theObj)
throws JahiaException {
- JahiaUser user = jParams.getUser();
- String params = "";
+ final JahiaUser user = jParams.getUser();
+ final String params = "?screen=display&obj="+theObj;
// Per default set the engines to the notification completed pages
if the
// user has admin accesses.
// _lastDisplay.put(jParams.getSessio nID(), _tabOptions[1]);
- params = "?screen=display&obj="+theObj;
return jParams.composeEngineUrl("workflow", params );
}
@@ -119,24 +126,24 @@
* @param jData not used
* @throws JahiaException
*/
- public EngineValidationHelper handleActions(ProcessingContext jParams,
JahiaData jData)
- throws JahiaException {
+ public EngineValidationHelper handleActions(final ProcessingContext
jParams,
+ final JahiaData jData) throws JahiaException {
- JahiaUser user = jParams.getUser();
+ final JahiaUser user = jParams.getUser();
// if (!(jParams.getPage().checkWriteAccess(user) ||
jParams.getPage().checkAdminAccess(user))) {
// throw new JahiaException("Workflow engines access denied",
// "User '" + user.getUsername() + "'
has no permission to acccess this engines",
// JahiaException.ENGINE_ERROR,
JahiaException.WARNING_SEVERITY);
// }
- int pageInfosFlag = ContentPage.ACTIVE_PAGE_INFOS |
ContentPage.STAGING_PAGE_INFOS;
- HashMap engineMap = new HashMap();
+ final int pageInfosFlag = ContentPage.ACTIVE_PAGE_INFOS |
ContentPage.STAGING_PAGE_INFOS;
+ final HashMap engineMap = new HashMap();
// fetch workflow for this page
// get available actions for this user
- String actionScreen = jParams.getParameter("screen");
+ final String actionScreen = jParams.getParameter("screen");
logger.debug("handleActions: " + actionScreen);
@@ -148,30 +155,30 @@
// ServicesRegistry.getInstance().
//
getJahiaPageService().lookupContentPage(jParams.getObjectKey(), false);
- JahiaSiteMapService siteMapService = ServicesRegistry.getInstance().
+ final JahiaSiteMapService siteMapService =
ServicesRegistry.getInstance().
getJahiaSiteMapService();
// Has the user made a site map handling (collapse, expand...)...
- String siteMapParam = jParams.getParameter("sitemap");
+ final String siteMapParam = jParams.getParameter("sitemap");
if (siteMapParam != null) {
siteMapService.invokeWorkflowSiteMapViewHelperMethod(jParams.getUser(),
contentPage, jParams.getSessionID(), pageInfosFlag,
null, siteMapParam);
}
- WorkflowSiteMapViewHelper treeSiteMapViewHelper =
(WorkflowSiteMapViewHelper) siteMapService.
+ final WorkflowSiteMapViewHelper treeSiteMapViewHelper =
(WorkflowSiteMapViewHelper) siteMapService.
getWorkflowSiteMapViewHelper(jParams.getUser(), contentPage,
jParams.getSessionID(), pageInfosFlag, null,
SiteMapViewHelper.DEFAULT_LEVEL);
// SiteMapViewHelper treeSiteMapViewHelper = new
WorkflowSiteMapViewHelper(jParams.getUser(), contentPage,
// pageInfosFlag, null, SiteMapViewHelper.DEFAULT_LEVEL);
- WorkflowHelper workflowHelper = getWorkflowHelper(jParams,
treeSiteMapViewHelper);
+ final WorkflowHelper workflowHelper = getWorkflowHelper(jParams,
treeSiteMapViewHelper);
logger.debug("workflowHelper: " + workflowHelper);
// screen = display
if ("display".equals(actionScreen)) {
- List allOptions = workflowHelper.getAllOptions();
+ final List allOptions = workflowHelper.getAllOptions();
initEngineMap(jParams, engineMap, allOptions);
engineMap.put("treeJahiaSiteMap", treeSiteMapViewHelper);
@@ -180,14 +187,14 @@
// #ifdef LOCK
if (jParams.settings().areLocksActivated()) {
// Lock all page site if possible.
- HashMap lockInformationsMap = new HashMap();
- LockService lockRegistry =
ServicesRegistry.getInstance().getLockService();
+ final HashMap lockInformationsMap = new HashMap();
+ final LockService lockRegistry =
ServicesRegistry.getInstance().getLockService();
for (int i = 0; i < treeSiteMapViewHelper.size(); i++) {
- ContentObject siteMapContentPage =
treeSiteMapViewHelper.getContentObject(i);
+ final ContentObject siteMapContentPage =
treeSiteMapViewHelper.getContentObject(i);
if (siteMapContentPage != null) {
// can put WORKFLOW_TYPE locks only on pages
if (siteMapContentPage instanceof ContentPage) {
- LockKey lockKey =
LockKey.composeLockKey(LockKey.WORKFLOW_TYPE,
+ final LockKey lockKey =
LockKey.composeLockKey(LockKey.WORKFLOW_TYPE,
siteMapContentPage.getID(),
siteMapContentPage.getID());
if (lockRegistry.acquire(lockKey, user,
jParams.getSessionID(),
jParams.getSessionState().getMaxInactiveInterval())) {
@@ -206,7 +213,7 @@
String action = null;
final Iterator iterator = allOptions.iterator();
while (iterator.hasNext()) {
- ActionEntry actionEntry = (ActionEntry) iterator.next();
+ final ActionEntry actionEntry = (ActionEntry)
iterator.next();
if (display == null) {
display = actionEntry.getWorkflowKey();
action = actionEntry.getKey();
@@ -240,12 +247,12 @@
// Init parameters map
- Map params = new HashMap();
+ final Map params = new HashMap();
if (action.indexOf('.')>0) {
- String name = action.substring(0,action.indexOf('.'));
- String processId =
action.substring(action.indexOf('.')+1, action.lastIndexOf('.'));
- String actionName =
action.substring(action.lastIndexOf('.')+1);
- ExternalWorkflow workflow =
service.getExternalWorkflow(name);
+ final String name =
action.substring(0,action.indexOf('.'));
+ final String processId =
action.substring(action.indexOf('.')+1, action.lastIndexOf('.'));
+ final String actionName =
action.substring(action.lastIndexOf('.')+1);
+ final ExternalWorkflow workflow =
service.getExternalWorkflow(name);
engineMap.put("activeParameters",
workflow.getParameterForm(processId, actionName, jParams));
} else {
engineMap.put("activeParameters",
getDefaultParams(approveRefusePendingPages.equals(action), jParams));
@@ -317,140 +324,138 @@
return null;
}
- private WorkflowHelper getWorkflowHelper(ProcessingContext jParams,
WorkflowSiteMapViewHelper treeSiteMapViewHelper) throws JahiaException{
- WorkflowHelper workflowHelper = new WorkflowHelper(jParams);
-
+ private WorkflowHelper getWorkflowHelper(final ProcessingContext jParams,
+ final WorkflowSiteMapViewHelper treeSiteMapViewHelper) throws
JahiaException{
+ final WorkflowHelper workflowHelper = new WorkflowHelper(jParams);
+
// String actionName = jParams.getParameter("display");
-
- int size = treeSiteMapViewHelper.size();
+
+ final int size = treeSiteMapViewHelper.size();
for (int i = 0; i < size; i++) {
if (treeSiteMapViewHelper.getContentObject(i) == null) {
continue;
}
- ContentObject object = treeSiteMapViewHelper.getContentObject(i);
-
+ final ContentObject object =
treeSiteMapViewHelper.getContentObject(i);
+
if (object.getClass() == ContentPage.class &&
((ContentPage)object).hasSameParentID() ==
treeSiteMapViewHelper.getParentPageID(i)) {
// Page has been moved, do not enter an entry for it
continue;
}
-
- int mode = service.getInheritedMode(object);
- ContentObject inheritingParent =
service.getInheritingParent(object);
-
+
+ final int mode = service.getInheritedMode(object);
+ final ContentObject inheritingParent =
service.getInheritingParent(object);
+
// LockKey lockKey =
LockKey.composeLockKey(LockKey.WORKFLOW_TYPE, object.getID(), object.getID());
// LockPrerequisites lockPrerequisites =
LockPrerequisites.getInstance();
// LockPrerequisitesResult lockPrerequisitesResult =
lockPrerequisites.getLockPrerequisitesResult(lockKey);
// boolean isLocked = lockPrerequisitesResult != null &&
lockPrerequisitesResult.getResultsList().size() > 0;
- Vector languageSettings =
jParams.getSite().getLanguageSettings();
- boolean isLocked = false;
- Enumeration languageEnum = languageSettings.elements();
-
- if (!isLocked) {
- WorkflowHelperEntry entry;
- if (mode == WorkflowService.EXTERNAL) {
- String workflowName =
service.getInheritedExternalWorkflowName(object);
- String processId =
service.getInheritedExternalWorkflowProcessId(object);
- entry =
workflowHelper.addEntry(object.getObjectKey(),mode,workflowName,processId,
jParams);
- } else {
- entry =
workflowHelper.addEntry(object.getObjectKey(),mode,null,null, jParams);
- }
- while (languageEnum.hasMoreElements()) {
- SiteLanguageSettings siteLanguageSettings =
(SiteLanguageSettings)languageEnum.nextElement();
- Map languagesStates =
WorkflowService.getInstance().getLanguagesStates(object);
+ final Vector languageSettings =
jParams.getSite().getLanguageSettings();
+ final Enumeration languageEnum = languageSettings.elements();
+
+ final WorkflowHelperEntry entry;
+ if (mode == WorkflowService.EXTERNAL) {
+ final String workflowName =
service.getInheritedExternalWorkflowName(object);
+ final String processId =
service.getInheritedExternalWorkflowProcessId(object);
+ entry =
workflowHelper.addEntry(object.getObjectKey(),mode,workflowName,processId,
jParams);
+ } else {
+ entry =
workflowHelper.addEntry(object.getObjectKey(),mode,null,null, jParams);
+ }
+ while (languageEnum.hasMoreElements()) {
+ final SiteLanguageSettings siteLanguageSettings =
(SiteLanguageSettings)languageEnum.nextElement();
+ final Map languagesStates =
WorkflowService.getInstance().getLanguagesStates(object);
// ContentPage contentPage = (ContentPage) object;
- String languageCode = siteLanguageSettings.getCode();
- Integer languageState =
(Integer)languagesStates.get(languageCode);
- Integer sharedLanguageState =
(Integer)languagesStates.get(ContentObject.SHARED_LANGUAGE);
- if (languageState != null && languageState.intValue() !=
-1) {
- if ( sharedLanguageState != null &&
languageState.intValue() < sharedLanguageState.intValue() ){
- languageState = sharedLanguageState;
- }
- boolean isWaitingState = languageState.intValue() ==
EntryLoadRequest.WAITING_WORKFLOW_STATE;
- boolean isActiveState = languageState.intValue() ==
EntryLoadRequest.ACTIVE_WORKFLOW_STATE;
- boolean isStagingState = languageState.intValue() ==
EntryLoadRequest.STAGING_WORKFLOW_STATE;
- if (object.getClass() == ContentPage.class &&
((ContentPage)object).hasSameParentID() ==
treeSiteMapViewHelper.getParentPageID(i)) {
- // Page moved
- break;
- }
-
-
- List availableOptions = new ArrayList();
-
- if (mode == WorkflowService.INACTIVE) {
- if (!isActiveState) {
- if
(jParams.getPage().checkWriteAccess(jParams.getUser())) {
- availableOptions.add( new
ActionEntry(approvePendingPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
- ACCEPT));
- }
+ final String languageCode = siteLanguageSettings.getCode();
+ Integer languageState =
(Integer)languagesStates.get(languageCode);
+ final Integer sharedLanguageState =
(Integer)languagesStates.get(ContentObject.SHARED_LANGUAGE);
+ if (languageState != null && languageState.intValue() != -1)
{
+ if ( sharedLanguageState != null &&
languageState.intValue() < sharedLanguageState.intValue() ){
+ languageState = sharedLanguageState;
+ }
+ final boolean isWaitingState = languageState.intValue()
== EntryLoadRequest.WAITING_WORKFLOW_STATE;
+ final boolean isActiveState = languageState.intValue()
== EntryLoadRequest.ACTIVE_WORKFLOW_STATE;
+ final boolean isStagingState = languageState.intValue()
== EntryLoadRequest.STAGING_WORKFLOW_STATE;
+ if (object.getClass() == ContentPage.class &&
((ContentPage)object).hasSameParentID() ==
treeSiteMapViewHelper.getParentPageID(i)) {
+ // Page moved
+ break;
+ }
+
+ final List availableOptions = new ArrayList();
+
+ if (mode == WorkflowService.INACTIVE) {
+ if (!isActiveState) {
+ if
(jParams.getPage().checkWriteAccess(jParams.getUser())) {
+ availableOptions.add( new
ActionEntry(approvePendingPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
+ ACCEPT));
}
- } else if (mode == WorkflowService.JAHIA_INTERNAL) {
- if (isWaitingState) {
- if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
- availableOptions.add(new
ActionEntry(approvePendingPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
- ACCEPT));
- availableOptions.add( new
ActionEntry(approvePendingPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
- REFUSE));
- }
- } else if (isStagingState) {
- if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
- availableOptions.add( new
ActionEntry(approvePendingPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
- ACCEPT));
- }
- if
(jParams.getPage().checkWriteAccess(jParams.getUser())) {
- availableOptions.add(new
ActionEntry(notifyCompletedPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.NotifyCompletedPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale())));
- }
+ }
+ } else if (mode == WorkflowService.JAHIA_INTERNAL) {
+ if (isWaitingState) {
+ if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
+ availableOptions.add(new
ActionEntry(approvePendingPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
+ ACCEPT));
+ availableOptions.add( new
ActionEntry(approvePendingPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
+ REFUSE));
}
- } else if (mode == WorkflowService.EXTERNAL) {
- ExternalWorkflow workflow =
entry.getExternalWorkflow();
- String processId =
service.getInheritedExternalWorkflowProcessId(object);
-
- boolean processStarted =
workflow.isProcessStarted(processId, object.getObjectKey().toString(),
languageCode);
-
- if (!isActiveState || processStarted) {
- if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
- availableOptions.add( new
ActionEntry(approvePendingPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
- ACCEPT));
- availableOptions.add( new
ActionEntry(approvePendingPages,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
- jahiaWorkflow,
-
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
- REFUSE));
- }
+ } else if (isStagingState) {
+ if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
+ availableOptions.add( new
ActionEntry(approvePendingPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
+ ACCEPT));
+ }
+ if
(jParams.getPage().checkWriteAccess(jParams.getUser())) {
+ availableOptions.add(new
ActionEntry(notifyCompletedPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.NotifyCompletedPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale())));
}
-
- if (processStarted) {
- Collection tempAvailableOptions =
workflow.getAvailableActions(processId,
object.getObjectKey().toString(),languageCode, jParams);
- for (Iterator iterator =
tempAvailableOptions.iterator(); iterator.hasNext();) {
- String option = (String) iterator.next();
- availableOptions.add(new
ActionEntry(entry.getWorkflowName()+"."+entry.getProcessId()+"."+option,
workflow.getActionName(processId, option), processId,
workflow.getProcessName(processId)));
- }
+ }
+ } else if (mode == WorkflowService.EXTERNAL) {
+ final ExternalWorkflow workflow =
entry.getExternalWorkflow();
+ final String processId =
service.getInheritedExternalWorkflowProcessId(object);
+
+ final boolean processStarted =
workflow.isProcessStarted(processId, object.getObjectKey().toString(),
languageCode);
+
+ if (!isActiveState || processStarted) {
+ if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
+ availableOptions.add( new
ActionEntry(approvePendingPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
+ ACCEPT));
+ availableOptions.add( new
ActionEntry(approvePendingPages,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.ApprovePendingPages.label",
jParams, jParams.getLocale()),
+ jahiaWorkflow,
+
JahiaResourceBundle.getEngineResource("org.jahia.engines.workflow.WorkflowEngine.JahiaWorkflow.label",
jParams, jParams.getLocale()),
+ REFUSE));
}
}
- if (!availableOptions.isEmpty()) {
-
workflowHelper.addLanguageItem(object.getObjectKey(),languageCode,
availableOptions);
+
+ if (processStarted) {
+ final Collection tempAvailableOptions =
workflow.getAvailableActions(processId,
object.getObjectKey().toString(),languageCode, jParams);
+ final Iterator iterator =
tempAvailableOptions.iterator();
+ while ( iterator.hasNext() ) {
+ final String option = (String)
iterator.next();
+ availableOptions.add(new
ActionEntry(entry.getWorkflowName()+"."+entry.getProcessId()+"."+option,
workflow.getActionName(processId, option), processId,
workflow.getProcessName(processId)));
+ }
}
}
+ if (!availableOptions.isEmpty()) {
+
workflowHelper.addLanguageItem(object.getObjectKey(),languageCode,
availableOptions);
+ }
}
}
-
+
// Map languagesStates = page.getLanguagesStates(true);
// Set lang = page.getStagingLanguages(false, true);
// String languageCode = siteLanguageSettings.getCode();
@@ -466,8 +471,9 @@
return workflowHelper;
}
- private String getDefaultParams(boolean includeAcceptRefuseMenu,
ProcessingContext jParams) {
- StringBuffer res = new StringBuffer();
+ private String getDefaultParams(final boolean includeAcceptRefuseMenu,
+ final ProcessingContext jParams) {
+ final StringBuffer res = new StringBuffer();
if (includeAcceptRefuseMenu) {
res.append("<input type=\"radio\" name=\"acceptRefuse\"
value=\"accept\" checked>Accept <input type=\"radio\" name=\"acceptRefuse\"
value=\"refuse\">Refuse<br>");
}
@@ -481,7 +487,8 @@
* @param jParams ;)
* @throws JahiaException
*/
- private void initEngineMap (ProcessingContext jParams, HashMap
engineMap, List options)
+ private void initEngineMap (final ProcessingContext jParams,
+ final HashMap engineMap, final List options)
throws JahiaException {
logger.debug("initEngineMap");
engineMap.clear();
@@ -508,38 +515,39 @@
*
* @param jParams ;)
*/
- private void applyModifications(ProcessingContext jParams,
WorkflowHelper workflowHelper)
+ private void applyModifications(final ProcessingContext jParams,
+ final WorkflowHelper workflowHelper)
throws JahiaException {
// Get the cache instance BEFORE applying any modification in case
the cache cannot
// be found for any mysterious reason ;o) THIS SHOULD STAY THE FIRST
ACTION TO
// PREVENT THE NECESSITY OF ROLLLING BACK PREVIOUS OPERATIONS IN
CASE THE CACHE
// IN NOT AVAILABLE!!
- Cache pageChildCache =
ServicesRegistry.getInstance().getCacheService().getCache(JahiaPageService.PAGE_CHILD_CACHE);
+ final Cache pageChildCache =
ServicesRegistry.getInstance().getCacheService().getCache(JahiaPageService.PAGE_CHILD_CACHE);
if (pageChildCache == null)
throw new JahiaException ("Internal Cache error", "Could not get
the cache ["+
JahiaPageService.PAGE_CHILD_CACHE +"] instance.",
JahiaException.CACHE_ERROR,
JahiaException.CRITICAL_SEVERITY);
- JahiaSaveVersion saveVersion = ServicesRegistry.getInstance
().getJahiaVersionService ().
+ final JahiaSaveVersion saveVersion = ServicesRegistry.getInstance
().getJahiaVersionService ().
getSiteSaveVersion (jParams.getSiteID ());
- Map selectedEntries = new HashMap();
+ final Map selectedEntries = new HashMap();
- String action = (String) _lastAction.get(jParams.getSessionID());
+ final String action = (String)
_lastAction.get(jParams.getSessionID());
- Iterator paramNames = jParams.getParameterNames();
+ final Iterator paramNames = jParams.getParameterNames();
while (paramNames.hasNext()) {
- String paramName = (String)paramNames.next();
- String[] paramValues = jParams.getParameterValues(paramName);
+ final String paramName = (String)paramNames.next();
+ final String[] paramValues =
jParams.getParameterValues(paramName);
for (int i = 0; i < paramValues.length; i++) {
- StringTokenizer paramToken = new StringTokenizer(paramName,
"|");
+ final StringTokenizer paramToken = new
StringTokenizer(paramName, "|");
// Look for the checkboxes
if (paramToken.hasMoreTokens() &&
"checkbox".equals(paramToken.nextToken())) {
try {
- String languageCode = paramToken.nextToken();
- String objectKeyStr = paramToken.nextToken();
- ObjectKey objectKey =
ObjectKey.getInstance(objectKeyStr);
- String additionalOption = additionalOption =
paramToken.nextToken();
+ final String languageCode = paramToken.nextToken();
+ final String objectKeyStr = paramToken.nextToken();
+ final ObjectKey objectKey =
ObjectKey.getInstance(objectKeyStr);
+ final String additionalOption =
paramToken.nextToken();
// #ifdef LOCK
// if (jParams.settings().areLocksActivated()) {
// // Ensure that the lock is always our's.
@@ -552,7 +560,7 @@
// }
// }
// #endif
- WorkflowHelperLanguageEntry entry =
workflowHelper.getLanguageEntry(objectKey, languageCode);
+ final WorkflowHelperLanguageEntry entry =
workflowHelper.getLanguageEntry(objectKey, languageCode);
if (entry != null) {
Map options = (Map)
selectedEntries.get(objectKey);
if (options == null) {
@@ -571,25 +579,26 @@
}
}
}
- Map userNotifData = new HashMap();
+ final Map userNotifData = new HashMap();
ArrayList recipients = null;
- List ordered = workflowHelper.getOrderedKeys();
+ final List ordered = workflowHelper.getOrderedKeys();
for (int j=ordered.size()-1; j>=0; j--) {
- ObjectKey key = (ObjectKey) ordered.get(j);
+ final ObjectKey key = (ObjectKey) ordered.get(j);
if (!selectedEntries.containsKey(key)) {
continue;
}
- Map options = (Map) selectedEntries.get(key);
- for (Iterator additionalIt = options.keySet().iterator();
additionalIt.hasNext();) {
- String additionalKey = (String) additionalIt.next();
- Set languageCodes = (Set) options.get(additionalKey);
+ final Map options = (Map) selectedEntries.get(key);
+ final Iterator additionalIt = options.keySet().iterator();
+ while ( additionalIt.hasNext() ) {
+ final String additionalKey = (String) additionalIt.next();
+ final Set languageCodes = (Set) options.get(additionalKey);
// for (Iterator iterator = selectedEntries.keySet().iterator();
iterator.hasNext();) {
// ObjectKey key = (ObjectKey) iterator.next();
// Set languageCodes = (Set) selectedEntries.get(key);
- StateModificationContext stateModifContext = new
StateModificationContext(key, languageCodes);
+ final StateModificationContext stateModifContext = new
StateModificationContext(key, languageCodes);
stateModifContext.setDescendingInSubPages(false);
ContentObject object = null;
@@ -598,16 +607,16 @@
} catch (ClassNotFoundException e) {
}
- int mode = service.getInheritedMode(object);
+ final int mode = service.getInheritedMode(object);
try {
- ContentObject contentObject = (ContentObject)
ContentObject.getInstance(key);
+ final ContentObject contentObject = (ContentObject)
ContentObject.getInstance(key);
if (mode == WorkflowService.INACTIVE) {
if (action.equals(approvePendingPages) &&
additionalKey.equals(ACCEPT)) {
ServicesRegistry.getInstance().getWorkflowService().activate(contentObject,
languageCodes, saveVersion, jParams, stateModifContext);
}
} else if (mode == WorkflowService.JAHIA_INTERNAL) {
- String comment =
jParams.getParameter("commentsInput");
+ final String comment =
jParams.getParameter("commentsInput");
PageNotifData pageNotifData = null;
if (action.equals(notifyCompletedPages)) {
ServicesRegistry.getInstance().getWorkflowService().changeStagingStatus(contentObject,
languageCodes,
@@ -616,8 +625,8 @@
pageNotifData = new
PageNotifData(jParams.getSiteURL(contentObject.getID(), false, false), comment,
(ContentPage) contentObject, languageCodes, true, null, null);
}
} else if (action.equals(approvePendingPages) &&
additionalKey.equals(ACCEPT)) {
- ActivationTestResults activationTestResults =
ServicesRegistry.getInstance().getWorkflowService().activate(contentObject,
languageCodes, saveVersion, jParams, stateModifContext);
- boolean workflowSuccessful =
(activationTestResults.getStatus() !=
ActivationTestResults.FAILED_OPERATION_STATUS ? true : false);
+ final ActivationTestResults
activationTestResults =
ServicesRegistry.getInstance().getWorkflowService().activate(contentObject,
languageCodes, saveVersion, jParams, stateModifContext);
+ final boolean workflowSuccessful =
(activationTestResults.getStatus() !=
ActivationTestResults.FAILED_OPERATION_STATUS ? true : false);
if (contentObject instanceof ContentPage) {
pageNotifData = new PageNotifData (
jParams.getSiteURL
(contentObject.getID(), false, false),
@@ -639,7 +648,7 @@
// new system, per user messaging
recipients = getRecipients(contentObject,
jParams.getSiteID(), 0x3);
for (int i=0; i < recipients.size(); i++) {
- String curEmail = (String) recipients.get(i);
+ final String curEmail = (String)
recipients.get(i);
Map operationMap = (Map)
userNotifData.get(curEmail);
if (operationMap == null) {
operationMap = new HashMap();
@@ -663,14 +672,15 @@
}
}
} else if (mode == WorkflowService.EXTERNAL) {
- ExternalWorkflow workflow =
workflowHelper.getEntry(key).getExternalWorkflow();
- String processId =
service.getInheritedExternalWorkflowProcessId(object);
+ final ExternalWorkflow workflow =
workflowHelper.getEntry(key).getExternalWorkflow();
+ final String processId =
service.getInheritedExternalWorkflowProcessId(object);
- for (Iterator iterator2 = languageCodes.iterator();
iterator2.hasNext();) {
- String language = (String) iterator2.next();
+ final Iterator iterator2 = languageCodes.iterator();
+ while ( iterator2.hasNext() ) {
+ final String language = (String)
iterator2.next();
if
(jParams.getPage().checkAdminAccess(jParams.getUser())) {
if (approvePendingPages.equals(action) &&
additionalKey.equals(ACCEPT)) {
- ActivationTestResults res =
ServicesRegistry.getInstance().getWorkflowService().activate(contentObject,
languageCodes, saveVersion, jParams, stateModifContext);
+ final ActivationTestResults res =
ServicesRegistry.getInstance().getWorkflowService().activate(contentObject,
languageCodes, saveVersion, jParams, stateModifContext);
if (res.getStatus() ==
ActivationTestResults.COMPLETED_OPERATION_STATUS) {
workflow.abortProcess(processId,key.toString(), language, jParams);
}
@@ -683,7 +693,7 @@
}
}
if (action.indexOf('.') > -1) {
- String actionName =
action.substring(action.lastIndexOf('.')+1);
+ final String actionName =
action.substring(action.lastIndexOf('.')+1);
boolean result =
workflow.sendAction(processId,key.toString(), language, actionName, jParams);
if (!result) break;
}
@@ -697,7 +707,4 @@
sendMail(jParams, userNotifData);
}
-
-
-
}