KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > regis > Path


1 package org.sapia.regis;
2
3 import java.io.Serializable JavaDoc;
4 import java.util.ArrayList JavaDoc;
5 import java.util.Iterator JavaDoc;
6 import java.util.List JavaDoc;
7 import java.util.StringTokenizer JavaDoc;
8
9 public class Path implements Serializable JavaDoc{
10   
11   static final long serialVersionUID = 1L;
12   
13   private List JavaDoc _tokens;
14   
15   public Path(List JavaDoc tokens){
16     _tokens = tokens;
17   }
18   
19   public Iterator JavaDoc tokens(){
20     return _tokens.iterator();
21   }
22   
23   public boolean isRoot(){
24     return _tokens.size() == 0 ||
25       (_tokens.size() == 1 && _tokens.get(0).equals(Node.ROOT_NAME));
26   }
27   
28   public int tokenCount(){
29     return _tokens.size();
30   }
31   
32   public Path getClone(){
33     return new Path(new ArrayList JavaDoc(_tokens));
34   }
35   
36   public static Path parse(String JavaDoc path){
37     StringTokenizer JavaDoc tokenizer = new StringTokenizer JavaDoc(path, "/");
38     ArrayList JavaDoc tokens = new ArrayList JavaDoc();
39     while(tokenizer.hasMoreTokens()){
40       tokens.add(tokenizer.nextToken());
41     }
42     tokens.trimToSize();
43     return new Path(tokens);
44   }
45   
46   public String JavaDoc toString(){
47     StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
48     for(int i = 0; i < _tokens.size(); i++){
49       String JavaDoc token = (String JavaDoc)_tokens.get(i);
50       buf.append(token);
51       if(i < _tokens.size() - 1){
52         buf.append("/");
53       }
54     }
55     return buf.toString();
56   }
57
58 }
59
Popular Tags