1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.renderkit.html;
21
22 import java.util.Arrays;
23 import java.util.HashSet;
24 import java.util.Set;
25
26 public enum HtmlElements {
27
28 A("a", Qualifier.INLINE),
29 ABBR("abbr", Qualifier.INLINE),
30 ADDRESS("address"),
31 AREA("area", Qualifier.VOID),
32 ARTICLE("article"),
33 ASIDE("aside"),
34 AUDIO("audio"),
35 B("b", Qualifier.INLINE),
36 BASE("base", Qualifier.VOID),
37 BDI("bdi"),
38 BDO("bdo"),
39 BLOCKQUOTE("blockquote"),
40 BODY("body"),
41 BR("br", Qualifier.VOID),
42 BUTTON("button", Qualifier.INLINE),
43 CANVAS("canvas"),
44 CAPTION("caption"),
45 CITE("cite", Qualifier.INLINE),
46 CODE("code", Qualifier.INLINE),
47 COL("col", Qualifier.VOID),
48 COLGROUP("colgroup"),
49
50 @Deprecated
51 COMMAND("command", Qualifier.VOID),
52 DATALIST("datalist"),
53 DD("dd"),
54 DEL("del"),
55 DETAILS("details"),
56 DFN("dfn"),
57 DIV("div"),
58 DL("dl"),
59 DT("dt"),
60 EM("em", Qualifier.INLINE),
61 EMBED("embed", Qualifier.VOID),
62 FIELDSET("fieldset"),
63 FIGCAPTION("figcaption"),
64 FIGURE("figure"),
65 FOOTER("footer"),
66 FORM("form"),
67 H1("h1"),
68 H2("h2"),
69 H3("h3"),
70 H4("h4"),
71 H5("h5"),
72 H6("h6"),
73 HEAD("head"),
74 HEADER("header"),
75 HGROUP("hgroup"),
76 HR("hr", Qualifier.VOID),
77 HTML("html"),
78 I("i", Qualifier.INLINE),
79 IFRAME("iframe"),
80 IMG("img", Qualifier.VOID, Qualifier.INLINE),
81 INPUT("input", Qualifier.VOID, Qualifier.INLINE),
82 INS("ins"),
83 KBD("kbd"),
84 KEYGEN("keygen", Qualifier.VOID),
85 LABEL("label", Qualifier.INLINE),
86 LEGEND("legend"),
87 LI("li"),
88 LINK("link", Qualifier.VOID),
89 MAP("map"),
90 MARK("mark"),
91 MENU("menu"),
92 META("meta", Qualifier.VOID),
93 METER("meter"),
94 NAV("nav"),
95 NOSCRIPT("noscript"),
96 OBJECT("object"),
97 OL("ol"),
98 OPTGROUP("optgroup"),
99 OPTION("option"),
100 P("p"),
101 PARAM("param", Qualifier.VOID),
102 PRE("pre", Qualifier.INLINE),
103 PROGRESS("progress"),
104 Q("q"),
105 RP("rp"),
106 RT("rt"),
107 RUBY("ruby"),
108 S("s"),
109 SAMP("samp"),
110 SCRIPT("script", Qualifier.INLINE),
111 SECTION("section"),
112 SELECT("select", Qualifier.INLINE),
113 SMALL("small"),
114 SOURCE("source", Qualifier.VOID),
115 SPAN("span", Qualifier.INLINE),
116 STRONG("strong"),
117 STYLE("style"),
118 SUB("sub", Qualifier.INLINE),
119 SUMMARY("summary"),
120 SUP("sup", Qualifier.INLINE),
121 TABLE("table"),
122 TBODY("tbody"),
123 TD("td"),
124 TEXTAREA("textarea", Qualifier.INLINE),
125 TFOOT("tfoot"),
126 TH("th"),
127 THEAD("thead"),
128 TIME("time"),
129 TITLE("title"),
130 TR("tr"),
131 TRACK("track", Qualifier.VOID),
132 U("u", Qualifier.INLINE),
133 UL("ul"),
134 VAR("var"),
135 VIDEO("video"),
136 WBR("wbr", Qualifier.VOID),
137
138 TOBAGO_BADGE("tobago-badge"),
139 TOBAGO_BAR("tobago-bar"),
140 TOBAGO_BEHAVIOR("tobago-behavior"),
141 TOBAGO_BUTTONS("tobago-buttons"),
142 TOBAGO_BOX("tobago-box"),
143 TOBAGO_DATE("tobago-date"),
144 TOBAGO_DROPDOWN("tobago-dropdown"),
145 TOBAGO_FILE("tobago-file"),
146 TOBAGO_FOCUS("tobago-focus"),
147 TOBAGO_FOOTER("tobago-footer"),
148 TOBAGO_LABEL("tobago-label"),
149 TOBAGO_HEADER("tobago-header"),
150 TOBAGO_IN("tobago-in"),
151 TOBAGO_LINKS("tobago-links"),
152 TOBAGO_MESSAGES("tobago-messages"),
153 TOBAGO_PAGE("tobago-page"),
154 TOBAGO_PANEL("tobago-panel"),
155 TOBAGO_POPOVER("tobago-popover"),
156 TOBAGO_POPUP("tobago-popup"),
157 TOBAGO_RANGE("tobago-range"),
158 TOBAGO_SECTION("tobago-section"),
159 TOBAGO_SELECT_BOOLEAN_CHECKBOX("tobago-select-boolean-checkbox"),
160 TOBAGO_SELECT_BOOLEAN_TOGGLE("tobago-select-boolean-toggle"),
161 TOBAGO_SELECT_MANY_CHECKBOX("tobago-select-many-checkbox"),
162 TOBAGO_SELECT_MANY_LISTBOX("tobago-select-many-listbox"),
163 TOBAGO_SELECT_MANY_SHUTTLE("tobago-select-many-shuttle"),
164 TOBAGO_SELECT_ONE_CHOICE("tobago-select-one-choice"),
165 TOBAGO_SELECT_ONE_LISTBOX("tobago-select-one-listbox"),
166 TOBAGO_SELECT_ONE_RADIO("tobago-select-one-radio"),
167 TOBAGO_SEPARATOR("tobago-separator"),
168 TOBAGO_SHEET("tobago-sheet"),
169 TOBAGO_SPLIT_LAYOUT("tobago-split-layout"),
170 TOBAGO_STARS("tobago-stars"),
171 TOBAGO_SUGGEST("tobago-suggest"),
172 TOBAGO_TAB("tobago-tab"),
173 TOBAGO_TAB_CONTENT("tobago-tab-content"),
174 TOBAGO_TAB_GROUP("tobago-tab-group"),
175 TOBAGO_TEXTAREA("tobago-textarea"),
176 TOBAGO_TREE("tobago-tree"),
177 TOBAGO_TREE_LISTBOX("tobago-tree-listbox"),
178 TOBAGO_TREE_NODE("tobago-tree-node"),
179 TOBAGO_TREE_SELECT("tobago-tree-select");
180
181 private final String value;
182 private final boolean voidElement;
183 private final boolean inlineElement;
184
185 private static final Set<String> VOIDS = new HashSet<>();
186 private static final Set<String> INLINES = new HashSet<>();
187
188 HtmlElements(final String value, final Qualifier... qualifiers) {
189 this.value = value;
190 this.voidElement = Arrays.asList(qualifiers).contains(Qualifier.VOID);
191 this.inlineElement = Arrays.asList(qualifiers).contains(Qualifier.INLINE);
192 }
193
194 static {
195 for (final HtmlElements htmlElement : values()) {
196 if (htmlElement.isVoid()) {
197 VOIDS.add(htmlElement.getValue());
198 }
199 if (htmlElement.isInline()) {
200 INLINES.add(htmlElement.getValue());
201 }
202 }
203 }
204
205 public String getValue() {
206 return value;
207 }
208
209
210
211
212
213
214 public boolean isVoid() {
215 return voidElement;
216 }
217
218 public boolean isInline() {
219 return inlineElement;
220 }
221
222 public static boolean isVoid(final String name) {
223 return VOIDS.contains(name);
224 }
225
226 public static boolean isInline(final String name) {
227 return INLINES.contains(name);
228 }
229
230 private enum Qualifier {VOID, INLINE}
231 }