830961b960448a1b40d71ef42cfc27e27dfac273
[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|
13  * |:| => ||,||
14  * |a:| => |a|,||
15  * @author FangYidong<fangyidong@yahoo.com.cn>
16  */
17 public class ItemList {
18         private String sp=",";
19         List items=new ArrayList();
20         
21         
22         public ItemList(){}
23         
24         
25         public ItemList(String s){
26                 this.split(s,sp,items);
27         }
28         
29         public ItemList(String s,String sp){
30                 this.sp=s;
31                 this.split(s,sp,items);
32         }
33         
34         public ItemList(String s,String sp,boolean isMultiToken){
35                 split(s,sp,items,isMultiToken);
36         }
37         
38         public List getItems(){
39                 return this.items;
40         }
41         
42         public String[] getArray(){
43                 return (String[])this.items.toArray();
44         }
45         
46         public void split(String s,String sp,List append,boolean isMultiToken){
47                 if(s==null || sp==null)
48                         return;
49                 if(isMultiToken){
50                         StringTokenizer tokens=new StringTokenizer(s,sp);
51                         while(tokens.hasMoreTokens()){
52                                 append.add(tokens.nextToken().trim());
53                         }
54                 }
55                 else{
56                         this.split(s,sp,append);
57                 }
58         }
59         
60         public void split(String s,String sp,List append){
61                 if(s==null || sp==null)
62                         return;
63                 int pos=0;
64                 int prevPos=0;
65                 do{
66                         prevPos=pos;
67                         pos=s.indexOf(sp,pos);
68                         if(pos==-1)
69                                 break;
70                         append.add(s.substring(prevPos,pos).trim());
71                         pos+=sp.length();
72                 }while(pos!=-1);
73                 append.add(s.substring(prevPos).trim());
74         }
75         
76         public void setSP(String sp){
77                 this.sp=sp;
78         }
79         
80         public void add(int i,String item){
81                 if(item==null)
82                         return;
83                 items.add(i,item.trim());
84         }
85
86         public void add(String item){
87                 if(item==null)
88                         return;
89                 items.add(item.trim());
90         }
91         
92         public void addAll(ItemList list){
93                 items.addAll(list.items);
94         }
95         
96         public void addAll(String s){
97                 this.split(s,sp,items);
98         }
99         
100         public void addAll(String s,String sp){
101                 this.split(s,sp,items);
102         }
103         
104         public void addAll(String s,String sp,boolean isMultiToken){
105                 this.split(s,sp,items,isMultiToken);
106         }
107         
108         /**
109          * @param i 0-based
110          * @return
111          */
112         public String get(int i){
113                 return (String)items.get(i);
114         }
115         
116         public int size(){
117                 return items.size();
118         }
119
120         public String toString(){
121                 return toString(sp);
122         }
123         
124         public String toString(String sp){
125                 StringBuffer sb=new StringBuffer();
126                 
127                 for(int i=0;i<items.size();i++){
128                         if(i==0)
129                                 sb.append(items.get(i));
130                         else{
131                                 sb.append(sp);
132                                 sb.append(items.get(i));
133                         }
134                 }
135                 return sb.toString();
136
137         }
138         
139         public void clear(){
140                 items.clear();
141         }
142         
143         public void reset(){
144                 sp=",";
145                 items.clear();
146         }
147 }