JAL-3438 spotless for 2.11.2.0
[jalview.git] / src / org / json / simple / ItemList.java
1 /*
2  * $Id: ItemList.java,v 1.1 2006/04/15 14:10:48 platform Exp $
3  * Created on 2006-3-24
4  */
5 package org.json.simple;
6
7 import java.util.ArrayList;
8 import java.util.List;
9 import java.util.StringTokenizer;
10
11 /**
12  * |a:b:c| => |a|,|b|,|c| |:| => ||,|| |a:| => |a|,||
13  * 
14  * @author FangYidong<fangyidong@yahoo.com.cn>
15  */
16 public class ItemList
17 {
18   private String sp = ",";
19
20   List items = new ArrayList();
21
22   public ItemList()
23   {
24   }
25
26   public ItemList(String s)
27   {
28     this.split(s, sp, items);
29   }
30
31   public ItemList(String s, String sp)
32   {
33     this.sp = s;
34     this.split(s, sp, items);
35   }
36
37   public ItemList(String s, String sp, boolean isMultiToken)
38   {
39     split(s, sp, items, isMultiToken);
40   }
41
42   public List getItems()
43   {
44     return this.items;
45   }
46
47   public String[] getArray()
48   {
49     return (String[]) this.items.toArray();
50   }
51
52   public void split(String s, String sp, List append, boolean isMultiToken)
53   {
54     if (s == null || sp == null)
55       return;
56     if (isMultiToken)
57     {
58       StringTokenizer tokens = new StringTokenizer(s, sp);
59       while (tokens.hasMoreTokens())
60       {
61         append.add(tokens.nextToken().trim());
62       }
63     }
64     else
65     {
66       this.split(s, sp, append);
67     }
68   }
69
70   public void split(String s, String sp, List append)
71   {
72     if (s == null || sp == null)
73       return;
74     int pos = 0;
75     int prevPos = 0;
76     do
77     {
78       prevPos = pos;
79       pos = s.indexOf(sp, pos);
80       if (pos == -1)
81         break;
82       append.add(s.substring(prevPos, pos).trim());
83       pos += sp.length();
84     } while (pos != -1);
85     append.add(s.substring(prevPos).trim());
86   }
87
88   public void setSP(String sp)
89   {
90     this.sp = sp;
91   }
92
93   public void add(int i, String item)
94   {
95     if (item == null)
96       return;
97     items.add(i, item.trim());
98   }
99
100   public void add(String item)
101   {
102     if (item == null)
103       return;
104     items.add(item.trim());
105   }
106
107   public void addAll(ItemList list)
108   {
109     items.addAll(list.items);
110   }
111
112   public void addAll(String s)
113   {
114     this.split(s, sp, items);
115   }
116
117   public void addAll(String s, String sp)
118   {
119     this.split(s, sp, items);
120   }
121
122   public void addAll(String s, String sp, boolean isMultiToken)
123   {
124     this.split(s, sp, items, isMultiToken);
125   }
126
127   /**
128    * @param i
129    *          0-based
130    * @return
131    */
132   public String get(int i)
133   {
134     return (String) items.get(i);
135   }
136
137   public int size()
138   {
139     return items.size();
140   }
141
142   public String toString()
143   {
144     return toString(sp);
145   }
146
147   public String toString(String sp)
148   {
149     StringBuffer sb = new StringBuffer();
150
151     for (int i = 0; i < items.size(); i++)
152     {
153       if (i == 0)
154         sb.append(items.get(i));
155       else
156       {
157         sb.append(sp);
158         sb.append(items.get(i));
159       }
160     }
161     return sb.toString();
162
163   }
164
165   public void clear()
166   {
167     items.clear();
168   }
169
170   public void reset()
171   {
172     sp = ",";
173     items.clear();
174   }
175 }