KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > regis > util > ResourceFinderFactory


1 package org.sapia.regis.util;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5 import java.util.StringTokenizer JavaDoc;
6
7 public class ResourceFinderFactory {
8   
9   static final String JavaDoc GROUP_START_DELIM = "(";
10   static final String JavaDoc GROUP_END_DELIM = ")";
11   static final String JavaDoc RESOURCE_DELIM = ",";
12
13   static final String JavaDoc DELIMS = "(),";
14   
15   static ResourceFinder parse(String JavaDoc list){
16     ResourceFinder finder = new ResourceFinder(list);
17     StringTokenizer JavaDoc tokenizer =
18       new StringTokenizer JavaDoc(list, DELIMS, true);
19     
20     List JavaDoc group = null;
21     while(tokenizer.hasMoreTokens()){
22       String JavaDoc token = tokenizer.nextToken();
23       if(isGroupStart(token)){
24         if(group != null){
25           finder.addResources(group);
26         }
27         group = new ArrayList JavaDoc();
28       }
29       else if(isGroupEnd(token)){
30         if(group != null){
31           if(group.size() > 0){
32             finder.addResources(group);
33           }
34           group = null;
35         }
36       }
37       else if(isResourceDelim(token)){
38         //noop
39
}
40       else{
41         if(group != null){
42           group.add(token.trim());
43         }
44         else{
45           finder.addResource(token.trim());
46         }
47       }
48     }
49     if(group != null){
50       finder.addResources(group);
51     }
52     return finder;
53   }
54   
55   private static boolean isGroupStart(String JavaDoc token){
56     return token.length() == 1 && token.equals(GROUP_START_DELIM);
57   }
58   
59   private static boolean isGroupEnd(String JavaDoc token){
60     return token.length() == 1 && token.equals(GROUP_END_DELIM);
61   }
62   
63   private static boolean isResourceDelim(String JavaDoc token){
64     return token.length() == 1 && token.equals(RESOURCE_DELIM);
65   }
66 }
67
Popular Tags