1 23 package com.sun.enterprise.diagnostics; 24 import com.sun.enterprise.diagnostics.collect.Collector; 25 import com.sun.enterprise.diagnostics.collect.Harvester; 26 import com.sun.enterprise.diagnostics.report.html.HTMLReportWriter; 27 import com.sun.logging.LogDomains; 28 29 import java.util.Map ; 30 import java.util.List ; 31 import java.util.Iterator ; 32 import java.util.logging.Logger ; 33 import java.util.logging.Level ; 34 38 public abstract class SingleInstanceObjectFactory implements BackendObjectFactory { 39 40 protected Map input; 41 protected CLIOptions options; 42 protected ReportConfig config; 43 protected ReportTarget target; 44 protected ExecutionContext context; 45 protected Logger logger = LogDomains.getLogger(LogDomains.ADMIN_LOGGER); 46 47 public SingleInstanceObjectFactory(Map input) { 48 this.input = input; 49 } 50 51 52 public ReportGenerator createReportGenerator() throws DiagnosticException { 53 analyzeInput(); 54 Collector harvester = createHarvester(); 55 HTMLReportWriter reportWriter = createHTMLReportWriter(); 56 return createReportGenerator(config,harvester,reportWriter); 57 } 58 59 public abstract ReportGenerator createReportGenerator(ReportConfig config, 60 Collector harvester,HTMLReportWriter reportWriter) 61 throws DiagnosticException; 62 63 public abstract Collector createHarvester() throws DiagnosticException; 64 65 public abstract HTMLReportWriter createHTMLReportWriter() 66 throws DiagnosticException ; 67 68 public abstract TargetResolver createTargetResolver(boolean local) 69 throws DiagnosticException; 70 71 protected ReportConfig getReportConfig() { 72 return config; 73 } 74 75 protected void analyzeInput() throws DiagnosticException{ 76 if(input != null) { 77 TargetResolver resolver = null; 78 boolean local; 79 List <ServiceConfig> serviceConfigs = null; 80 81 options = new CLIOptions(input); 82 local = isLocal(); 83 resolver = createTargetResolver(local); 84 target = resolver.resolve(); 85 context = resolver.getExecutionContext(); 86 serviceConfigs = resolver.getServiceConfigs(); 87 logger = context.getLogger(); 88 config = new ReportConfig(options, target,context); 89 config.addInstanceConfigs(serviceConfigs); 90 } 91 } 92 93 protected boolean isLocal() { 94 if(options.isLocal() && (options.getTargetDir() != null) ) 95 return true; 96 return false; 97 } 98 } 99 | Popular Tags |