1   package gate.creole.morph;
2   
3   import java.util.ArrayList;
4   import java.util.regex.Pattern;
5   import java.util.regex.PatternSyntaxException;
6   
7   /**
8    * <p>Title: </p>
9    * <p>Description: </p>
10   * <p>Copyright: Copyright (c) 2003</p>
11   * <p>Company: </p>
12   * @author not attributable
13   * @version 1.0
14   */
15  
16  public class CompiledRules {
17  
18    private ArrayList patterns;
19    private int pointer;
20  
21    public CompiledRules() {
22      patterns = new ArrayList();
23      pointer = 0;
24    }
25  
26    public boolean add(String pattern, String function, String category) {
27      try {
28        Pattern p = Pattern.compile(pattern.trim());
29        MyPattern mp = new MyPattern(p, function, category);
30        patterns.add(mp);
31        return true;
32      } catch(PatternSyntaxException pse) {
33        return false;
34      }
35    }
36  
37    public boolean hasNext() {
38      if(pointer < patterns.size()) {
39        return true;
40      } else {
41        return false;
42      }
43    }
44  
45    public MyPattern getNext() {
46      if(hasNext()) {
47        MyPattern mp = (MyPattern) (patterns.get(pointer));
48        pointer++;
49        return mp;
50      } else {
51        return null;
52      }
53    }
54  
55    public void resetPointer() {
56      this.pointer = 0;
57    }
58  }