001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.juneau.rest.beans;
018
019import org.apache.juneau.bean.html5.*;
020
021/**
022 * Defines a simple hyperlink class.
023 *
024 * <h5 class='figure'>Examples:</h5>
025 * <p class='bjava'>
026 *    <ja>@Rest</ja>
027 *    <jk>public class</jk> MyRest <jk>extends</jk> BasicRestServlet {
028 *
029 *       <jc>// Produces &lt;a href=&quot;/foo&quot;&gt;bar&lt;/a&gt;</jc>
030 *       <ja>@RestGet</ja>
031 *       <jk>public</jk> Hyperlink a01() {
032 *          <jk>return new</jk> Hyperlink(<js>"foo"</js>, <js>"bar"</js>);
033 *       }
034 *
035 *       <jc>// Produces &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;/foo&quot;&gt;bar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</jc>
036 *       <ja>@RestGet</ja>
037 *       <jk>public</jk> Hyperlink[] a02() {
038 *          <jk>return new</jk> Hyperlink[]{a01()};
039 *       }
040 *
041 *       <jc>// Produces &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;/foo&quot;&gt;bar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</jc>
042 *       <ja>@RestGet</ja>
043 *       <jk>public</jk> Collection&lt;Hyperlink&gt; a03() {
044 *          <jk>return</jk> Arrays.<jsm>asList</jsm>(a02());
045 *       }
046 *    }
047 * </p>
048 *
049 * <h5 class='section'>See Also:</h5><ul>
050 *    <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/UtilityBeans">Utility Beans</a>
051 * </ul>
052 */
053public class Hyperlink extends A {
054   /**
055    * Static creator.
056    *
057    * @param href The {@link A#href(Object)} attribute.
058    * @param children The {@link A#children(Object[])} nodes.
059    * @return A new {@link Hyperlink} object.
060    */
061   public static Hyperlink create(Object href, Object...children) {
062      return new Hyperlink(href, children);
063   }
064
065   /**
066    * Creates an empty {@link A} element.
067    */
068   public Hyperlink() {}
069
070   /**
071    * Creates an {@link A} element with the specified {@link A#href(Object)} attribute and {@link A#children(Object[])}
072    * nodes.
073    *
074    * @param href The {@link A#href(Object)} attribute.
075    * @param children The {@link A#children(Object[])} nodes.
076    */
077   public Hyperlink(Object href, Object...children) {
078      super(href, children);
079   }
080   // A-specific attributes
081
082   @Override /* Overridden from A */
083   public Hyperlink _class(String value) {
084      super._class(value);
085      return this;
086   }
087
088   @Override /* Overridden from A */
089   public Hyperlink accesskey(String value) {
090      super.accesskey(value);
091      return this;
092   }
093
094   @Override /* Overridden from A */
095   public Hyperlink attr(String key, Object val) {
096      super.attr(key, val);
097      return this;
098   }
099
100   @Override /* Overridden from A */
101   public Hyperlink attrUri(String key, Object val) {
102      super.attrUri(key, val);
103      return this;
104   }
105
106   @Override /* Overridden from A */
107   public Hyperlink child(Object value) {
108      super.child(value);
109      return this;
110   }
111
112   @Override /* Overridden from A */
113   public Hyperlink children(Object...value) {
114      super.children(value);
115      return this;
116   }
117
118   // Global HTML attributes
119
120   @Override /* Overridden from A */
121   public Hyperlink contenteditable(Object value) {
122      super.contenteditable(value);
123      return this;
124   }
125
126   @Override /* Overridden from A */
127   public Hyperlink dir(String value) {
128      super.dir(value);
129      return this;
130   }
131
132   @Override /* Overridden from A */
133   public Hyperlink download(Object value) {
134      super.download(value);
135      return this;
136   }
137
138   @Override /* Overridden from A */
139   public Hyperlink hidden(Object value) {
140      super.hidden(value);
141      return this;
142   }
143
144   @Override /* Overridden from A */
145   public Hyperlink href(Object value) {
146      super.href(value);
147      return this;
148   }
149
150   @Override /* Overridden from A */
151   public Hyperlink hreflang(String value) {
152      super.hreflang(value);
153      return this;
154   }
155
156   @Override /* Overridden from A */
157   public Hyperlink id(String value) {
158      super.id(value);
159      return this;
160   }
161
162   @Override /* Overridden from A */
163   public Hyperlink lang(String value) {
164      super.lang(value);
165      return this;
166   }
167
168   @Override /* Overridden from A */
169   public Hyperlink onabort(String value) {
170      super.onabort(value);
171      return this;
172   }
173
174   @Override /* Overridden from A */
175   public Hyperlink onblur(String value) {
176      super.onblur(value);
177      return this;
178   }
179
180   @Override /* Overridden from A */
181   public Hyperlink oncancel(String value) {
182      super.oncancel(value);
183      return this;
184   }
185
186   @Override /* Overridden from A */
187   public Hyperlink oncanplay(String value) {
188      super.oncanplay(value);
189      return this;
190   }
191
192   // Event handler attributes
193
194   @Override /* Overridden from A */
195   public Hyperlink oncanplaythrough(String value) {
196      super.oncanplaythrough(value);
197      return this;
198   }
199
200   @Override /* Overridden from A */
201   public Hyperlink onchange(String value) {
202      super.onchange(value);
203      return this;
204   }
205
206   @Override /* Overridden from A */
207   public Hyperlink onclick(String value) {
208      super.onclick(value);
209      return this;
210   }
211
212   @Override /* Overridden from A */
213   public Hyperlink oncuechange(String value) {
214      super.oncuechange(value);
215      return this;
216   }
217
218   @Override /* Overridden from A */
219   public Hyperlink ondblclick(String value) {
220      super.ondblclick(value);
221      return this;
222   }
223
224   @Override /* Overridden from A */
225   public Hyperlink ondurationchange(String value) {
226      super.ondurationchange(value);
227      return this;
228   }
229
230   @Override /* Overridden from A */
231   public Hyperlink onemptied(String value) {
232      super.onemptied(value);
233      return this;
234   }
235
236   @Override /* Overridden from A */
237   public Hyperlink onended(String value) {
238      super.onended(value);
239      return this;
240   }
241
242   @Override /* Overridden from A */
243   public Hyperlink onerror(String value) {
244      super.onerror(value);
245      return this;
246   }
247
248   @Override /* Overridden from A */
249   public Hyperlink onfocus(String value) {
250      super.onfocus(value);
251      return this;
252   }
253
254   @Override /* Overridden from A */
255   public Hyperlink oninput(String value) {
256      super.oninput(value);
257      return this;
258   }
259
260   @Override /* Overridden from A */
261   public Hyperlink oninvalid(String value) {
262      super.oninvalid(value);
263      return this;
264   }
265
266   @Override /* Overridden from A */
267   public Hyperlink onkeydown(String value) {
268      super.onkeydown(value);
269      return this;
270   }
271
272   @Override /* Overridden from A */
273   public Hyperlink onkeypress(String value) {
274      super.onkeypress(value);
275      return this;
276   }
277
278   @Override /* Overridden from A */
279   public Hyperlink onkeyup(String value) {
280      super.onkeyup(value);
281      return this;
282   }
283
284   @Override /* Overridden from A */
285   public Hyperlink onload(String value) {
286      super.onload(value);
287      return this;
288   }
289
290   @Override /* Overridden from A */
291   public Hyperlink onloadeddata(String value) {
292      super.onloadeddata(value);
293      return this;
294   }
295
296   @Override /* Overridden from A */
297   public Hyperlink onloadedmetadata(String value) {
298      super.onloadedmetadata(value);
299      return this;
300   }
301
302   @Override /* Overridden from A */
303   public Hyperlink onloadstart(String value) {
304      super.onloadstart(value);
305      return this;
306   }
307
308   @Override /* Overridden from A */
309   public Hyperlink onmousedown(String value) {
310      super.onmousedown(value);
311      return this;
312   }
313
314   @Override /* Overridden from A */
315   public Hyperlink onmouseenter(String value) {
316      super.onmouseenter(value);
317      return this;
318   }
319
320   @Override /* Overridden from A */
321   public Hyperlink onmouseleave(String value) {
322      super.onmouseleave(value);
323      return this;
324   }
325
326   @Override /* Overridden from A */
327   public Hyperlink onmousemove(String value) {
328      super.onmousemove(value);
329      return this;
330   }
331
332   @Override /* Overridden from A */
333   public Hyperlink onmouseout(String value) {
334      super.onmouseout(value);
335      return this;
336   }
337
338   @Override /* Overridden from A */
339   public Hyperlink onmouseover(String value) {
340      super.onmouseover(value);
341      return this;
342   }
343
344   @Override /* Overridden from A */
345   public Hyperlink onmouseup(String value) {
346      super.onmouseup(value);
347      return this;
348   }
349
350   @Override /* Overridden from A */
351   public Hyperlink onmousewheel(String value) {
352      super.onmousewheel(value);
353      return this;
354   }
355
356   @Override /* Overridden from A */
357   public Hyperlink onpause(String value) {
358      super.onpause(value);
359      return this;
360   }
361
362   @Override /* Overridden from A */
363   public Hyperlink onplay(String value) {
364      super.onplay(value);
365      return this;
366   }
367
368   @Override /* Overridden from A */
369   public Hyperlink onplaying(String value) {
370      super.onplaying(value);
371      return this;
372   }
373
374   @Override /* Overridden from A */
375   public Hyperlink onprogress(String value) {
376      super.onprogress(value);
377      return this;
378   }
379
380   @Override /* Overridden from A */
381   public Hyperlink onratechange(String value) {
382      super.onratechange(value);
383      return this;
384   }
385
386   @Override /* Overridden from A */
387   public Hyperlink onreset(String value) {
388      super.onreset(value);
389      return this;
390   }
391
392   @Override /* Overridden from A */
393   public Hyperlink onresize(String value) {
394      super.onresize(value);
395      return this;
396   }
397
398   @Override /* Overridden from A */
399   public Hyperlink onscroll(String value) {
400      super.onscroll(value);
401      return this;
402   }
403
404   @Override /* Overridden from A */
405   public Hyperlink onseeked(String value) {
406      super.onseeked(value);
407      return this;
408   }
409
410   @Override /* Overridden from A */
411   public Hyperlink onseeking(String value) {
412      super.onseeking(value);
413      return this;
414   }
415
416   @Override /* Overridden from A */
417   public Hyperlink onselect(String value) {
418      super.onselect(value);
419      return this;
420   }
421
422   @Override /* Overridden from A */
423   public Hyperlink onshow(String value) {
424      super.onshow(value);
425      return this;
426   }
427
428   @Override /* Overridden from A */
429   public Hyperlink onstalled(String value) {
430      super.onstalled(value);
431      return this;
432   }
433
434   @Override /* Overridden from A */
435   public Hyperlink onsubmit(String value) {
436      super.onsubmit(value);
437      return this;
438   }
439
440   @Override /* Overridden from A */
441   public Hyperlink onsuspend(String value) {
442      super.onsuspend(value);
443      return this;
444   }
445
446   @Override /* Overridden from A */
447   public Hyperlink ontimeupdate(String value) {
448      super.ontimeupdate(value);
449      return this;
450   }
451
452   @Override /* Overridden from A */
453   public Hyperlink ontoggle(String value) {
454      super.ontoggle(value);
455      return this;
456   }
457
458   @Override /* Overridden from A */
459   public Hyperlink onvolumechange(String value) {
460      super.onvolumechange(value);
461      return this;
462   }
463
464   @Override /* Overridden from A */
465   public Hyperlink onwaiting(String value) {
466      super.onwaiting(value);
467      return this;
468   }
469
470   @Override /* Overridden from A */
471   public Hyperlink rel(String value) {
472      super.rel(value);
473      return this;
474   }
475
476   @Override /* Overridden from A */
477   public Hyperlink spellcheck(Object value) {
478      super.spellcheck(value);
479      return this;
480   }
481
482   @Override /* Overridden from A */
483   public Hyperlink style(String value) {
484      super.style(value);
485      return this;
486   }
487
488   @Override /* Overridden from A */
489   public Hyperlink tabindex(Object value) {
490      super.tabindex(value);
491      return this;
492   }
493
494   // Child/attribute methods
495
496   @Override /* Overridden from A */
497   public Hyperlink target(String value) {
498      super.target(value);
499      return this;
500   }
501
502   @Override /* Overridden from A */
503   public Hyperlink title(String value) {
504      super.title(value);
505      return this;
506   }
507
508   @Override /* Overridden from A */
509   public Hyperlink translate(Object value) {
510      super.translate(value);
511      return this;
512   }
513
514   @Override /* Overridden from A */
515   public Hyperlink type(String value) {
516      super.type(value);
517      return this;
518   }
519}