View Javadoc
1   package net.logAnalyzer.config;
2   
3   import net.logAnalyzer.analysis.LAAnalyzer;
4   import net.logAnalyzer.reports.LAReportRenderer;
5   
6   /***
7    * This class contains the current commands file content. Commands are of
8    * several kinds :
9    * <ul>
10   * <li>the pattern used to parse log files;</li>
11   * <li>analyzers used to analyze parsed messages;</li>
12   * <li>renderers used to render reports on analyzers results.</li>
13   * </ul>
14   * 
15   * @author Karim REFEYTON
16   * @version 0.1
17   */
18  public class CommandsManager {
19      /***
20       * Pattern used to parse log files.
21       */
22      private String pattern = null;
23  
24      /***
25       * Analyzers used to analyze parsed messages.
26       */
27      private LAAnalyzer[] analyzers = null;
28  
29      /***
30       * Renderers used to render reports.
31       */
32      private LAReportRenderer[] renderers = null;
33  
34      /***
35       * Default constructor.
36       * 
37       * @param pattern
38       *            Pattern used to parse log messages.
39       * @param analyzers
40       *            Analyzers used to analyze log messages and to produce user
41       *            defined computations.
42       * @param renderers
43       *            Renderers used to render analyzers results.
44       */
45      protected CommandsManager(String pattern, LAAnalyzer[] analyzers,
46              LAReportRenderer[] renderers) {
47          this.pattern = pattern;
48          this.analyzers = analyzers;
49          this.renderers = renderers;
50      }
51  
52      /***
53       * Create a new configuration manager instance from the specified commands
54       * file.
55       * 
56       * @param filename
57       *            Name of the commands file.
58       * @return The new instance.
59       */
60      public static CommandsManager createInstance(String filename) {
61          XMLCommandsLoader loader = new XMLCommandsLoader();
62          return loader.loadCommands(filename);
63      }
64  
65      /***
66       * Return the analyzers declared in the commands file used to analyze parsed
67       * messages.
68       * 
69       * @return Analyzers.
70       */
71      public final LAAnalyzer[] getAnalyzers() {
72          return this.analyzers;
73      }
74  
75      /***
76       * Return the pattern declared in the commands file to parse log file
77       * messages.
78       * 
79       * @return Pattern.
80       */
81      public final String getPattern() {
82          return this.pattern;
83      }
84  
85      /***
86       * Return the renderers declared in the commands file used to render
87       * reports.
88       * 
89       * @return Renderers.
90       */
91      public final LAReportRenderer[] getRenderers() {
92          return this.renderers;
93      }
94  }