1   package org.slf4j.migrator.line;
2   
3   import java.util.ArrayList;
4   import java.util.Iterator;
5   import java.util.regex.Pattern;
6   
7   
8   /**
9    * This class represents JCL to SLF4J conversion rules
10   * 
11   * @author Jean-Noel Charpin
12   * 
13   */
14  public class JCLRuleSet implements RuleSet {
15  
16    private ArrayList<ConversionRule> conversionRuleList;
17    
18    public JCLRuleSet() {
19      // matching : import org.apache.commons.logging.LogFactory;
20      SingleConversionRule cr0 = new SingleConversionRule(Pattern
21          .compile("import\\s*+org.apache.commons.logging.LogFactory;"),
22          "import org.slf4j.LoggerFactory;");
23  
24      // matching : import org.apache.commons.logging.Log;
25      SingleConversionRule cr1 = new SingleConversionRule(Pattern
26          .compile("import\\s*+org.apache.commons.logging.Log;"), 
27          "import org.slf4j.Logger;");
28      
29      SingleConversionRule cr2 = new SingleConversionRule(Pattern
30          .compile("(\\sLog\\b)")," Logger");
31      
32      SingleConversionRule cr3 = new SingleConversionRule(Pattern
33          .compile("(^Log\\b)"),"Logger");
34      
35      SingleConversionRule cr4 = new SingleConversionRule(Pattern
36          .compile("LogFactory.getFactory\\(\\).getInstance\\("),
37              "LoggerFactory.getLogger(");
38  
39      SingleConversionRule cr5 = new SingleConversionRule(Pattern
40          .compile("LogFactory.getLog\\("),"LoggerFactory.getLogger(");
41      
42  
43      conversionRuleList = new ArrayList<ConversionRule>();
44      conversionRuleList.add(cr0);
45      conversionRuleList.add(cr1);
46      conversionRuleList.add(cr2);
47      conversionRuleList.add(cr3);
48      conversionRuleList.add(cr4);
49      conversionRuleList.add(cr5);
50    }
51  
52  
53    public Iterator<ConversionRule> iterator() {
54      return conversionRuleList.iterator();
55    }
56  }