/**
SpagoBI - The Business Intelligence Free Platform
Copyright (C) 2005-2008 Engineering Ingegneria Informatica S.p.A.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
**/
package it.eng.spagobi.engines.dossier.modules;
import it.eng.spago.base.SourceBean;
import it.eng.spago.base.SourceBeanException;
import it.eng.spago.dispatching.module.AbstractModule;
import it.eng.spago.error.EMFErrorCategory;
import it.eng.spago.error.EMFErrorHandler;
import it.eng.spago.error.EMFErrorSeverity;
import it.eng.spago.error.EMFInternalError;
import it.eng.spago.error.EMFUserError;
import it.eng.spago.navigation.LightNavigationManager;
import it.eng.spago.validation.EMFValidationError;
import it.eng.spagobi.analiticalmodel.document.bo.BIObject;
import it.eng.spagobi.analiticalmodel.document.dao.IBIObjectDAO;
import it.eng.spagobi.behaviouralmodel.analyticaldriver.bo.BIObjectParameter;
import it.eng.spagobi.behaviouralmodel.analyticaldriver.dao.IBIObjectParameterDAO;
import it.eng.spagobi.commons.constants.ObjectsTreeConstants;
import it.eng.spagobi.commons.constants.SpagoBIConstants;
import it.eng.spagobi.commons.dao.DAOFactory;
import it.eng.spagobi.commons.dao.IRoleDAO;
import it.eng.spagobi.commons.utilities.GeneralUtilities;
import it.eng.spagobi.commons.utilities.SpagoBITracer;
import it.eng.spagobi.engines.dossier.bo.ConfiguredBIDocument;
import it.eng.spagobi.engines.dossier.bo.DossierAnalyticalDriversManager;
import it.eng.spagobi.engines.dossier.bo.WorkflowConfiguration;
import it.eng.spagobi.engines.dossier.constants.DossierConstants;
import it.eng.spagobi.engines.dossier.dao.DossierDAOHibImpl;
import it.eng.spagobi.engines.dossier.dao.IDossierDAO;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.fileupload.FileItem;
import org.apache.log4j.Logger;
/**
* This class implements a module which handles pamphlets management.
*/
public class DossierManagementModule extends AbstractModule {
static private Logger logger = Logger.getLogger(DossierManagementModule.class);
/* (non-Javadoc)
* @see it.eng.spago.dispatching.module.AbstractModule#init(it.eng.spago.base.SourceBean)
*/
public void init(SourceBean config) {
}
/**
* Reads the operation asked by the user and calls the right operation handler.
*
* @param request The Source Bean containing all request parameters
* @param response The Source Bean containing all response parameters
*
* @throws exception If an exception occurs
* @throws Exception the exception
*/
public void service(SourceBean request, SourceBean response) throws Exception {
logger.debug("IN");
EMFErrorHandler errorHandler = getErrorHandler();
String operation = (String) request.getAttribute(SpagoBIConstants.OPERATION);
logger.debug("Begin of detail Engine modify/visualization service with operation =" +operation);
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
if (tempFolder == null) {
tempFolder = initDossier(request, response);
request.setAttribute(DossierConstants.DOSSIER_TEMP_FOLDER, tempFolder);
}
response.setAttribute(DossierConstants.DOSSIER_TEMP_FOLDER, tempFolder);
try{
if((operation==null)||(operation.trim().equals(""))) {
EMFUserError userError = new EMFUserError(EMFErrorSeverity.ERROR, "100", "component_dossier_messages");
logger.error("The operation parameter is null");
throw userError;
} else if(operation.equalsIgnoreCase(SpagoBIConstants.NEW_DOCUMENT_TEMPLATE)) {
newTemplateHandler(request, response);
} else if(operation.equalsIgnoreCase(SpagoBIConstants.EDIT_DOCUMENT_TEMPLATE)) {
dossierDetailHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_NEW_CONFIGURED_DOCUMENT)) {
newConfiguredDocumentHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_SAVE_CONFIGURED_DOCUMENT)) {
saveConfiguredDocumentHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_DETAIL_DOSSIER)) {
dossierDetailHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_DELETE_CONFIGURED_DOCUMENT)) {
deleteConfiguredDocumentHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_DETAIL_CONFIGURED_DOCUMENT)) {
detailConfiguredDocumentHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_SAVE_DETAIL_DOSSIER)) {
saveDossierDetailHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_LOAD_PRESENTATION_TEMPLATE)) {
loadPresentationTemplateHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_LOAD_PROCESS_DEFINITION_FILE)) {
loadProcessDefinitionFileHandler(request, response);
} else if (operation.equalsIgnoreCase(DossierConstants.OPERATION_EXIT_FROM_DETAIL)) {
exitFromDetailHandler(request, response);
}
} catch (EMFUserError eex) {
errorHandler.addError(eex);
return;
} catch (Exception ex) {
SpagoBITracer.major(DossierConstants.NAME_MODULE, this.getClass().getName(),
"service", "Error while processin request", ex);
EMFUserError emfue = new EMFUserError(EMFErrorSeverity.ERROR, 100);
EMFInternalError internalError = new EMFInternalError(EMFErrorSeverity.ERROR, ex);
errorHandler.addError(internalError);
return;
} finally {
logger.debug("OUT");
}
}
private void exitFromDetailHandler(SourceBean request, SourceBean response) throws EMFUserError, SourceBeanException {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
IDossierDAO dossierDao = DAOFactory.getDossierDAO();
// cleans temp folder
dossierDao.clean(tempFolder);
// propagates dossier id (usefull to return to document main detail page if light navigator is disabled)
Integer dossierId = dossierDao.getDossierId(tempFolder);
response.setAttribute(ObjectsTreeConstants.OBJECT_ID, dossierId.toString());
response.setAttribute(DossierConstants.PUBLISHER_NAME, "ExitFromDossierDetailLoop");
logger.debug("OUT");
}
private String initDossier(SourceBean request, SourceBean response) throws EMFUserError, SourceBeanException {
logger.debug("IN");
String objIdStr = (String) request.getAttribute(SpagoBIConstants.OBJECT_ID);
Integer objId = new Integer(objIdStr);
BIObject dossier = DAOFactory.getBIObjectDAO().loadBIObjectById(objId);
IDossierDAO dossierDao = DAOFactory.getDossierDAO();
String tempFolder = dossierDao.init(dossier);
logger.debug("OUT");
return tempFolder;
}
private void loadProcessDefinitionFileHandler(SourceBean request,
SourceBean response) throws SourceBeanException, EMFUserError {
logger.debug("IN");
try {
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
IDossierDAO dossierDao = new DossierDAOHibImpl();
FileItem upFile = (FileItem) request.getAttribute("UPLOADED_FILE");
if (upFile != null) {
String fileName = GeneralUtilities.getRelativeFileNames(upFile.getName());
if (upFile.getSize() == 0) {
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "uploadFile", "201");
getErrorHandler().addError(error);
return;
}
int maxSize = GeneralUtilities.getTemplateMaxSize();
if (upFile.getSize() > maxSize) {
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "uploadFile", "202");
getErrorHandler().addError(error);
return;
}
if (!fileName.toUpperCase().endsWith(".XML")) {
List params = new ArrayList();
params.add("xml");
EMFUserError error = new EMFValidationError(EMFErrorSeverity.ERROR, "UPLOADED_FILE", "107", params, null, "component_dossier_messages");
getErrorHandler().addError(error);
} else {
byte[] fileContent = upFile.get();
dossierDao.storeProcessDefinitionFile(fileName, fileContent, tempFolder);
}
} else {
logger.warn("Upload file was null!!!");
}
// UploadedFile upFile = (UploadedFile) request.getAttribute("UPLOADED_FILE");
// if (upFile != null) {
// String fileName = upFile.getFileName();
// if (!fileName.toUpperCase().endsWith(".XML")) {
// List params = new ArrayList();
// params.add("xml");
// EMFUserError error = new EMFValidationError(EMFErrorSeverity.ERROR, "UPLOADED_FILE", "107", params, null, "component_dossier_messages");
// getErrorHandler().addError(error);
// } else {
// byte[] fileContent = upFile.getFileContent();
// dossierDao.storeProcessDefinitionFile(fileName, fileContent, tempFolder);
// }
// } else {
// logger.warn("Upload file was null!!!");
// }
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierLoopbackDossierDetail");
} finally {
logger.debug("OUT");
}
}
private void loadPresentationTemplateHandler(SourceBean request,
SourceBean response) throws SourceBeanException, EMFUserError {
logger.debug("IN");
try {
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
IDossierDAO dossierDao = new DossierDAOHibImpl();
FileItem upFile = (FileItem) request.getAttribute("UPLOADED_FILE");
if (upFile != null) {
String fileName = GeneralUtilities.getRelativeFileNames(upFile.getName());
if (upFile.getSize() == 0) {
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "uploadFile", "201");
getErrorHandler().addError(error);
return;
}
int maxSize = GeneralUtilities.getTemplateMaxSize();
if (upFile.getSize() > maxSize) {
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "uploadFile", "202");
getErrorHandler().addError(error);
return;
}
if (!fileName.toUpperCase().endsWith(".PPT")) {
List params = new ArrayList();
params.add("ppt");
EMFUserError error = new EMFValidationError(EMFErrorSeverity.ERROR, "UPLOADED_FILE", "107", params, null, "component_dossier_messages");
getErrorHandler().addError(error);
} else {
byte[] fileContent = upFile.get();
dossierDao.storePresentationTemplateFile(fileName, fileContent, tempFolder);
}
} else {
logger.warn("Upload file was null!!!");
}
// UploadedFile upFile = (UploadedFile) request.getAttribute("UPLOADED_FILE");
// if (upFile != null) {
// String fileName = upFile.getFileName();
// if (!fileName.toUpperCase().endsWith(".PPT")) {
// List params = new ArrayList();
// params.add("ppt");
// EMFUserError error = new EMFValidationError(EMFErrorSeverity.ERROR, "UPLOADED_FILE", "107", params, null, "component_dossier_messages");
// getErrorHandler().addError(error);
// } else {
// byte[] fileContent = upFile.getFileContent();
// dossierDao.storePresentationTemplateFile(fileName, fileContent, tempFolder);
// }
// } else {
// logger.warn("Upload file was null!!!");
// }
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierLoopbackDossierDetail");
} finally {
logger.debug("OUT");
}
}
private void newTemplateHandler(SourceBean request, SourceBean response) throws SourceBeanException, EMFUserError {
logger.debug("IN");
String tempOOFileName = "";
List confDoc = new ArrayList();
WorkflowConfiguration workConf = new WorkflowConfiguration();
List functionalities;
try {
functionalities = DAOFactory.getLowFunctionalityDAO().loadAllLowFunctionalities(true);
} catch (EMFUserError e) {
logger.error("Error while loading documents tree", e);
throw new EMFUserError(EMFErrorSeverity.ERROR, 100);
}
response.setAttribute(SpagoBIConstants.FUNCTIONALITIES_LIST, functionalities);
response.setAttribute(DossierConstants.CONFIGURED_DOCUMENT_LIST, confDoc);
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierDetail");
response.setAttribute(DossierConstants.OO_TEMPLATE_FILENAME, tempOOFileName);
response.setAttribute(DossierConstants.WORKFLOW_CONFIGURATION, workConf);
logger.debug("OUT");
}
private void newConfiguredDocumentHandler(SourceBean request, SourceBean response)
throws SourceBeanException, EMFUserError {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
Object objIdObj = request.getAttribute(DossierConstants.DOSSIER_CONFIGURED_BIOBJECT_ID);
if(!(objIdObj instanceof String)){
Map errBackPars = new HashMap();
errBackPars.put("PAGE", DossierConstants.DOSSIER_MANAGEMENT_PAGE);
errBackPars.put(DossierConstants.DOSSIER_TEMP_FOLDER, tempFolder);
errBackPars.put(LightNavigationManager.LIGHT_NAVIGATOR_DISABLED, "true");
errBackPars.put(SpagoBIConstants.OPERATION, DossierConstants.OPERATION_DETAIL_DOSSIER);
throw new EMFUserError(EMFErrorSeverity.ERROR, "102", null, errBackPars, "component_dossier_messages");
}
String objIdStr = (String) objIdObj;
Integer objId = new Integer(objIdStr);
BIObject obj = null;
List params = null;
List roleList = null;
try{
IBIObjectDAO biobjdao = DAOFactory.getBIObjectDAO();
obj = biobjdao.loadBIObjectById(objId);
Integer id = obj.getId();
IBIObjectParameterDAO biobjpardao = DAOFactory.getBIObjectParameterDAO();
params = biobjpardao.loadBIObjectParametersById(id);
IRoleDAO roleDao = DAOFactory.getRoleDAO();
roleList = roleDao.loadAllRoles();
} catch (Exception e) {
SpagoBITracer.major(DossierConstants.NAME_MODULE, this.getClass().getName(),
"newConfiguredDocumentHandler",
"Error while loading biobje parameters and roles", e);
}
Integer id = obj.getId();
String descr = obj.getDescription();
String label = obj.getLabel();
String name = obj.getName();
Iterator iterParams = params.iterator();
HashMap parNamesMap = new HashMap();
HashMap parValueMap = new HashMap();
while(iterParams.hasNext()) {
BIObjectParameter par = (BIObjectParameter)iterParams.next();
String parLabel = par.getLabel();
String parUrlName = par.getParameterUrlName();
parNamesMap.put(parLabel, parUrlName);
parValueMap.put(parUrlName, "");
}
response.setAttribute("parnamemap", parNamesMap);
response.setAttribute("parvaluemap", parValueMap);
response.setAttribute("idobj", id);
response.setAttribute("description", descr);
response.setAttribute("label", label);
response.setAttribute("name", name);
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierConfiguredDocumentDetail");
logger.debug("OUT");
}
private void saveConfiguredDocumentHandler(SourceBean request, SourceBean response) throws Exception {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
String label = (String)request.getAttribute("biobject_label");
// get logical name assigned to the configured document
String logicalName = (String)request.getAttribute("logicalname");
if( (logicalName==null) || logicalName.trim().equalsIgnoreCase("") ) {
logicalName = "";
//throw new EMFUserError(EMFErrorSeverity.ERROR, 103, "component_dossier_messages");
}
// load biobject using label
// Integer id = new Integer(idobj);
IBIObjectDAO biobjdao = DAOFactory.getBIObjectDAO();
BIObject obj = biobjdao.loadBIObjectByLabel(label);
IBIObjectParameterDAO biobjpardao = DAOFactory.getBIObjectParameterDAO();
// gets parameters of the biobject
List params = biobjpardao.loadBIObjectParametersById(obj.getId());
Iterator iterParams = params.iterator();
// get map of the param url name and value assigned
boolean findOutFormat = false;
Map paramValueMap = new HashMap();
Map paramNameMap = new HashMap();
while(iterParams.hasNext()) {
BIObjectParameter par = (BIObjectParameter)iterParams.next();
String parUrlName = par.getParameterUrlName();
if(parUrlName.equalsIgnoreCase("outputType"))
findOutFormat = true;
String value = (String)request.getAttribute(parUrlName);
paramValueMap.put(parUrlName, value);
paramNameMap.put(par.getLabel(), par.getParameterUrlName());
}
if(!findOutFormat){
paramValueMap.put("outputType", "JPGBASE64");
}
// fill a configured document bo with data retrived
ConfiguredBIDocument confDoc = new ConfiguredBIDocument();
confDoc.setDescription(obj.getDescription());
// confDoc.setId(obj.getId());
confDoc.setLabel(obj.getLabel());
confDoc.setParameters(paramValueMap);
confDoc.setName(obj.getName());
confDoc.setLogicalName(logicalName);
// check if the error handler contains validation errors
EMFErrorHandler errorHandler = getResponseContainer().getErrorHandler();
if(errorHandler.isOKByCategory(EMFErrorCategory.VALIDATION_ERROR)){
// store the configured document
IDossierDAO dossierDao = new DossierDAOHibImpl();
dossierDao.addConfiguredDocument(confDoc, tempFolder);
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierLoopbackDossierDetail");
} else {
// set attribute into response
response.setAttribute("parnamemap", paramNameMap);
response.setAttribute("parvaluemap", paramValueMap);
// response.setAttribute("idobj", confDoc.getId());
response.setAttribute("description", confDoc.getDescription());
response.setAttribute("label", confDoc.getLabel());
response.setAttribute("name", confDoc.getName());
response.setAttribute("logicalname", confDoc.getLogicalName());
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierConfiguredDocumentDetail");
}
logger.debug("OUT");
}
private void dossierDetailHandler(SourceBean request, SourceBean response) throws SourceBeanException, EMFUserError {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
IDossierDAO dossierDao = new DossierDAOHibImpl();
// List roleList = null;
// try{
// IRoleDAO roleDao = DAOFactory.getRoleDAO();
// roleList = roleDao.loadAllRoles();
// } catch(Exception e) {
// logger.error("Error while loading all roles", e);
// }
// get the current template file name
String tempFileName = dossierDao.getPresentationTemplateFileName(tempFolder);
if (tempFileName == null) tempFileName = "";
// get list of the configured document
List confDoc = dossierDao.getConfiguredDocumentList(tempFolder);
// get the current process definition file name
String procDefFileName = dossierDao.getProcessDefinitionFileName(tempFolder);
if (procDefFileName == null) procDefFileName = "";
//WorkflowConfiguration workConf = bookDao.getWorkflowConfiguration(pathConfBook);
List functionalities;
try {
functionalities = DAOFactory.getLowFunctionalityDAO().loadAllLowFunctionalities(true);
} catch (EMFUserError e) {
logger.error("Error while loading documents tree", e);
throw new EMFUserError(EMFErrorSeverity.ERROR, 100);
}
response.setAttribute(SpagoBIConstants.FUNCTIONALITIES_LIST, functionalities);
response.setAttribute(DossierConstants.CONFIGURED_DOCUMENT_LIST, confDoc);
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierDetail");
response.setAttribute(DossierConstants.OO_TEMPLATE_FILENAME, tempFileName);
response.setAttribute(DossierConstants.WF_PROCESS_DEFINTIION_FILENAME, procDefFileName);
logger.debug("OUT");
}
private void deleteConfiguredDocumentHandler(SourceBean request, SourceBean response) throws Exception {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
String confDocIdent = (String)request.getAttribute("configureddocumentidentifier");
IDossierDAO dossierDao = new DossierDAOHibImpl();
// delete the configured document
dossierDao.deleteConfiguredDocument(confDocIdent, tempFolder);
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierLoopbackDossierDetail");
logger.debug("OUT");
}
private void detailConfiguredDocumentHandler(SourceBean request, SourceBean response) throws Exception {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
String confDocIdent = (String)request.getAttribute("configureddocumentidentifier");
// get configured document
IDossierDAO dossierDao = new DossierDAOHibImpl();
ConfiguredBIDocument confDoc = dossierDao.getConfiguredDocument(confDocIdent, tempFolder);
// get parameter value map
Map paramValueMap = confDoc.getParameters();
// create parameter name map
// Integer idobj = confDoc.getId();
String label = confDoc.getLabel();
BIObject obj = DAOFactory.getBIObjectDAO().loadBIObjectByLabel(label);
Integer idobj = obj.getId();
IBIObjectParameterDAO biobjpardao = DAOFactory.getBIObjectParameterDAO();
List params = biobjpardao.loadBIObjectParametersById(idobj);
Iterator iterParams = params.iterator();
Map paramNameMap = new HashMap();
while(iterParams.hasNext()) {
BIObjectParameter par = (BIObjectParameter)iterParams.next();
String parLabel = par.getLabel();
String parUrlName = par.getParameterUrlName();
paramNameMap.put(parLabel, parUrlName);
}
// set attribute into response
response.setAttribute("parnamemap", paramNameMap);
response.setAttribute("parvaluemap", paramValueMap);
// response.setAttribute("idobj", confDoc.getId());
response.setAttribute("description", confDoc.getDescription());
response.setAttribute("label", confDoc.getLabel());
response.setAttribute("name", confDoc.getName());
response.setAttribute("logicalname", confDoc.getLogicalName());
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierConfiguredDocumentDetail");
logger.debug("OUT");
}
private void saveDossierDetailHandler(SourceBean request, SourceBean response) throws Exception {
logger.debug("IN");
String tempFolder = (String) request.getAttribute(DossierConstants.DOSSIER_TEMP_FOLDER);
IDossierDAO dossierDao = new DossierDAOHibImpl();
List docs = dossierDao.getConfiguredDocumentList(tempFolder);
EMFErrorHandler errorHandler = getErrorHandler();
if (dossierDao.getPresentationTemplateFileName(tempFolder) == null) {
logger.error("Presentation template not loaded");
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "", "104", "component_dossier_messages");
errorHandler.addError(error);
}
if (dossierDao.getProcessDefinitionFileName(tempFolder) == null) {
logger.error("Process definition file not loaded");
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "", "105", "component_dossier_messages");
errorHandler.addError(error);
}
if (docs == null || docs.size() == 0) {
logger.error("No documents configured in dossier");
EMFValidationError error = new EMFValidationError(EMFErrorSeverity.ERROR, "", "106", "component_dossier_messages");
errorHandler.addError(error);
}
Integer dossierId = dossierDao.getDossierId(tempFolder);
adjustRequiredAnalyticalDrivers(dossierId, docs);
if (errorHandler.isOKBySeverity(EMFErrorSeverity.ERROR)) {
dossierDao.storeTemplate(dossierId, tempFolder);
}
String saveAndGoBackStr = (String) request.getAttribute("SAVE_AND_GO_BACK");
boolean saveAndGoBack = saveAndGoBackStr != null && saveAndGoBackStr.trim().equalsIgnoreCase("TRUE");
if (saveAndGoBack) {
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierSaveAndGoBackLoop");
} else {
response.setAttribute(DossierConstants.DOSSIER_SAVED_MSG_CODE_ATTR_NAME, "dossier.savedOk");
response.setAttribute(DossierConstants.PUBLISHER_NAME, "DossierLoopbackDossierDetail");
}
logger.debug("OUT");
}
private void adjustRequiredAnalyticalDrivers(Integer dossierId, List docs) throws Exception {
logger.debug("IN");
DossierAnalyticalDriversManager manager = new DossierAnalyticalDriversManager();
List<EMFValidationError> errors = manager.adjustRequiredAnalyticalDrivers(dossierId, docs);
if (errors != null && errors.size() > 0) {
Iterator<EMFValidationError> it = errors.iterator();
while (it.hasNext()) {
this.getErrorHandler().addError(it.next());
}
}
logger.debug("OUT");
}
}