01: package com.calipso.reportgenerator.client;
02:
03: import com.calipso.reportgenerator.common.*;
04: import com.calipso.reportgenerator.common.InfoException;
05:
06: /**
07: * Esta clase se encarga de instanciar el RemortManager correspondiente dependiendo de la configuración y el uso que se le desee realizar
08: */
09: public class ReportManagerFactory implements IReportManagerFactory {
10:
11: /**
12: * Crea un ReportManager EJB si la configuración del ReportManagerConfiguracion es is Distributed, si no crea un RemportManaget.
13: * Si adicionalmente el Distributed y es isStateFul el EJB es StateFul, de lo contratrio crea un StateLess
14: * @param reportGeneratorConfiguration
15: * @param isStateFul
16: * @return
17: */
18: public IReportManager newReportManager(
19: ReportGeneratorConfiguration reportGeneratorConfiguration,
20: boolean isStateFul, String distributedHost)
21: throws InfoException {
22: IReportManager reportManager = null;
23: if (reportGeneratorConfiguration.getIsDistributed()) {
24: reportManager = RemoteReportManager.newRemoteReportManager(
25: reportGeneratorConfiguration, isStateFul,
26: distributedHost);
27: } else {
28: try {
29: Class reportManagerFactoryClass = Class
30: .forName("com.calipso.reportgenerator.reportmanager.LocalReportManagerFactory");
31: IReportManagerFactory factory = (IReportManagerFactory) reportManagerFactoryClass
32: .newInstance();
33: reportManager = factory.newReportManager(
34: reportGeneratorConfiguration, false,
35: distributedHost);
36: } catch (Exception e) {
37: throw new InfoException(LanguageTraslator
38: .traslate("466"), e);
39: }
40: }
41: return reportManager;
42: }
43:
44: }
|