1 package org.sapia.regis; 2 3 import java.io.Serializable ; 4 import java.util.ArrayList ; 5 import java.util.Iterator ; 6 import java.util.List ; 7 import java.util.StringTokenizer ; 8 9 public class Path implements Serializable { 10 11 static final long serialVersionUID = 1L; 12 13 private List _tokens; 14 15 public Path(List tokens){ 16 _tokens = tokens; 17 } 18 19 public Iterator 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 (_tokens)); 34 } 35 36 public static Path parse(String path){ 37 StringTokenizer tokenizer = new StringTokenizer (path, "/"); 38 ArrayList tokens = new ArrayList (); 39 while(tokenizer.hasMoreTokens()){ 40 tokens.add(tokenizer.nextToken()); 41 } 42 tokens.trimToSize(); 43 return new Path(tokens); 44 } 45 46 public String toString(){ 47 StringBuffer buf = new StringBuffer (); 48 for(int i = 0; i < _tokens.size(); i++){ 49 String token = (String )_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 |