001// ***************************************************************************************************************************
002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
003// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
005// * with the License.  You may obtain a copy of the License at                                                              *
006// *                                                                                                                         *
007// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
008// *                                                                                                                         *
009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
011// * specific language governing permissions and limitations under the License.                                              *
012// ***************************************************************************************************************************
013package org.apache.juneau.dto.html5;
014
015import org.apache.juneau.annotation.*;
016
017/**
018 * DTO for an HTML {@doc ExtHTML5.embedded-content-0#the-object-element <object>}
019 * element.
020 *
021 * <ul class='seealso'>
022 *    <li class='link'>{@doc DtoHtml5}
023 * </ul>
024 */
025@Bean(typeName="object")
026public class Object_ extends HtmlElementMixed {
027
028   /**
029    * Creates an empty {@link Object_} element.
030    */
031   public Object_() {}
032
033   /**
034    * Creates an {@link Object_} element with the specified child nodes.
035    *
036    * @param children The child nodes.
037    */
038   public Object_(Object...children) {
039      children(children);
040   }
041
042   /**
043    * {@doc ExtHTML5.embedded-content-0#attr-object-data data} attribute.
044    *
045    * <p>
046    * Address of the resource.
047    *
048    * @param data The new value for this attribute.
049    * @return This object (for method chaining).
050    */
051   public final Object_ data(String data) {
052      attr("data", data);
053      return this;
054   }
055
056   /**
057    * {@doc ExtHTML5.forms#attr-fae-form form} attribute.
058    *
059    * <p>
060    * Associates the control with a form element.
061    *
062    * @param form The new value for this attribute.
063    * @return This object (for method chaining).
064    */
065   public final Object_ form(String form) {
066      attr("form", form);
067      return this;
068   }
069
070   /**
071    * {@doc ExtHTML5.embedded-content-0#attr-dim-height height}
072    * attribute.
073    *
074    * <p>
075    * Vertical dimension.
076    *
077    * @param height
078    *    The new value for this attribute.
079    *    Typically a {@link Number} or {@link String}.
080    * @return This object (for method chaining).
081    */
082   public final Object_ height(Object height) {
083      attr("height", height);
084      return this;
085   }
086
087   /**
088    * {@doc ExtHTML5.embedded-content-0#attr-object-name name} attribute.
089    *
090    * <p>
091    * Name of nested browsing context.
092    *
093    * @param name The new value for this attribute.
094    * @return This object (for method chaining).
095    */
096   public final Object_ name(String name) {
097      attr("name", name);
098      return this;
099   }
100
101   /**
102    * {@doc ExtHTML5.embedded-content-0#attr-object-type type} attribute.
103    *
104    * <p>
105    * Type of embedded resource.
106    *
107    * @param type The new value for this attribute.
108    * @return This object (for method chaining).
109    */
110   public final Object_ type(String type) {
111      attr("type", type);
112      return this;
113   }
114
115   /**
116    * {@doc ExtHTML5.embedded-content-0#attr-object-typemustmatch typemustmatch}
117    * attribute.
118    *
119    * <p>
120    * Whether the type attribute and the Content-Type value need to match for the resource to be used.
121    *
122    * @param typemustmatch
123    *    The new value for this attribute.
124    *    Typically a {@link Boolean} or {@link String}.
125    * @return This object (for method chaining).
126    */
127   public final Object_ typemustmatch(Object typemustmatch) {
128      attr("typemustmatch", typemustmatch);
129      return this;
130   }
131
132   /**
133    * {@doc ExtHTML5.embedded-content-0#attr-hyperlink-usemap usemap}
134    * attribute.
135    *
136    * <p>
137    * Name of image map to use.
138    *
139    * @param usemap The new value for this attribute.
140    * @return This object (for method chaining).
141    */
142   public final Object_ usemap(String usemap) {
143      attr("usemap", usemap);
144      return this;
145   }
146
147   /**
148    * {@doc ExtHTML5.embedded-content-0#attr-dim-width width} attribute.
149    *
150    * <p>
151    * Horizontal dimension.
152    *
153    * @param width
154    *    The new value for this attribute.
155    *    Typically a {@link Number} or {@link String}.
156    * @return This object (for method chaining).
157    */
158   public final Object_ width(Object width) {
159      attr("width", width);
160      return this;
161   }
162
163
164   //-----------------------------------------------------------------------------------------------------------------
165   // Overridden methods
166   //-----------------------------------------------------------------------------------------------------------------
167
168   @Override /* HtmlElement */
169   public final Object_ _class(String _class) {
170      super._class(_class);
171      return this;
172   }
173
174   @Override /* HtmlElement */
175   public final Object_ id(String id) {
176      super.id(id);
177      return this;
178   }
179
180   @Override /* HtmlElement */
181   public final Object_ style(String style) {
182      super.style(style);
183      return this;
184   }
185
186   @Override /* HtmlElementMixed */
187   public Object_ children(Object...children) {
188      super.children(children);
189      return this;
190   }
191
192   @Override /* HtmlElementMixed */
193   public Object_ child(Object child) {
194      super.child(child);
195      return this;
196   }
197}