org.dspace.app.xmlui.aspect.submission
Class FlowUtils

java.lang.Object
  extended by org.dspace.app.xmlui.aspect.submission.FlowUtils

public class FlowUtils
extends Object

This is a utility class to aid in the submission flow scripts. Since data validation is cumbersome inside a flow script this is a collection of methods to perform processing at each step of the flow, the flow script will ties these operations together in a meaningful order but all actually processing is done through these various processes.

Author:
Scott Phillips, Tim Donohue (modified for Configurable Submission)

Constructor Summary
FlowUtils()
           
 
Method Summary
static InProgressSubmission findSubmission(Context context, String inProgressSubmissionID)
          Return the InProgressSubmission, either workspaceItem or workflowItem, depending on the id provided.
static WorkspaceItem findWorkspace(Context context, String inProgressSubmissionID)
          Return the workspace identified by the given id, the id should be prepended with the character S to signify that it is a workspace instead of a workflow.
static String getFieldName(DCInput input)
          Return the HTML / DRI field name for the given input.
static StepAndPage[] getListOfAllSteps(javax.servlet.http.HttpServletRequest request, SubmissionInfo subInfo)
          Retrieves a list of all steps and pages within the current submission process.
static int getMaximumPageReached(Context context, String id)
          Find the maximum page (within the maximum step) that the user has reached in the submission processes.
static int getMaximumStepReached(Context context, String id)
          Find the maximum step the user has reached in the submission processes.
static int getPage(double stepAndPage)
          Get number of the current page within the current step
static int getStep(double stepAndPage)
          Get current step number
static SubmissionInfo obtainSubmissionInfo(Map objectModel, String workspaceID)
          Obtains the submission info for the current submission process.
static void processSaveOrRemove(Context context, String id, org.apache.cocoon.environment.Request request)
          Process the save or remove step.
static void setBackPageReached(Context context, String id, int step, int page)
          Set a specific step and page as reached.
static void setPageReached(Context context, String id, int step, int page)
          Indicate the user has advanced to the given page within a given step.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowUtils

public FlowUtils()
Method Detail

findSubmission

public static InProgressSubmission findSubmission(Context context,
                                                  String inProgressSubmissionID)
                                           throws SQLException,
                                                  AuthorizeException,
                                                  IOException
Return the InProgressSubmission, either workspaceItem or workflowItem, depending on the id provided. If the id begins with an S then it is a considered a workspaceItem. If the id begins with a W then it is considered a workflowItem.

Parameters:
context -
inProgressSubmissionID -
Returns:
The InprogressSubmission or null if non found
Throws:
SQLException
AuthorizeException
IOException

findWorkspace

public static WorkspaceItem findWorkspace(Context context,
                                          String inProgressSubmissionID)
                                   throws SQLException,
                                          AuthorizeException,
                                          IOException
Return the workspace identified by the given id, the id should be prepended with the character S to signify that it is a workspace instead of a workflow.

Parameters:
context -
inProgressSubmissionID -
Returns:
The found workspaceitem or null if none found.
Throws:
SQLException
AuthorizeException
IOException

obtainSubmissionInfo

public static SubmissionInfo obtainSubmissionInfo(Map objectModel,
                                                  String workspaceID)
                                           throws SQLException,
                                                  IOException,
                                                  AuthorizeException
Obtains the submission info for the current submission process. If a submissionInfo object has already been created for this HTTP request, it is re-used, otherwise it is created.

Parameters:
objectModel - the cocoon Objectmodel
workspaceID - the workspaceID of the submission info to obtain
Returns:
a SubmissionInfo object
Throws:
SQLException
IOException
AuthorizeException

setPageReached

public static void setPageReached(Context context,
                                  String id,
                                  int step,
                                  int page)
                           throws SQLException,
                                  AuthorizeException,
                                  IOException
Indicate the user has advanced to the given page within a given step. This will only actually do anything when it's a user initially entering a submission. It will increase the "stage reached" and "page reached" columns - it will not "set back" where a user has reached.

Parameters:
context - The current DSpace content
id - The unique ID of the current workflow/workspace
step - the step the user has just reached
page - the page (within the step) the user has just reached
Throws:
SQLException
AuthorizeException
IOException

setBackPageReached

public static void setBackPageReached(Context context,
                                      String id,
                                      int step,
                                      int page)
                               throws SQLException,
                                      AuthorizeException,
                                      IOException
Set a specific step and page as reached. It will also "set back" where a user has reached.

Parameters:
context - The current DSpace content
id - The unique ID of the current workflow/workspace
step - the step to set as reached, can be also a previous reached step
page - the page (within the step) to set as reached, can be also a previous reached page
Throws:
SQLException
AuthorizeException
IOException

getMaximumStepReached

public static int getMaximumStepReached(Context context,
                                        String id)
                                 throws SQLException,
                                        AuthorizeException,
                                        IOException
Find the maximum step the user has reached in the submission processes. If this submission is a workflow then return max-int.

Parameters:
context - The current DSpace content
id - The unique ID of the current workflow/workspace
Throws:
SQLException
AuthorizeException
IOException

getMaximumPageReached

public static int getMaximumPageReached(Context context,
                                        String id)
                                 throws SQLException,
                                        AuthorizeException,
                                        IOException
Find the maximum page (within the maximum step) that the user has reached in the submission processes. If this submission is a workflow then return max-int.

Parameters:
context - The current DSpace content
id - The unique ID of the current workflow/workspace
Throws:
SQLException
AuthorizeException
IOException

getStep

public static int getStep(double stepAndPage)
Get current step number

Parameters:
stepAndPage - a double representing the current step and page (e.g. 1.2 is page 2 of step 1)
Returns:
step number

getPage

public static int getPage(double stepAndPage)
Get number of the current page within the current step

Parameters:
stepAndPage - a double representing the current step and page (e.g. 1.2 is page 2 of step 1)
Returns:
page number (within current step)

processSaveOrRemove

public static void processSaveOrRemove(Context context,
                                       String id,
                                       org.apache.cocoon.environment.Request request)
                                throws SQLException,
                                       AuthorizeException,
                                       IOException
Process the save or remove step. If the user has selected to remove their submission then remove it.

Parameters:
context - The current DSpace content
id - The unique ID of the current workspace/workflow
request - The cocoon request object.
Throws:
SQLException
AuthorizeException
IOException

getFieldName

public static String getFieldName(DCInput input)
Return the HTML / DRI field name for the given input.

Parameters:
input -
Returns:
field name as a String (e.g. dc_contributor_editor)

getListOfAllSteps

public static StepAndPage[] getListOfAllSteps(javax.servlet.http.HttpServletRequest request,
                                              SubmissionInfo subInfo)
Retrieves a list of all steps and pages within the current submission process.

This list may differ from the list of steps in the progress bar if the current submission process includes non-interactive steps which do not appear in the progress bar!

This method is used by the Manakin submission flowscript (submission.js) to step forward/backward between steps.

Parameters:
request - The HTTP Servlet Request object
subInfo - the current SubmissionInfo object


Copyright © 2011 DuraSpace. All Rights Reserved.