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