View Javadoc
1   package net.logAnalyzer.analysis;
2   
3   import java.util.Date;
4   
5   /***
6    * This class defines a template for log analyzers with a date key. A log
7    * analyzer analysis a messageLabel and generate an {@link LAAnalysis}. a period is
8    * used to normalize keys dates.
9    * 
10   * @author Karim REFEYTON
11   * @version 0.1
12   */
13  public abstract class LAPeriodicAnalyzer extends LAAnalyzer {
14  
15      /***
16       * Time period used to normalize the keys.
17       */
18      private LATimePeriod period;
19  
20      /***
21       * Construct a new analyzer from an analyzer definition.
22       * 
23       * @param definition
24       *            Definition of the analyzer.
25       * @param period
26       *            Time period.
27       */
28      public LAPeriodicAnalyzer(AnalyzerDefinition definition, LATimePeriod period) {
29          super(definition, period.getDateFormat());
30          this.period = period;
31      }
32  
33      /***
34       * Return the time period used to normalize the keys.
35       * 
36       * @return Time period.
37       */
38      public final LATimePeriod getPeriod() {
39          return this.period;
40      }
41  
42      /***
43       * Normalize a date using the period.
44       * 
45       * @param date
46       *            Date to normalize.
47       * @return Normalized date in date format.
48       */
49      public final Date normalizeDate(Date date) {
50          return period.normalize(date);
51      }
52  
53      /***
54       * Normalize a date using the period..
55       * 
56       * @param date
57       *            Date to normalize.
58       * @return Normalized date in string format.
59       */
60      public final String normalizeToString(Date date) {
61          return period.normalizeToString(date);
62      }
63  }