Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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;
7 import java.util.ArrayList;
8 import java.util.List;
9 import java.util.StringTokenizer;
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();
22 public ItemList(){}
25 public ItemList(String s){
26 this.split(s,sp,items);
27 }
29 public ItemList(String s,String sp){
30 this.sp=s;
31 this.split(s,sp,items);
32 }
34 public ItemList(String s,String sp,boolean isMultiToken){
35 split(s,sp,items,isMultiToken);
36 }
38 public List getItems(){
39 return this.items;
40 }
42 public String[] getArray(){
43 return (String[])this.items.toArray();
44 }
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 }
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 }
76 public void setSP(String sp){
77 this.sp=sp;
78 }
80 public void add(int i,String item){
81 if(item==null)
82 return;
83 items.add(i,item.trim());
84 }
86 public void add(String item){
87 if(item==null)
88 return;
89 items.add(item.trim());
90 }
92 public void addAll(ItemList list){
93 items.addAll(list.items);
94 }
96 public void addAll(String s){
97 this.split(s,sp,items);
98 }
100 public void addAll(String s,String sp){
101 this.split(s,sp,items);
102 }
104 public void addAll(String s,String sp,boolean isMultiToken){
105 this.split(s,sp,items,isMultiToken);
106 }
108 /**
109 * @param i 0-based
110 * @return
111 */
112 public String get(int i){
113 return (String)items.get(i);
114 }
116 public int size(){
117 return items.size();
118 }
120 public String toString(){
121 return toString(sp);
122 }
124 public String toString(String sp){
125 StringBuffer sb=new StringBuffer();
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();
137 }
139 public void clear(){
140 items.clear();
141 }
143 public void reset(){
144 sp=",";
145 items.clear();
146 }
147 }