1 16 17 package org.pentaho.core.solution; 18 19 import java.io.ByteArrayOutputStream ; 20 import java.io.OutputStream ; 21 import java.util.ArrayList ; 22 import java.util.HashMap ; 23 import java.util.List ; 24 import java.util.Map ; 25 26 import org.pentaho.core.runtime.IRuntimeContext; 27 import org.pentaho.core.session.IPentahoSession; 28 import org.pentaho.core.session.StandaloneSession; 29 import org.pentaho.core.system.PentahoSystem; 30 import org.pentaho.core.ui.IPentahoUrlFactory; 31 import org.pentaho.core.ui.SimpleUrlFactory; 32 33 public class SolutionHelper { 34 35 57 public static ISolutionEngine execute(String description, String userId, String actionSequence, Map parameters, OutputStream outputStream) { 58 59 PentahoSystem.systemEntryPoint(); 60 ISolutionEngine solutionEngine = null; 61 try { 62 StandaloneSession session = new StandaloneSession(userId); 64 65 solutionEngine = PentahoSystem.getSolutionEngineInstance(session); 66 solutionEngine.init(session); 67 68 SimpleParameterProvider parameterProvider = new SimpleParameterProvider(parameters); 69 70 String baseUrl = PentahoSystem.getApplicationContext().getBaseUrl(); 71 HashMap parameterProviderMap = new HashMap (); 72 parameterProviderMap.put("request", parameterProvider); 74 IPentahoUrlFactory urlFactory = new SimpleUrlFactory(baseUrl); 75 76 String solutionRef[] = PentahoSystem.parseActionString(actionSequence); 77 78 String solution = solutionRef[0]; 79 String solutionPath = solutionRef[1]; 80 String action = solutionRef[2]; 81 String processName = description; 82 boolean persisted = false; 83 List messages = new ArrayList (); 84 85 if (outputStream == null) { 86 outputStream = new ByteArrayOutputStream (0); 87 } 88 SimpleOutputHandler outputHandler = null; 89 if (outputStream != null) { 90 outputHandler = new SimpleOutputHandler(outputStream, false); 91 outputHandler.setOutputPreference(IOutputHandler.OUTPUT_TYPE_DEFAULT); 92 } 93 solutionEngine.execute(solution, solutionPath, action, processName, false, true, null, persisted, parameterProviderMap, outputHandler, null, urlFactory, messages); 94 95 } finally { 96 PentahoSystem.systemExitPoint(); 97 } 98 return solutionEngine; 99 } 100 101 public static ISolutionEngine execute(String description, IPentahoSession session, String actionSequence, Map parameters, OutputStream outputStream) { 102 103 PentahoSystem.systemEntryPoint(); 104 ISolutionEngine solutionEngine = null; 105 try { 106 107 solutionEngine = PentahoSystem.getSolutionEngineInstance(session); 108 solutionEngine.init(session); 109 110 SimpleParameterProvider parameterProvider = new SimpleParameterProvider(parameters); 111 112 String baseUrl = PentahoSystem.getApplicationContext().getBaseUrl(); 113 HashMap parameterProviderMap = new HashMap (); 114 parameterProviderMap.put("request", parameterProvider); 116 IPentahoUrlFactory urlFactory = new SimpleUrlFactory(baseUrl); 117 118 String solutionRef[] = PentahoSystem.parseActionString(actionSequence); 119 120 String solution = solutionRef[0]; 121 String solutionPath = solutionRef[1]; 122 String action = solutionRef[2]; 123 String processName = description; 124 boolean persisted = false; 125 List messages = new ArrayList (); 126 127 if (outputStream == null) { 128 outputStream = new ByteArrayOutputStream (0); 129 } 130 SimpleOutputHandler outputHandler = null; 131 if (outputStream != null) { 132 outputHandler = new SimpleOutputHandler(outputStream, false); 133 outputHandler.setOutputPreference(IOutputHandler.OUTPUT_TYPE_DEFAULT); 134 } 135 solutionEngine.execute(solution, solutionPath, action, processName, false, true, null, persisted, parameterProviderMap, outputHandler, null, urlFactory, messages); 136 137 } finally { 138 PentahoSystem.systemExitPoint(); 139 } 140 return solutionEngine; 141 } 142 143 public static void execute(IRuntimeContext context, String actionSequence, Map parameters, OutputStream outputStream) { 144 145 PentahoSystem.systemEntryPoint(); 146 try { 147 IPentahoSession session = context.getSession(); 149 150 ISolutionEngine solutionEngine = PentahoSystem.getSolutionEngineInstance(session); 151 solutionEngine.init(session); 152 153 SimpleParameterProvider parameterProvider = new SimpleParameterProvider(parameters); 154 155 HashMap parameterProviderMap = new HashMap (); 156 parameterProviderMap.put("request", parameterProvider); 158 String solutionRef[] = PentahoSystem.parseActionString(actionSequence); 159 160 String solution = solutionRef[0]; 161 String solutionPath = solutionRef[1]; 162 String action = solutionRef[2]; 163 String processName = context.getProcessId(); 164 165 if (outputStream == null) { 166 outputStream = new ByteArrayOutputStream (0); 167 } 168 SimpleOutputHandler outputHandler = null; 169 if (outputStream != null) { 170 outputHandler = new SimpleOutputHandler(outputStream, false); 171 outputHandler.setOutputPreference(IOutputHandler.OUTPUT_TYPE_DEFAULT); 172 } 173 context = solutionEngine.execute(context, solution, solutionPath, action, processName, false, true, parameterProviderMap, outputHandler); 174 175 } finally { 176 PentahoSystem.systemExitPoint(); 177 } 178 179 } 180 181 public static void execute(ISolutionEngine solutionEngine, String actionSequence, Map parameters, OutputStream outputStream) { 182 183 PentahoSystem.systemEntryPoint(); 184 try { 185 186 if (solutionEngine == null) { 187 return; 188 } 189 190 IRuntimeContext context = solutionEngine.getExecutionContext(); 191 192 IPentahoSession session = context.getSession(); 194 195 solutionEngine.init(session); 196 197 if (parameters == null) { 198 parameters = new HashMap (); 199 } 200 SimpleParameterProvider parameterProvider = new SimpleParameterProvider(parameters); 201 202 HashMap parameterProviderMap = new HashMap (); 203 parameterProviderMap.put("request", parameterProvider); 205 String solutionRef[] = PentahoSystem.parseActionString(actionSequence); 206 207 String solution = solutionRef[0]; 208 String solutionPath = solutionRef[1]; 209 String action = solutionRef[2]; 210 String processName = context.getProcessId(); 211 212 if (outputStream == null) { 213 outputStream = new ByteArrayOutputStream (0); 214 } 215 SimpleOutputHandler outputHandler = null; 216 if (outputStream != null) { 217 outputHandler = new SimpleOutputHandler(outputStream, false); 218 outputHandler.setOutputPreference(IOutputHandler.OUTPUT_TYPE_DEFAULT); 219 } 220 context = solutionEngine.execute(context, solution, solutionPath, action, processName, false, true, parameterProviderMap, outputHandler); 221 222 } finally { 223 PentahoSystem.systemExitPoint(); 224 } 225 return; 226 227 } 228 229 } 230 | Popular Tags |