1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.trinidad.webapp;
20
21 import java.util.ArrayList;
22 import java.util.HashSet;
23 import java.util.List;
24 import java.util.Set;
25
26
27 final class TagUtils
28 {
29 private TagUtils() {}
30
31
32
33
34
35
36
37
38
39
40 @SuppressWarnings("oracle.jdeveloper.java.null-array-return")
41 static final String[] parseNameTokens(Object o)
42 {
43 List<String> list = parseNameTokensAsList(o);
44
45 if (list == null)
46 return null;
47
48 return list.toArray(new String[list.size()]);
49 }
50
51 @SuppressWarnings("oracle.jdeveloper.java.null-collection-return")
52 static final List<String> parseNameTokensAsList(Object o)
53 {
54 if (o == null)
55 return null;
56
57 String stringValue = o.toString();
58 ArrayList<String> list = new ArrayList<String>(5);
59
60 int length = stringValue.length();
61 boolean inSpace = true;
62 int start = 0;
63 for (int i = 0; i < length; i++)
64 {
65 char ch = stringValue.charAt(i);
66
67
68
69
70
71
72
73 if (Character.isWhitespace(ch))
74 {
75 if (!inSpace)
76 {
77 list.add(stringValue.substring(start, i));
78 inSpace = true;
79 }
80 }
81
82
83 else
84 {
85 if (inSpace)
86 {
87 start = i;
88 inSpace = false;
89 }
90 }
91 }
92
93 if (!inSpace)
94 list.add(stringValue.substring(start));
95
96 if (list.isEmpty())
97 return null;
98
99 return list;
100 }
101
102 @SuppressWarnings("oracle.jdeveloper.java.null-collection-return")
103 static final Set<String> parseNameTokensAsSet (Object o)
104 {
105 List<String> list = parseNameTokensAsList(o);
106
107 if (list == null)
108 return null;
109 else
110 return new HashSet<String>(list);
111 }
112 }