<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (18) -->
<title>Source code</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="source: package: org.apache.juneau.dto.html5, class: Caption">
<meta name="generator" content="javadoc/SourceToHTMLConverter">
<link rel="stylesheet" type="text/css" href="../../../../../../javadoc.css" title="Style">
</head>
<body class="source-page">
<main role="main">
<div class="source-container">
<pre><span class="source-line-no">001</span><span id="line-1">// ***************************************************************************************************************************</span>
<span class="source-line-no">002</span><span id="line-2">// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *</span>
<span class="source-line-no">003</span><span id="line-3">// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *</span>
<span class="source-line-no">004</span><span id="line-4">// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *</span>
<span class="source-line-no">005</span><span id="line-5">// * with the License.  You may obtain a copy of the License at                                                              *</span>
<span class="source-line-no">006</span><span id="line-6">// *                                                                                                                         *</span>
<span class="source-line-no">007</span><span id="line-7">// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *</span>
<span class="source-line-no">008</span><span id="line-8">// *                                                                                                                         *</span>
<span class="source-line-no">009</span><span id="line-9">// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *</span>
<span class="source-line-no">010</span><span id="line-10">// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *</span>
<span class="source-line-no">011</span><span id="line-11">// * specific language governing permissions and limitations under the License.                                              *</span>
<span class="source-line-no">012</span><span id="line-12">// ***************************************************************************************************************************</span>
<span class="source-line-no">013</span><span id="line-13">package org.apache.juneau.dto.html5;</span>
<span class="source-line-no">014</span><span id="line-14"></span>
<span class="source-line-no">015</span><span id="line-15">import org.apache.juneau.annotation.*;</span>
<span class="source-line-no">016</span><span id="line-16">import org.apache.juneau.internal.*;</span>
<span class="source-line-no">017</span><span id="line-17"></span>
<span class="source-line-no">018</span><span id="line-18">/**</span>
<span class="source-line-no">019</span><span id="line-19"> * DTO for an HTML &lt;a class="doclink" href="https://www.w3.org/TR/html5/tabular-data.html#the-caption-element"&gt;&amp;lt;caption&amp;gt;&lt;/a&gt;</span>
<span class="source-line-no">020</span><span id="line-20"> * element.</span>
<span class="source-line-no">021</span><span id="line-21"> *</span>
<span class="source-line-no">022</span><span id="line-22"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</span>
<span class="source-line-no">023</span><span id="line-23"> *    &lt;li class='link'&gt;&lt;a class="doclink" href="../../../../../index.html#jd.Html5"&gt;Overview &amp;gt; juneau-dto &amp;gt; HTML5&lt;/a&gt;</span>
<span class="source-line-no">024</span><span id="line-24"> * &lt;/ul&gt;</span>
<span class="source-line-no">025</span><span id="line-25"> */</span>
<span class="source-line-no">026</span><span id="line-26">@Bean(typeName="caption")</span>
<span class="source-line-no">027</span><span id="line-27">@FluentSetters</span>
<span class="source-line-no">028</span><span id="line-28">public class Caption extends HtmlElementMixed {</span>
<span class="source-line-no">029</span><span id="line-29"></span>
<span class="source-line-no">030</span><span id="line-30">   /**</span>
<span class="source-line-no">031</span><span id="line-31">    * Creates an empty {@link Caption} element.</span>
<span class="source-line-no">032</span><span id="line-32">    */</span>
<span class="source-line-no">033</span><span id="line-33">   public Caption() {}</span>
<span class="source-line-no">034</span><span id="line-34"></span>
<span class="source-line-no">035</span><span id="line-35">   /**</span>
<span class="source-line-no">036</span><span id="line-36">    * Creates a {@link Caption} element with the specified child nodes.</span>
<span class="source-line-no">037</span><span id="line-37">    *</span>
<span class="source-line-no">038</span><span id="line-38">    * @param children The child nodes.</span>
<span class="source-line-no">039</span><span id="line-39">    */</span>
<span class="source-line-no">040</span><span id="line-40">   public Caption(Object...children) {</span>
<span class="source-line-no">041</span><span id="line-41">      children(children);</span>
<span class="source-line-no">042</span><span id="line-42">   }</span>
<span class="source-line-no">043</span><span id="line-43"></span>
<span class="source-line-no">044</span><span id="line-44">   //-----------------------------------------------------------------------------------------------------------------</span>
<span class="source-line-no">045</span><span id="line-45">   // Overridden methods</span>
<span class="source-line-no">046</span><span id="line-46">   //-----------------------------------------------------------------------------------------------------------------</span>
<span class="source-line-no">047</span><span id="line-47"></span>
<span class="source-line-no">048</span><span id="line-48">   // &lt;FluentSetters&gt;</span>
<span class="source-line-no">049</span><span id="line-49"></span>
<span class="source-line-no">050</span><span id="line-50">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">051</span><span id="line-51">   public Caption _class(String _class) {</span>
<span class="source-line-no">052</span><span id="line-52">      super._class(_class);</span>
<span class="source-line-no">053</span><span id="line-53">      return this;</span>
<span class="source-line-no">054</span><span id="line-54">   }</span>
<span class="source-line-no">055</span><span id="line-55"></span>
<span class="source-line-no">056</span><span id="line-56">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">057</span><span id="line-57">   public Caption accesskey(String accesskey) {</span>
<span class="source-line-no">058</span><span id="line-58">      super.accesskey(accesskey);</span>
<span class="source-line-no">059</span><span id="line-59">      return this;</span>
<span class="source-line-no">060</span><span id="line-60">   }</span>
<span class="source-line-no">061</span><span id="line-61"></span>
<span class="source-line-no">062</span><span id="line-62">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">063</span><span id="line-63">   public Caption contenteditable(Object contenteditable) {</span>
<span class="source-line-no">064</span><span id="line-64">      super.contenteditable(contenteditable);</span>
<span class="source-line-no">065</span><span id="line-65">      return this;</span>
<span class="source-line-no">066</span><span id="line-66">   }</span>
<span class="source-line-no">067</span><span id="line-67"></span>
<span class="source-line-no">068</span><span id="line-68">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">069</span><span id="line-69">   public Caption dir(String dir) {</span>
<span class="source-line-no">070</span><span id="line-70">      super.dir(dir);</span>
<span class="source-line-no">071</span><span id="line-71">      return this;</span>
<span class="source-line-no">072</span><span id="line-72">   }</span>
<span class="source-line-no">073</span><span id="line-73"></span>
<span class="source-line-no">074</span><span id="line-74">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">075</span><span id="line-75">   public Caption hidden(Object hidden) {</span>
<span class="source-line-no">076</span><span id="line-76">      super.hidden(hidden);</span>
<span class="source-line-no">077</span><span id="line-77">      return this;</span>
<span class="source-line-no">078</span><span id="line-78">   }</span>
<span class="source-line-no">079</span><span id="line-79"></span>
<span class="source-line-no">080</span><span id="line-80">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">081</span><span id="line-81">   public Caption id(String id) {</span>
<span class="source-line-no">082</span><span id="line-82">      super.id(id);</span>
<span class="source-line-no">083</span><span id="line-83">      return this;</span>
<span class="source-line-no">084</span><span id="line-84">   }</span>
<span class="source-line-no">085</span><span id="line-85"></span>
<span class="source-line-no">086</span><span id="line-86">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">087</span><span id="line-87">   public Caption lang(String lang) {</span>
<span class="source-line-no">088</span><span id="line-88">      super.lang(lang);</span>
<span class="source-line-no">089</span><span id="line-89">      return this;</span>
<span class="source-line-no">090</span><span id="line-90">   }</span>
<span class="source-line-no">091</span><span id="line-91"></span>
<span class="source-line-no">092</span><span id="line-92">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">093</span><span id="line-93">   public Caption onabort(String onabort) {</span>
<span class="source-line-no">094</span><span id="line-94">      super.onabort(onabort);</span>
<span class="source-line-no">095</span><span id="line-95">      return this;</span>
<span class="source-line-no">096</span><span id="line-96">   }</span>
<span class="source-line-no">097</span><span id="line-97"></span>
<span class="source-line-no">098</span><span id="line-98">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">099</span><span id="line-99">   public Caption onblur(String onblur) {</span>
<span class="source-line-no">100</span><span id="line-100">      super.onblur(onblur);</span>
<span class="source-line-no">101</span><span id="line-101">      return this;</span>
<span class="source-line-no">102</span><span id="line-102">   }</span>
<span class="source-line-no">103</span><span id="line-103"></span>
<span class="source-line-no">104</span><span id="line-104">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">105</span><span id="line-105">   public Caption oncancel(String oncancel) {</span>
<span class="source-line-no">106</span><span id="line-106">      super.oncancel(oncancel);</span>
<span class="source-line-no">107</span><span id="line-107">      return this;</span>
<span class="source-line-no">108</span><span id="line-108">   }</span>
<span class="source-line-no">109</span><span id="line-109"></span>
<span class="source-line-no">110</span><span id="line-110">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">111</span><span id="line-111">   public Caption oncanplay(String oncanplay) {</span>
<span class="source-line-no">112</span><span id="line-112">      super.oncanplay(oncanplay);</span>
<span class="source-line-no">113</span><span id="line-113">      return this;</span>
<span class="source-line-no">114</span><span id="line-114">   }</span>
<span class="source-line-no">115</span><span id="line-115"></span>
<span class="source-line-no">116</span><span id="line-116">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">117</span><span id="line-117">   public Caption oncanplaythrough(String oncanplaythrough) {</span>
<span class="source-line-no">118</span><span id="line-118">      super.oncanplaythrough(oncanplaythrough);</span>
<span class="source-line-no">119</span><span id="line-119">      return this;</span>
<span class="source-line-no">120</span><span id="line-120">   }</span>
<span class="source-line-no">121</span><span id="line-121"></span>
<span class="source-line-no">122</span><span id="line-122">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">123</span><span id="line-123">   public Caption onchange(String onchange) {</span>
<span class="source-line-no">124</span><span id="line-124">      super.onchange(onchange);</span>
<span class="source-line-no">125</span><span id="line-125">      return this;</span>
<span class="source-line-no">126</span><span id="line-126">   }</span>
<span class="source-line-no">127</span><span id="line-127"></span>
<span class="source-line-no">128</span><span id="line-128">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">129</span><span id="line-129">   public Caption onclick(String onclick) {</span>
<span class="source-line-no">130</span><span id="line-130">      super.onclick(onclick);</span>
<span class="source-line-no">131</span><span id="line-131">      return this;</span>
<span class="source-line-no">132</span><span id="line-132">   }</span>
<span class="source-line-no">133</span><span id="line-133"></span>
<span class="source-line-no">134</span><span id="line-134">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">135</span><span id="line-135">   public Caption oncuechange(String oncuechange) {</span>
<span class="source-line-no">136</span><span id="line-136">      super.oncuechange(oncuechange);</span>
<span class="source-line-no">137</span><span id="line-137">      return this;</span>
<span class="source-line-no">138</span><span id="line-138">   }</span>
<span class="source-line-no">139</span><span id="line-139"></span>
<span class="source-line-no">140</span><span id="line-140">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">141</span><span id="line-141">   public Caption ondblclick(String ondblclick) {</span>
<span class="source-line-no">142</span><span id="line-142">      super.ondblclick(ondblclick);</span>
<span class="source-line-no">143</span><span id="line-143">      return this;</span>
<span class="source-line-no">144</span><span id="line-144">   }</span>
<span class="source-line-no">145</span><span id="line-145"></span>
<span class="source-line-no">146</span><span id="line-146">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">147</span><span id="line-147">   public Caption ondurationchange(String ondurationchange) {</span>
<span class="source-line-no">148</span><span id="line-148">      super.ondurationchange(ondurationchange);</span>
<span class="source-line-no">149</span><span id="line-149">      return this;</span>
<span class="source-line-no">150</span><span id="line-150">   }</span>
<span class="source-line-no">151</span><span id="line-151"></span>
<span class="source-line-no">152</span><span id="line-152">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">153</span><span id="line-153">   public Caption onemptied(String onemptied) {</span>
<span class="source-line-no">154</span><span id="line-154">      super.onemptied(onemptied);</span>
<span class="source-line-no">155</span><span id="line-155">      return this;</span>
<span class="source-line-no">156</span><span id="line-156">   }</span>
<span class="source-line-no">157</span><span id="line-157"></span>
<span class="source-line-no">158</span><span id="line-158">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">159</span><span id="line-159">   public Caption onended(String onended) {</span>
<span class="source-line-no">160</span><span id="line-160">      super.onended(onended);</span>
<span class="source-line-no">161</span><span id="line-161">      return this;</span>
<span class="source-line-no">162</span><span id="line-162">   }</span>
<span class="source-line-no">163</span><span id="line-163"></span>
<span class="source-line-no">164</span><span id="line-164">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">165</span><span id="line-165">   public Caption onerror(String onerror) {</span>
<span class="source-line-no">166</span><span id="line-166">      super.onerror(onerror);</span>
<span class="source-line-no">167</span><span id="line-167">      return this;</span>
<span class="source-line-no">168</span><span id="line-168">   }</span>
<span class="source-line-no">169</span><span id="line-169"></span>
<span class="source-line-no">170</span><span id="line-170">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">171</span><span id="line-171">   public Caption onfocus(String onfocus) {</span>
<span class="source-line-no">172</span><span id="line-172">      super.onfocus(onfocus);</span>
<span class="source-line-no">173</span><span id="line-173">      return this;</span>
<span class="source-line-no">174</span><span id="line-174">   }</span>
<span class="source-line-no">175</span><span id="line-175"></span>
<span class="source-line-no">176</span><span id="line-176">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">177</span><span id="line-177">   public Caption oninput(String oninput) {</span>
<span class="source-line-no">178</span><span id="line-178">      super.oninput(oninput);</span>
<span class="source-line-no">179</span><span id="line-179">      return this;</span>
<span class="source-line-no">180</span><span id="line-180">   }</span>
<span class="source-line-no">181</span><span id="line-181"></span>
<span class="source-line-no">182</span><span id="line-182">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">183</span><span id="line-183">   public Caption oninvalid(String oninvalid) {</span>
<span class="source-line-no">184</span><span id="line-184">      super.oninvalid(oninvalid);</span>
<span class="source-line-no">185</span><span id="line-185">      return this;</span>
<span class="source-line-no">186</span><span id="line-186">   }</span>
<span class="source-line-no">187</span><span id="line-187"></span>
<span class="source-line-no">188</span><span id="line-188">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">189</span><span id="line-189">   public Caption onkeydown(String onkeydown) {</span>
<span class="source-line-no">190</span><span id="line-190">      super.onkeydown(onkeydown);</span>
<span class="source-line-no">191</span><span id="line-191">      return this;</span>
<span class="source-line-no">192</span><span id="line-192">   }</span>
<span class="source-line-no">193</span><span id="line-193"></span>
<span class="source-line-no">194</span><span id="line-194">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">195</span><span id="line-195">   public Caption onkeypress(String onkeypress) {</span>
<span class="source-line-no">196</span><span id="line-196">      super.onkeypress(onkeypress);</span>
<span class="source-line-no">197</span><span id="line-197">      return this;</span>
<span class="source-line-no">198</span><span id="line-198">   }</span>
<span class="source-line-no">199</span><span id="line-199"></span>
<span class="source-line-no">200</span><span id="line-200">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">201</span><span id="line-201">   public Caption onkeyup(String onkeyup) {</span>
<span class="source-line-no">202</span><span id="line-202">      super.onkeyup(onkeyup);</span>
<span class="source-line-no">203</span><span id="line-203">      return this;</span>
<span class="source-line-no">204</span><span id="line-204">   }</span>
<span class="source-line-no">205</span><span id="line-205"></span>
<span class="source-line-no">206</span><span id="line-206">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">207</span><span id="line-207">   public Caption onload(String onload) {</span>
<span class="source-line-no">208</span><span id="line-208">      super.onload(onload);</span>
<span class="source-line-no">209</span><span id="line-209">      return this;</span>
<span class="source-line-no">210</span><span id="line-210">   }</span>
<span class="source-line-no">211</span><span id="line-211"></span>
<span class="source-line-no">212</span><span id="line-212">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">213</span><span id="line-213">   public Caption onloadeddata(String onloadeddata) {</span>
<span class="source-line-no">214</span><span id="line-214">      super.onloadeddata(onloadeddata);</span>
<span class="source-line-no">215</span><span id="line-215">      return this;</span>
<span class="source-line-no">216</span><span id="line-216">   }</span>
<span class="source-line-no">217</span><span id="line-217"></span>
<span class="source-line-no">218</span><span id="line-218">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">219</span><span id="line-219">   public Caption onloadedmetadata(String onloadedmetadata) {</span>
<span class="source-line-no">220</span><span id="line-220">      super.onloadedmetadata(onloadedmetadata);</span>
<span class="source-line-no">221</span><span id="line-221">      return this;</span>
<span class="source-line-no">222</span><span id="line-222">   }</span>
<span class="source-line-no">223</span><span id="line-223"></span>
<span class="source-line-no">224</span><span id="line-224">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">225</span><span id="line-225">   public Caption onloadstart(String onloadstart) {</span>
<span class="source-line-no">226</span><span id="line-226">      super.onloadstart(onloadstart);</span>
<span class="source-line-no">227</span><span id="line-227">      return this;</span>
<span class="source-line-no">228</span><span id="line-228">   }</span>
<span class="source-line-no">229</span><span id="line-229"></span>
<span class="source-line-no">230</span><span id="line-230">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">231</span><span id="line-231">   public Caption onmousedown(String onmousedown) {</span>
<span class="source-line-no">232</span><span id="line-232">      super.onmousedown(onmousedown);</span>
<span class="source-line-no">233</span><span id="line-233">      return this;</span>
<span class="source-line-no">234</span><span id="line-234">   }</span>
<span class="source-line-no">235</span><span id="line-235"></span>
<span class="source-line-no">236</span><span id="line-236">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">237</span><span id="line-237">   public Caption onmouseenter(String onmouseenter) {</span>
<span class="source-line-no">238</span><span id="line-238">      super.onmouseenter(onmouseenter);</span>
<span class="source-line-no">239</span><span id="line-239">      return this;</span>
<span class="source-line-no">240</span><span id="line-240">   }</span>
<span class="source-line-no">241</span><span id="line-241"></span>
<span class="source-line-no">242</span><span id="line-242">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">243</span><span id="line-243">   public Caption onmouseleave(String onmouseleave) {</span>
<span class="source-line-no">244</span><span id="line-244">      super.onmouseleave(onmouseleave);</span>
<span class="source-line-no">245</span><span id="line-245">      return this;</span>
<span class="source-line-no">246</span><span id="line-246">   }</span>
<span class="source-line-no">247</span><span id="line-247"></span>
<span class="source-line-no">248</span><span id="line-248">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">249</span><span id="line-249">   public Caption onmousemove(String onmousemove) {</span>
<span class="source-line-no">250</span><span id="line-250">      super.onmousemove(onmousemove);</span>
<span class="source-line-no">251</span><span id="line-251">      return this;</span>
<span class="source-line-no">252</span><span id="line-252">   }</span>
<span class="source-line-no">253</span><span id="line-253"></span>
<span class="source-line-no">254</span><span id="line-254">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">255</span><span id="line-255">   public Caption onmouseout(String onmouseout) {</span>
<span class="source-line-no">256</span><span id="line-256">      super.onmouseout(onmouseout);</span>
<span class="source-line-no">257</span><span id="line-257">      return this;</span>
<span class="source-line-no">258</span><span id="line-258">   }</span>
<span class="source-line-no">259</span><span id="line-259"></span>
<span class="source-line-no">260</span><span id="line-260">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">261</span><span id="line-261">   public Caption onmouseover(String onmouseover) {</span>
<span class="source-line-no">262</span><span id="line-262">      super.onmouseover(onmouseover);</span>
<span class="source-line-no">263</span><span id="line-263">      return this;</span>
<span class="source-line-no">264</span><span id="line-264">   }</span>
<span class="source-line-no">265</span><span id="line-265"></span>
<span class="source-line-no">266</span><span id="line-266">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">267</span><span id="line-267">   public Caption onmouseup(String onmouseup) {</span>
<span class="source-line-no">268</span><span id="line-268">      super.onmouseup(onmouseup);</span>
<span class="source-line-no">269</span><span id="line-269">      return this;</span>
<span class="source-line-no">270</span><span id="line-270">   }</span>
<span class="source-line-no">271</span><span id="line-271"></span>
<span class="source-line-no">272</span><span id="line-272">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">273</span><span id="line-273">   public Caption onmousewheel(String onmousewheel) {</span>
<span class="source-line-no">274</span><span id="line-274">      super.onmousewheel(onmousewheel);</span>
<span class="source-line-no">275</span><span id="line-275">      return this;</span>
<span class="source-line-no">276</span><span id="line-276">   }</span>
<span class="source-line-no">277</span><span id="line-277"></span>
<span class="source-line-no">278</span><span id="line-278">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">279</span><span id="line-279">   public Caption onpause(String onpause) {</span>
<span class="source-line-no">280</span><span id="line-280">      super.onpause(onpause);</span>
<span class="source-line-no">281</span><span id="line-281">      return this;</span>
<span class="source-line-no">282</span><span id="line-282">   }</span>
<span class="source-line-no">283</span><span id="line-283"></span>
<span class="source-line-no">284</span><span id="line-284">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">285</span><span id="line-285">   public Caption onplay(String onplay) {</span>
<span class="source-line-no">286</span><span id="line-286">      super.onplay(onplay);</span>
<span class="source-line-no">287</span><span id="line-287">      return this;</span>
<span class="source-line-no">288</span><span id="line-288">   }</span>
<span class="source-line-no">289</span><span id="line-289"></span>
<span class="source-line-no">290</span><span id="line-290">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">291</span><span id="line-291">   public Caption onplaying(String onplaying) {</span>
<span class="source-line-no">292</span><span id="line-292">      super.onplaying(onplaying);</span>
<span class="source-line-no">293</span><span id="line-293">      return this;</span>
<span class="source-line-no">294</span><span id="line-294">   }</span>
<span class="source-line-no">295</span><span id="line-295"></span>
<span class="source-line-no">296</span><span id="line-296">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">297</span><span id="line-297">   public Caption onprogress(String onprogress) {</span>
<span class="source-line-no">298</span><span id="line-298">      super.onprogress(onprogress);</span>
<span class="source-line-no">299</span><span id="line-299">      return this;</span>
<span class="source-line-no">300</span><span id="line-300">   }</span>
<span class="source-line-no">301</span><span id="line-301"></span>
<span class="source-line-no">302</span><span id="line-302">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">303</span><span id="line-303">   public Caption onratechange(String onratechange) {</span>
<span class="source-line-no">304</span><span id="line-304">      super.onratechange(onratechange);</span>
<span class="source-line-no">305</span><span id="line-305">      return this;</span>
<span class="source-line-no">306</span><span id="line-306">   }</span>
<span class="source-line-no">307</span><span id="line-307"></span>
<span class="source-line-no">308</span><span id="line-308">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">309</span><span id="line-309">   public Caption onreset(String onreset) {</span>
<span class="source-line-no">310</span><span id="line-310">      super.onreset(onreset);</span>
<span class="source-line-no">311</span><span id="line-311">      return this;</span>
<span class="source-line-no">312</span><span id="line-312">   }</span>
<span class="source-line-no">313</span><span id="line-313"></span>
<span class="source-line-no">314</span><span id="line-314">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">315</span><span id="line-315">   public Caption onresize(String onresize) {</span>
<span class="source-line-no">316</span><span id="line-316">      super.onresize(onresize);</span>
<span class="source-line-no">317</span><span id="line-317">      return this;</span>
<span class="source-line-no">318</span><span id="line-318">   }</span>
<span class="source-line-no">319</span><span id="line-319"></span>
<span class="source-line-no">320</span><span id="line-320">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">321</span><span id="line-321">   public Caption onscroll(String onscroll) {</span>
<span class="source-line-no">322</span><span id="line-322">      super.onscroll(onscroll);</span>
<span class="source-line-no">323</span><span id="line-323">      return this;</span>
<span class="source-line-no">324</span><span id="line-324">   }</span>
<span class="source-line-no">325</span><span id="line-325"></span>
<span class="source-line-no">326</span><span id="line-326">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">327</span><span id="line-327">   public Caption onseeked(String onseeked) {</span>
<span class="source-line-no">328</span><span id="line-328">      super.onseeked(onseeked);</span>
<span class="source-line-no">329</span><span id="line-329">      return this;</span>
<span class="source-line-no">330</span><span id="line-330">   }</span>
<span class="source-line-no">331</span><span id="line-331"></span>
<span class="source-line-no">332</span><span id="line-332">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">333</span><span id="line-333">   public Caption onseeking(String onseeking) {</span>
<span class="source-line-no">334</span><span id="line-334">      super.onseeking(onseeking);</span>
<span class="source-line-no">335</span><span id="line-335">      return this;</span>
<span class="source-line-no">336</span><span id="line-336">   }</span>
<span class="source-line-no">337</span><span id="line-337"></span>
<span class="source-line-no">338</span><span id="line-338">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">339</span><span id="line-339">   public Caption onselect(String onselect) {</span>
<span class="source-line-no">340</span><span id="line-340">      super.onselect(onselect);</span>
<span class="source-line-no">341</span><span id="line-341">      return this;</span>
<span class="source-line-no">342</span><span id="line-342">   }</span>
<span class="source-line-no">343</span><span id="line-343"></span>
<span class="source-line-no">344</span><span id="line-344">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">345</span><span id="line-345">   public Caption onshow(String onshow) {</span>
<span class="source-line-no">346</span><span id="line-346">      super.onshow(onshow);</span>
<span class="source-line-no">347</span><span id="line-347">      return this;</span>
<span class="source-line-no">348</span><span id="line-348">   }</span>
<span class="source-line-no">349</span><span id="line-349"></span>
<span class="source-line-no">350</span><span id="line-350">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">351</span><span id="line-351">   public Caption onstalled(String onstalled) {</span>
<span class="source-line-no">352</span><span id="line-352">      super.onstalled(onstalled);</span>
<span class="source-line-no">353</span><span id="line-353">      return this;</span>
<span class="source-line-no">354</span><span id="line-354">   }</span>
<span class="source-line-no">355</span><span id="line-355"></span>
<span class="source-line-no">356</span><span id="line-356">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">357</span><span id="line-357">   public Caption onsubmit(String onsubmit) {</span>
<span class="source-line-no">358</span><span id="line-358">      super.onsubmit(onsubmit);</span>
<span class="source-line-no">359</span><span id="line-359">      return this;</span>
<span class="source-line-no">360</span><span id="line-360">   }</span>
<span class="source-line-no">361</span><span id="line-361"></span>
<span class="source-line-no">362</span><span id="line-362">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">363</span><span id="line-363">   public Caption onsuspend(String onsuspend) {</span>
<span class="source-line-no">364</span><span id="line-364">      super.onsuspend(onsuspend);</span>
<span class="source-line-no">365</span><span id="line-365">      return this;</span>
<span class="source-line-no">366</span><span id="line-366">   }</span>
<span class="source-line-no">367</span><span id="line-367"></span>
<span class="source-line-no">368</span><span id="line-368">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">369</span><span id="line-369">   public Caption ontimeupdate(String ontimeupdate) {</span>
<span class="source-line-no">370</span><span id="line-370">      super.ontimeupdate(ontimeupdate);</span>
<span class="source-line-no">371</span><span id="line-371">      return this;</span>
<span class="source-line-no">372</span><span id="line-372">   }</span>
<span class="source-line-no">373</span><span id="line-373"></span>
<span class="source-line-no">374</span><span id="line-374">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">375</span><span id="line-375">   public Caption ontoggle(String ontoggle) {</span>
<span class="source-line-no">376</span><span id="line-376">      super.ontoggle(ontoggle);</span>
<span class="source-line-no">377</span><span id="line-377">      return this;</span>
<span class="source-line-no">378</span><span id="line-378">   }</span>
<span class="source-line-no">379</span><span id="line-379"></span>
<span class="source-line-no">380</span><span id="line-380">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">381</span><span id="line-381">   public Caption onvolumechange(String onvolumechange) {</span>
<span class="source-line-no">382</span><span id="line-382">      super.onvolumechange(onvolumechange);</span>
<span class="source-line-no">383</span><span id="line-383">      return this;</span>
<span class="source-line-no">384</span><span id="line-384">   }</span>
<span class="source-line-no">385</span><span id="line-385"></span>
<span class="source-line-no">386</span><span id="line-386">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">387</span><span id="line-387">   public Caption onwaiting(String onwaiting) {</span>
<span class="source-line-no">388</span><span id="line-388">      super.onwaiting(onwaiting);</span>
<span class="source-line-no">389</span><span id="line-389">      return this;</span>
<span class="source-line-no">390</span><span id="line-390">   }</span>
<span class="source-line-no">391</span><span id="line-391"></span>
<span class="source-line-no">392</span><span id="line-392">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">393</span><span id="line-393">   public Caption spellcheck(Object spellcheck) {</span>
<span class="source-line-no">394</span><span id="line-394">      super.spellcheck(spellcheck);</span>
<span class="source-line-no">395</span><span id="line-395">      return this;</span>
<span class="source-line-no">396</span><span id="line-396">   }</span>
<span class="source-line-no">397</span><span id="line-397"></span>
<span class="source-line-no">398</span><span id="line-398">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">399</span><span id="line-399">   public Caption style(String style) {</span>
<span class="source-line-no">400</span><span id="line-400">      super.style(style);</span>
<span class="source-line-no">401</span><span id="line-401">      return this;</span>
<span class="source-line-no">402</span><span id="line-402">   }</span>
<span class="source-line-no">403</span><span id="line-403"></span>
<span class="source-line-no">404</span><span id="line-404">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">405</span><span id="line-405">   public Caption tabindex(Object tabindex) {</span>
<span class="source-line-no">406</span><span id="line-406">      super.tabindex(tabindex);</span>
<span class="source-line-no">407</span><span id="line-407">      return this;</span>
<span class="source-line-no">408</span><span id="line-408">   }</span>
<span class="source-line-no">409</span><span id="line-409"></span>
<span class="source-line-no">410</span><span id="line-410">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">411</span><span id="line-411">   public Caption title(String title) {</span>
<span class="source-line-no">412</span><span id="line-412">      super.title(title);</span>
<span class="source-line-no">413</span><span id="line-413">      return this;</span>
<span class="source-line-no">414</span><span id="line-414">   }</span>
<span class="source-line-no">415</span><span id="line-415"></span>
<span class="source-line-no">416</span><span id="line-416">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElement */</span>
<span class="source-line-no">417</span><span id="line-417">   public Caption translate(Object translate) {</span>
<span class="source-line-no">418</span><span id="line-418">      super.translate(translate);</span>
<span class="source-line-no">419</span><span id="line-419">      return this;</span>
<span class="source-line-no">420</span><span id="line-420">   }</span>
<span class="source-line-no">421</span><span id="line-421"></span>
<span class="source-line-no">422</span><span id="line-422">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElementMixed */</span>
<span class="source-line-no">423</span><span id="line-423">   public Caption child(Object child) {</span>
<span class="source-line-no">424</span><span id="line-424">      super.child(child);</span>
<span class="source-line-no">425</span><span id="line-425">      return this;</span>
<span class="source-line-no">426</span><span id="line-426">   }</span>
<span class="source-line-no">427</span><span id="line-427"></span>
<span class="source-line-no">428</span><span id="line-428">   @Override /* GENERATED - org.apache.juneau.dto.html5.HtmlElementMixed */</span>
<span class="source-line-no">429</span><span id="line-429">   public Caption children(Object...children) {</span>
<span class="source-line-no">430</span><span id="line-430">      super.children(children);</span>
<span class="source-line-no">431</span><span id="line-431">      return this;</span>
<span class="source-line-no">432</span><span id="line-432">   }</span>
<span class="source-line-no">433</span><span id="line-433"></span>
<span class="source-line-no">434</span><span id="line-434">   // &lt;/FluentSetters&gt;</span>
<span class="source-line-no">435</span><span id="line-435">}</span>




























































</pre>
</div>
</main>
</body>
</html>
