1 20 package org.openi.web.controller.analysis; 21 22 import org.apache.log4j.Logger; 23 import org.openi.analysis.Datasource; 24 import org.openi.menu.AnalysisCollectionMenuVisitor; 25 import org.openi.project.DirectoryLister; 26 import org.openi.project.Overview; 27 import org.openi.project.ProjectContext; 28 import org.openi.security.Permission; 29 import org.openi.util.*; 30 import org.openi.xml.*; 31 import org.openi.xmla.XmlaConnector; 32 import org.springframework.validation.BindException; 33 import org.springframework.validation.Errors; 34 import org.springframework.validation.ObjectError; 35 import org.springframework.web.servlet.ModelAndView; 36 import org.springframework.web.servlet.mvc.SimpleFormController; 37 import org.springframework.web.servlet.view.RedirectView; 38 39 import com.tonbeller.jpivot.olap.model.OlapException; 40 41 import java.io.*; 42 import java.util.*; 43 import javax.servlet.http.HttpServletRequest ; 44 import javax.servlet.http.HttpServletResponse ; 45 import javax.servlet.http.HttpSession ; 46 47 48 51 public class AutoAnalysisFormController extends SimpleFormController { 52 private static Logger logger = Logger.getLogger(AutoAnalysisFormController.class); 53 55 56 private String selectOverviewFormView; 57 private String configureOverviewFormView; 58 59 60 69 protected Object formBackingObject(HttpServletRequest request) 70 throws Exception { 71 logger.debug("handling formBackingObject, request: " + request.getParameterMap()); 72 ProjectContext projectContext = (ProjectContext) request.getSession() 73 .getAttribute("projectContext"); 74 if(!projectContext.hasPermission(Permission.AUTOGENERATE)){ 75 throw new SecurityException ("User does not have appropriate permission"); 76 } 77 78 Map model = new HashMap(); 81 model.put("datasources", projectContext.getProject().getDataSourceMap()); 85 86 String targetDatasource = request.getParameter("targetDatasource"); 87 if(targetDatasource!=null && targetDatasource.length()>0){ 88 model.put("cubes", discoverCubes(projectContext.getDatasource(targetDatasource))); 89 model.remove("targetCube"); model.put("targetDatasource", targetDatasource); 91 } 92 return model; 93 } 94 95 96 101 private List discoverCubes(Datasource datasource) throws OlapException { 102 return new XmlaConnector().getCubeList(datasource.getServer(), datasource.getCatalog(), datasource.getUsername(), datasource.getPassword()); 103 } 104 105 106 116 protected ModelAndView onSubmit(HttpServletRequest request, 117 HttpServletResponse response, Object command, BindException errors) 118 throws Exception 119 { 120 121 logger.debug("onSubmit: " + request.getParameterMap()); 122 ProjectContext projectContext = (ProjectContext)request.getSession().getAttribute("projectContext"); 123 124 if(!projectContext.hasPermission(Permission.AUTOGENERATE)){ 125 throw new SecurityException ("User does not have appropriate permission"); 126 } 127 128 Map model = (Map)command; 129 logger.debug("command map: " + model); 130 String targetDatasource = (String )model.get("targetDatasource"); 131 String targetCube = request.getParameter("targetCube"); 132 133 logger.debug("targetDatasource=" + targetDatasource); 134 logger.debug("targetCube=" + targetCube); 135 136 projectContext.autogenerate(targetDatasource, 137 targetCube, 138 "Auto_Generated/" + targetCube.replaceAll(" ", "_")); 139 140 143 return super.onSubmit(request, response, command, errors); 144 } 145 146 147 148 } 149 | Popular Tags |