4 import java.util.ArrayList;
\r
5 import java.util.Iterator;
\r
7 public class SearchGroupList implements Iterator<SearchGroup>, Iterable<SearchGroup>{
\r
9 private final ArrayList<SearchGroup> gList = new ArrayList<SearchGroup>();
\r
13 private String gFile = "env"+File.separator+"keywordgroup.xml";
\r
17 public SearchGroupList() {
\r
24 public Iterator<SearchGroup> iterator() {
\r
29 public boolean hasNext() {
\r
30 return (gList.size() > (idx+1));
\r
33 public SearchGroup next() {
\r
34 return gList.get(++idx);
\r
37 public void remove() {
\r
42 return gList.size();
\r
46 public boolean add(String name) {
\r
47 for ( SearchGroup gl : gList ) {
\r
48 if ( gl.getName().equals(name) ) {
\r
53 SearchGroup gl = new SearchGroup();
\r
58 public boolean add(String name, String member) {
\r
60 if ( name == null || member == null ) {
\r
65 for ( SearchGroup gl : gList ) {
\r
66 if ( gl.getName().equals(name) ) {
\r
68 for ( String gmember : gl ) {
\r
69 if ( gmember.equals(member) ) {
\r
80 SearchGroup gl = new SearchGroup();
\r
87 public boolean remove(String name) {
\r
88 for ( SearchGroup gl : gList ) {
\r
89 if ( gl.getName().equals(name) ) {
\r
97 public boolean remove(String name, String member) {
\r
99 if ( member == null ) {
\r
104 if ( name == null ) {
\r
106 for ( SearchGroup gl : gList ) {
\r
107 for ( String gmember : gl ) {
\r
108 if ( gmember.equals(member) ) {
\r
120 for ( SearchGroup gl : gList ) {
\r
121 if ( gl.getName().equals(name) ) {
\r
122 for ( String gmember : gl ) {
\r
123 if ( gmember.equals(member) ) {
\r
139 public boolean isFind(String name, String member) {
\r
141 if ( name == null || member == null ) {
\r
145 for ( SearchGroup gl : gList ) {
\r
146 if ( gl.getName().equals(name) ) {
\r
147 for ( String gmember : gl ) {
\r
148 if ( gmember.equals(member) ) {
\r
159 public boolean rename(String oldName, String newName) {
\r
160 for ( SearchGroup gl : gList ) {
\r
161 if ( gl.getName().equals(oldName) ) {
\r
162 gl.setName(newName);
\r
168 public boolean rename(String name, String oldMember, String newMember) {
\r
169 if ( name == null ) {
\r
171 for ( SearchGroup gl : gList ) {
\r
172 if ( gl.replace(oldMember, newMember) ) {
\r
179 for ( SearchGroup gl : gList ) {
\r
180 if ( gl.getName().equals(name) ) {
\r
181 if ( gl.replace(oldMember, newMember) ) {
\r
191 public boolean save() {
\r
192 System.out.println("検索キーワードグループ設定を保存します: "+gFile);
\r
193 if ( ! CommonUtils.writeXML(gFile, gList) ) {
\r
194 System.err.println("検索キーワードグループ設定の保存に失敗しました: "+gFile);
\r
200 public boolean load() {
\r
201 System.out.println("検索キーワードグループ設定を読み込みます: "+gFile);
\r
202 if ( new File(gFile).exists() ) {
\r
203 @SuppressWarnings("unchecked")
\r
204 ArrayList<SearchGroup> tmpList = (ArrayList<SearchGroup>) CommonUtils.readXML(gFile);
\r
205 if ( tmpList != null ) {
\r
206 FieldUtils.deepCopy(gList, tmpList);
\r
211 System.err.println("検索キーワードグループ設定が読み込みに失敗しました: "+gFile);
\r