1 package gate.creole.morph;
2
3 import java.util.ArrayList;
4
5
12
13 public class StringSet extends Variable {
14
15 private String varName;
16 private ArrayList variables;
17
18
21 public StringSet() {
22 variables = new ArrayList();
23 }
24
25
29 public boolean hasNext() {
30 if(pointer<variables.size()) {
31 return true;
32 } else {
33 return false;
34 }
35 }
36
37
41 public String next() {
42 if(pointer<variables.size()) {
43 pointer++;
44 return (String)(variables.get(pointer-1));
45 } else {
46 return null;
47 }
48 }
49
50
56 public boolean set(String varName, String varValue) {
57 this.varName = varName;
58 this.varValue = "";
59
62 String [] values = varValue.split(" OR ");
63 for(int i=0;i<values.length;i++) {
65
66 values[i] = values[i].trim();
68
69 if(values[i].length()<3 || !(values[i].charAt(0)=='\"') || !(values[i].charAt(values[i].length()-1)=='\"')) {
71 return false;
72 } else {
73 values[i] = values[i].substring(1,values[i].length()-1);
74 }
75 }
76
77 for(int i=0;i<values.length;i++) {
79 variables.add(values[i]);
80 this.varValue = this.varValue + "("+values[i]+")";
81 if ((i+1) != values.length) {
82 this.varValue = this.varValue + "|";
83 }
84 }
85 return true;
86 }
87
88
93 public boolean contains(String value) {
94 return variables.contains(value);
95 }
96 }