if((!stepHasUI) && (response_flag!=AbstractProcessingStep.STATUS_COMPLETE)) 
if((!stepHasUI(stepConfig)) && (response_flag!=AbstractProcessingStep.STATUS_COMPLETE)) 
function processPage(workspaceID, stepConfig, page, stepHasUI){	//retrieve submission info 	//(we cannot pass the submission info to this function, since	// often this processing takes place as part of a new request 	// and the DSpace Context is changed on each request) 	var submissionInfo = getSubmissionInfo(workspaceID);	var response_flag = null;	//---------------------------------------------    // #1: Get a reference to Step Processing class    //---------------------------------------------	//get name of processing class for this step	var processingClassName = stepConfig.getProcessingClassName();    	//retrieve an instance of the processing class	var loader = submissionInfo.getClass().getClassLoader();	var processingClass = loader.loadClass(processingClassName);	 	// this processing class *must* be a valid AbstractProcessingStep, 	// or else we'll have problems very shortly	var stepClass = processingClass.newInstance();		//------------------------------------------------    // #2: Perform step processing & check for errors    //------------------------------------------------    //Check if this	request is a file upload	//(if so, Cocoon automatically uploads the file, 	// so we need to let the Processing class know that)	var contentType = getHttpRequest().getContentType();	if ((contentType != null)                && (contentType.indexOf("multipart/form-data") != -1))    {    	//load info about uploaded file, so that it can be    	//saved properly by the step's doProcessing() method below    	loadFileUploadInfo();    }	    	//before beginning processing, let this step know what page to process	//(this is important for multi-page steps!)		stepClass.setCurrentPage(getHttpRequest(), page);				//call the step's doProcessing() method	response_flag = stepClass.doProcessing(getDSContext(), getHttpRequest(), getHttpResponse(), submissionInfo);		//if this is a non-interactive step, 	//we cannot do much with errors/responses other than logging them!    if((!stepHasUI) && (response_flag!=AbstractProcessingStep.STATUS_COMPLETE))    {    	//check to see if there is a description of this response/error in Messages!    	var error = stepClass.getErrorMessage(response_flag);    	    	//if no error message defined, create a dummy one    	if(error==null)    	{			error = "The doProcessing() method for " + processingClass.getName() +       						" returned an error flag = " + response_flag + ". " +      						"It is recommended to define a custom error message for this error flag using the addErrorMessage() method for this class!";        }        		    	cocoon.log.error(error, null); //log as an error to Cocoon    	    	//clear error flag, so that processing can continue    	response_flag = AbstractProcessingStep.STATUS_COMPLETE;      	//clear any error fields as well		saveErrorFields(null);    	    }//else if there is a UI, but still there were errors!    else if(response_flag!=AbstractProcessingStep.STATUS_COMPLETE)	{		//save error fields to global ERROR_FIELDS variable,		//for step-specific post-processing		saveErrorFields(stepClass.getErrorFields());	}	else //otherwise, no errors at all	{		//clear any previously set error fields		saveErrorFields(null);	}	    return response_flag;}
3999	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3999/0bfdc896899de5ab78a0ad45a59bf03c114ee3ec/submission.js/clean/dspace-xmlui/dspace-xmlui-api/src/main/resources/aspects/Submission/submission.js