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
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 }