Java2Script 3.2.2 upgrade
[jalview.git] / srcjar / org / json / simple / ItemList.java
diff --git a/srcjar/org/json/simple/ItemList.java b/srcjar/org/json/simple/ItemList.java
new file mode 100644 (file)
index 0000000..830961b
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+ * $Id: ItemList.java,v 1.1 2006/04/15 14:10:48 platform Exp $
+ * Created on 2006-3-24
+ */
+package org.json.simple;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+/**
+ * |a:b:c| => |a|,|b|,|c|
+ * |:| => ||,||
+ * |a:| => |a|,||
+ * @author FangYidong<fangyidong@yahoo.com.cn>
+ */
+public class ItemList {
+       private String sp=",";
+       List items=new ArrayList();
+       
+       
+       public ItemList(){}
+       
+       
+       public ItemList(String s){
+               this.split(s,sp,items);
+       }
+       
+       public ItemList(String s,String sp){
+               this.sp=s;
+               this.split(s,sp,items);
+       }
+       
+       public ItemList(String s,String sp,boolean isMultiToken){
+               split(s,sp,items,isMultiToken);
+       }
+       
+       public List getItems(){
+               return this.items;
+       }
+       
+       public String[] getArray(){
+               return (String[])this.items.toArray();
+       }
+       
+       public void split(String s,String sp,List append,boolean isMultiToken){
+               if(s==null || sp==null)
+                       return;
+               if(isMultiToken){
+                       StringTokenizer tokens=new StringTokenizer(s,sp);
+                       while(tokens.hasMoreTokens()){
+                               append.add(tokens.nextToken().trim());
+                       }
+               }
+               else{
+                       this.split(s,sp,append);
+               }
+       }
+       
+       public void split(String s,String sp,List append){
+               if(s==null || sp==null)
+                       return;
+               int pos=0;
+               int prevPos=0;
+               do{
+                       prevPos=pos;
+                       pos=s.indexOf(sp,pos);
+                       if(pos==-1)
+                               break;
+                       append.add(s.substring(prevPos,pos).trim());
+                       pos+=sp.length();
+               }while(pos!=-1);
+               append.add(s.substring(prevPos).trim());
+       }
+       
+       public void setSP(String sp){
+               this.sp=sp;
+       }
+       
+       public void add(int i,String item){
+               if(item==null)
+                       return;
+               items.add(i,item.trim());
+       }
+
+       public void add(String item){
+               if(item==null)
+                       return;
+               items.add(item.trim());
+       }
+       
+       public void addAll(ItemList list){
+               items.addAll(list.items);
+       }
+       
+       public void addAll(String s){
+               this.split(s,sp,items);
+       }
+       
+       public void addAll(String s,String sp){
+               this.split(s,sp,items);
+       }
+       
+       public void addAll(String s,String sp,boolean isMultiToken){
+               this.split(s,sp,items,isMultiToken);
+       }
+       
+       /**
+        * @param i 0-based
+        * @return
+        */
+       public String get(int i){
+               return (String)items.get(i);
+       }
+       
+       public int size(){
+               return items.size();
+       }
+
+       public String toString(){
+               return toString(sp);
+       }
+       
+       public String toString(String sp){
+               StringBuffer sb=new StringBuffer();
+               
+               for(int i=0;i<items.size();i++){
+                       if(i==0)
+                               sb.append(items.get(i));
+                       else{
+                               sb.append(sp);
+                               sb.append(items.get(i));
+                       }
+               }
+               return sb.toString();
+
+       }
+       
+       public void clear(){
+               items.clear();
+       }
+       
+       public void reset(){
+               sp=",";
+               items.clear();
+       }
+}