http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java new file mode 100644 index 0000000..6be8583 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java @@ -0,0 +1,208 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.cognos; + +import java.util.*; + +import org.apache.juneau.*; +import org.apache.juneau.annotation.*; +import org.apache.juneau.xml.annotation.*; + +/** + * Represents a Cognos dataset. + * + * <p> + * When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>): + * <p class='bcode'> + * <xt><?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?></xt> + * <xt><c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>></xt> + * <xt><c:metadata></xt> + * <xt><c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> + * <xa>length</xa>=<xs>'255'</xs><xt>/></xt> + * <xt><c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt> + * <xt><c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt> + * <xt></c:metadata></xt> + * <xt><c:data></xt> + * <xt><c:row></xt> + * <xt><c:value></xt>Barack Obama<xt></c:value></xt> + * <xt><c:value></xt>52<xt></c:value></xt> + * <xt><c:value></xt>2<xt></c:value></xt> + * <xt></c:row></xt> + * <xt><c:row></xt> + * <xt><c:value></xt>George Walker Bush<xt></c:value></xt> + * <xt><c:value></xt>67<xt></c:value></xt> + * <xt><c:value></xt>2<xt></c:value></xt> + * <xt></c:row></xt> + * <xt></c:data></xt> + * <xt></c:dataset></xt> + * </p> + * + * <p> + * Only 2-dimensional POJOs (arrays or collections of maps or beans) can be serialized to Cognos. + * + * <h5 class='section'>Example:</h5> + * + * The construct shown above is a serialized <code>AddressBook</code> object which is a subclass of + * <code>LinkedList<Person></code>. + * The code for generating the XML is as follows... + * </p> + * <p class='bcode'> + * Column[] items = { + * <jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255), + * <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>), + * <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>) + * .addPojoSwap( + * <jk>new</jk> PojoSwap<Person,Integer>() { + * <ja>@Override</ja> + * <jk>public</jk> Integer swap(Person p) { + * <jk>return</jk> p.<jf>addresses</jf>.size(); + * } + * } + * ) + * }; + * + * DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>); + * + * String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds); + * </p> + */ +@SuppressWarnings("unchecked") +@Bean(typeName="dataset", properties="metadata,data") +public class DataSet { + + private Column[] metaData; + private List<Row> data; + + /** Bean constructor. */ + public DataSet() {} + + /** + * Constructor. + * + * @param columns The meta-data that represents the columns in the dataset. + * @param o + * The POJO being serialized to Cognos. + * Must be an array/collection of beans/maps. + * @param session The bean session used to convert POJOs to strings. + * @throws Exception An error occurred trying to serialize the POJO. + */ + public DataSet(Column[] columns, Object o, BeanSession session) throws Exception { + metaData = columns; + data = new LinkedList<Row>(); + if (o != null) { + if (o.getClass().isArray()) + o = Arrays.asList((Object[])o); + if (o instanceof Collection) { + Collection<?> c = (Collection<?>)o; + for (Object o2 : c) { + Row r = new Row(); + Map<?,?> m = null; + if (o2 instanceof Map) + m = (Map<?,?>)o2; + else + m = session.toBeanMap(o2); + for (Column col : columns) { + Object v; + if (col.pojoSwap != null) + v = col.pojoSwap.swap(session, o2); + else + v = m.get(col.getName()); + r.add(v == null ? null : v.toString()); + } + data.add(r); + } + } + } + } + + /** + * Represents a row of data. + * + * <p> + * When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>): + * <p class='bcode'> + * <xt><row></xt> + * <xt><value></xt>Barack Obama<xt></value></xt> + * <xt><value></xt>52<xt></value></xt> + * <xt><value></xt>2<xt></value></xt> + * <xt></row></xt> + * </p> + */ + @Bean(typeName="row") + public static class Row { + private List<String> values = new LinkedList<String>(); + + private void add(String value) { + values.add(value); + } + + /** + * Returns the values in this row. + * + * @return The values in this row. + */ + @Xml(format=XmlFormat.COLLAPSED, childName="value") + public List<String> getValues() { + return values; + } + } + + + //-------------------------------------------------------------------------------- + // Bean properties + //-------------------------------------------------------------------------------- + + /** + * Bean property getter: <property>metadata</property>. + * + * @return The value of the <property>metadata</property> property on this bean, or <jk>null</jk> if it is not set. + */ + @BeanProperty("metadata") + public Column[] getMetaData() { + return metaData; + } + + /** + * Bean property setter: <property>metadata</property>. + * + * @param metaData The new value for the <property>metadata</property> property on this bean. + * @return This object (for method chaining). + */ + @BeanProperty("metadata") + public DataSet setMetaData(Column[] metaData) { + this.metaData = metaData; + return this; + } + + /** + * Bean property getter: <property>data</property>. + * + * @return The value of the <property>data</property> property on this bean, or <jk>null</jk> if it is not set. + */ + @BeanProperty("data") + public List<Row> getData() { + return data; + } + + /** + * Bean property setter: <property>data</property>. + * + * @param data The new value for the <property>data</property> property on this bean. + * @return This object (for method chaining). + */ + @BeanProperty("data") + public DataSet setData(List<Row> data) { + this.data = data; + return this; + } +}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png new file mode 100644 index 0000000..fd63c23 Binary files /dev/null and b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/HTML.png differ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png new file mode 100644 index 0000000..44785ad Binary files /dev/null and b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/JSON.png differ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png new file mode 100644 index 0000000..081e949 Binary files /dev/null and b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/doc-files/RDFXML.png differ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java new file mode 100644 index 0000000..484563d --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package-info.java @@ -0,0 +1,17 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +// XML namespaces used in this package +@XmlSchema(prefix="cognos", namespace="http://developer.cognos.com/schemas/xmldata/1/") +package org.apache.juneau.dto.cognos; +import org.apache.juneau.xml.annotation.*; + http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html new file mode 100644 index 0000000..b19a781 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/package.html @@ -0,0 +1,183 @@ +<!DOCTYPE HTML> +<!-- +/*************************************************************************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + ***************************************************************************************************************************/ + --> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <style type="text/css"> + /* For viewing in Page Designer */ + @IMPORT url("../../../../../../javadoc.css"); + + /* For viewing in REST interface */ + @IMPORT url("../htdocs/javadoc.css"); + body { + margin: 20px; + } + </style> + <script> + /* Replace all @code and @link tags. */ + window.onload = function() { + document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1</code>'); + document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3</code>'); + } + </script> +</head> +<body> +<p>Cognos Data Transfer Objects</p> +<script> + function toggle(x) { + var div = x.nextSibling; + while (div != null && div.nodeType != 1) + div = div.nextSibling; + if (div != null) { + var d = div.style.display; + if (d == 'block' || d == '') { + div.style.display = 'none'; + x.className += " closed"; + } else { + div.style.display = 'block'; + x.className = x.className.replace(/(?:^|\s)closed(?!\S)/g , '' ); + } + } + } +</script> +<a id='TOC'></a><h5 class='toc'>Table of Contents</h5> +<ol class='toc'> + <li><p><a class='doclink' href='#CognosSerializer'>Cognos serialization support</a></p> + <li><p><a class='doclink' href='#CognosParser'>Cognos parsing support</a></p> +</ol> + +<!-- ======================================================================================================== --> +<a id="CognosSerializer"></a> +<h2 class='topic' onclick='toggle(this)'>1 - Cognos serialization support</h2> +<div class='topic'> + <p> + The {@link org.apache.juneau.dto.cognos.DataSet} class is a DTO used to convert POJO models directly to Cognos-XML. + </p> + <p> + Because of the nature of the Cognos XML syntax, only <i>2-dimensional</i> POJO data structures can be serialized to Cognos-XML. + </p> + <p> + For example... + </p> + <ul class='normal'> + <li><code>Collection<Bean></code> + <li><code>Collection<Map></code> + <li>{@code MyBean[]} + <li>{@code HashMap[]} + </ul> + + <h6 class='topic'>Example:</h6> + <p> + The following example shows how to generate Cognos-XML from a POJO. + The example uses the <a class='doclink' href='../../doc-files/AddressBook.html'>AddressBook</a> sample POJO. + It should be noted that since the {@code AddressBook} class is a subclass of {@code LinkedList}, it fulfills + the requirement of being a tabular data structure. + </p> + <p class='bcode'> + <jc>// Create our POJO with some entries.</jc> + AddressBook addressBook = <jk>new</jk> AddressBook(); + addressBook.add( + <jk>new</jk> Person(<js>"Barack Obama"</js>, <js>"Aug 4, 1961"</js>, + <jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>), + <jk>new</jk> Address(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>) + ) + ); + addressBook.add( + <jk>new</jk> Person(<js>"George Walker Bush"</js>, <js>"Jul 6, 1946"</js>, + <jk>new</jk> Address(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>), + <jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>) + ) + ); + + <jc>// Define the Cognos metadata</jc> + Column[] items = { + <jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255), + <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>), + <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>) + .addPojoSwap( + <jk>new</jk> PojoSwap<Person,Integer>() { + <ja>@Override</ja> + <jk>public</jk> Integer swap(BeanSession session, Person p) { + <jk>return</jk> p.<jf>addresses</jf>.size(); + } + } + ) + }; + + <jc>// Create the Cognos DataSet object</jc> + DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>); + + <jc>// Serialize it to XML</jc> + String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds); + </p> + <p> + When run, this code produces the following XML... + </p> + <p class='bcode'> + <xt><?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?></xt> + <xt><c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>></xt> + <xt><c:metadata></xt> + <xt><c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs><xt>/></xt> + <xt><c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt> + <xt><c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt> + <xt></c:metadata></xt> + <xt><c:data></xt> + <xt><c:row></xt> + <xt><c:value></xt>Barack Obama<xt></c:value></xt> + <xt><c:value></xt>52<xt></c:value></xt> + <xt><c:value></xt>2<xt></c:value></xt> + <xt></c:row></xt> + <xt><c:row></xt> + <xt><c:value></xt>George Walker Bush<xt></c:value></xt> + <xt><c:value></xt>67<xt></c:value></xt> + <xt><c:value></xt>2<xt></c:value></xt> + <xt></c:row></xt> + <xt></c:data></xt> + <xt></c:dataset></xt> + </p> + + <h6 class='topic'>Other data formats</h6> + <p> + The following shows examples of what this data structure looks like when serialized to other formats: + </p> + + <h6 class='figure'>HTML</h6> + <img class='bordered' src='doc-files/HTML.png'> + + <h6 class='figure'>JSON</h6> + <img class='bordered' src='doc-files/JSON.png'> + + <h6 class='figure'>RDF/XML</h6> + <img class='bordered' src='doc-files/RDFXML.png'> +</div> + +<!-- ======================================================================================================== --> +<a id="CognosParser"></a> +<h2 class='topic' onclick='toggle(this)'>2 - Cognos parsing support</h2> +<div class='topic'> + <p> + The {@link org.apache.juneau.dto.cognos.DataSet} class can be reconstructed from Cognos/XML using one of the standard XML parsers. + </p> + + <h6 class='topic'>Example:</h6> + <p class='bcode'> + <jc>// Parse XML back into original DataSet</jc> + DataSet ds = XmlParser.<jsf>DEFAULT</jsf>.parse(xml, DataSet.<jk>class</jk>); + </p> +</div> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java new file mode 100644 index 0000000..5138fcc --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/A.java @@ -0,0 +1,169 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import java.net.*; +import java.net.URI; + +import org.apache.juneau.*; +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element"><a></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="a") +public class A extends HtmlElementMixed { + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-download">download</a> attribute. + * + * <p> + * Whether to download the resource instead of navigating to it, and its file name if so. + * + * @param download + * The new value for this attribute. + * Typically a {@link Boolean} or {@link String}. + * @return This object (for method chaining). + */ + public final A download(Object download) { + attr("download", download); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-href">href</a> attribute. + * + * <p> + * Address of the hyperlink. + * + * <p> + * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}. + * Strings must be valid URIs. + * + * <p> + * URIs defined by {@link UriResolver} can be used for values. + * + * @param href + * The new value for this attribute. + * Typically a {@link URL} or {@link String}. + * @return This object (for method chaining). + */ + public final A href(Object href) { + attrUri("href", href); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-hreflang">hreflang</a> attribute. + * + * <p> + * Language of the linked resource. + * + * @param hreflang The new value for this attribute. + * @return This object (for method chaining). + */ + public final A hreflang(String hreflang) { + attr("hreflang", hreflang); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-rel">rel</a> attribute. + * + * <p> + * Relationship between the document containing the hyperlink and the destination resource. + * + * @param rel The new value for this attribute. + * @return This object (for method chaining). + */ + public final A rel(String rel) { + attr("rel", rel); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-target">target</a> attribute. + * + * <p> + * Default browsing context for hyperlink navigation and form submission. + * + * @param target The new value for this attribute. + * @return This object (for method chaining). + */ + public final A target(String target) { + attr("target", target); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-type">type</a> attribute. + * + * <p> + * Hint for the type of the referenced resource. + * + * @param type The new value for this attribute. + * @return This object (for method chaining). + */ + public final A type(String type) { + attr("type", type); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final A _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final A id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final A style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public A children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public A child(Object child) { + super.child(child); + return this; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java new file mode 100644 index 0000000..0e2c075 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Abbr.java @@ -0,0 +1,75 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-abbr-element"><abbr></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="abbr") +public class Abbr extends HtmlElementMixed { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Abbr _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Abbr id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Abbr style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElement */ + public final Abbr title(String title) { + super.title(title); + return this; + } + + @Override /* HtmlElementMixed */ + public Abbr children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Abbr child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java new file mode 100644 index 0000000..cd60484 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Address.java @@ -0,0 +1,69 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-address-element"><address></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="address") +public class Address extends HtmlElementMixed { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Address _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Address id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Address style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public Address children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Address child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java new file mode 100644 index 0000000..97a4463 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Area.java @@ -0,0 +1,200 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import java.net.*; +import java.net.URI; + +import org.apache.juneau.*; +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#the-area-element"><area></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="area") +public class Area extends HtmlElementVoid { + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-area-alt">alt</a> attribute. + * + * <p> + * Replacement text for use when images are not available. + * + * @param alt The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area alt(String alt) { + attr("alt", alt); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-area-coords">coords</a> + * attribute. + * + * <p> + * Coordinates for the shape to be created in an image map. + * + * @param coords The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area coords(String coords) { + attr("coords", coords); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-download">download</a> attribute. + * + * <p> + * Whether to download the resource instead of navigating to it, and its file name if so. + * + * @param download + * The new value for this attribute. + * Typically a {@link Boolean} or {@link String}. + * @return This object (for method chaining). + */ + public final Area download(Object download) { + attr("download", download); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-href">href</a> attribute. + * + * <p> + * Address of the hyperlink. + * + * <p> + * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}. + * Strings must be valid URIs. + * + * <p> + * URIs defined by {@link UriResolver} can be used for values. + * + * @param href + * The new value for this attribute. + * Typically a {@link URL} or {@link String}. + * @return This object (for method chaining). + */ + public final Area href(Object href) { + attrUri("href", href); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-hreflang">hreflang</a> attribute. + * + * <p> + * Language of the linked resource. + * + * @param hreflang The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area hreflang(String hreflang) { + attr("hreflang", hreflang); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-rel">rel</a> attribute. + * + * <p> + * Relationship between the document containing the hyperlink and the destination resource. + * + * @param rel The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area rel(String rel) { + attr("rel", rel); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-area-shape">shape</a> attribute. + * + * <p> + * The kind of shape to be created in an image map. + * + * @param shape The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area shape(String shape) { + attr("shape", shape); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-target">target</a> attribute. + * + * <p> + * Browsing context for hyperlink navigation. + * + * @param target The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area target(String target) { + attr("target", target); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/links.html#attr-hyperlink-type">type</a> attribute. + * + * <p> + * Hint for the type of the referenced resource. + * + * @param type The new value for this attribute. + * @return This object (for method chaining). + */ + public final Area type(String type) { + attr("type", type); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Area _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Area id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Area style(String style) { + super.style(style); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java new file mode 100644 index 0000000..519e4b0 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Article.java @@ -0,0 +1,114 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-article-element"><article></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="article") +public class Article extends HtmlElementMixed { + + /** + * Adds a header node to this element. + * + * @param children The children inside the header node. + * @return This object (for method chaining). + */ + public Article header(Object...children) { + super.child(HtmlBuilder.header(children)); + return this; + } + + /** + * Adds a footer node to this element. + * + * @param children The children inside the footer node. + * @return This object (for method chaining). + */ + public Article footer(Object...children) { + super.child(HtmlBuilder.footer(children)); + return this; + } + + /** + * Adds a link node to this element. + * + * @param link The link node to add to this article. + * @return This object (for method chaining). + */ + public Article link(Link link) { + super.child(link); + return this; + } + + /** + * Adds a section node to this element. + * + * @param section The section node to add to this article. + * @return This object (for method chaining). + */ + public Article section(Section section) { + super.child(section); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Article _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Article id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Article style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public Article children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Article child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java new file mode 100644 index 0000000..ca5cf08 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Aside.java @@ -0,0 +1,69 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-aside-element"><aside></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="aside") +public class Aside extends HtmlElementMixed { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Aside _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Aside id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Aside style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public Aside children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Aside child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java new file mode 100644 index 0000000..1acd391 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Audio.java @@ -0,0 +1,209 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import java.net.*; +import java.net.URI; + +import org.apache.juneau.*; +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#the-audio-element"><audio></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="audio") +public class Audio extends HtmlElementContainer { + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-autoplay">autoplay</a> + * attribute. + * + * <p> + * Hint that the media resource can be started automatically when the page is loaded. + * + * @param autoplay + * The new value for this attribute. + * Typically a {@link Boolean} or {@link String}. + * @return This object (for method chaining). + */ + public final Audio autoplay(Object autoplay) { + attr("autoplay", autoplay); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-controls">controls</a> + * attribute. + * + * <p> + * Show user agent controls. + * + * @param controls + * The new value for this attribute. + * Typically a {@link Boolean} or {@link String}. + * @return This object (for method chaining). + */ + public final Audio controls(Object controls) { + attr("controls", controls); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-crossorigin">crossorigin</a> + * attribute. + * + * <p> + * How the element handles cross-origin requests. + * + * @param crossorigin The new value for this attribute. + * @return This object (for method chaining). + */ + public final Audio crossorigin(String crossorigin) { + attr("crossorigin", crossorigin); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-loop">loop</a> attribute. + * + * <p> + * Whether to loop the media resource. + * + * @param loop + * The new value for this attribute. + * Typically a {@link Boolean} or {@link String}. + * @return This object (for method chaining). + */ + public final Audio loop(Object loop) { + attr("loop", loop); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-mediagroup">mediagroup</a> + * attribute. + * + * <p> + * Groups media elements together with an implicit MediaController. + * + * @param mediagroup The new value for this attribute. + * @return This object (for method chaining). + */ + public final Audio mediagroup(String mediagroup) { + attr("mediagroup", mediagroup); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-muted">muted</a> + * attribute. + * + * <p> + * Whether to mute the media resource by default. + * + * @param muted + * The new value for this attribute. + * Typically a {@link Boolean} or {@link String}. + * @return This object (for method chaining). + */ + public final Audio muted(Object muted) { + attr("muted", muted); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-preload">preload</a> + * attribute. + * + * <p> + * Hints how much buffering the media resource will likely need. + * + * @param preload The new value for this attribute. + * @return This object (for method chaining). + */ + public final Audio preload(Object preload) { + attr("preload", preload); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-src">src</a> attribute. + * + * <p> + * Address of the resource. + * + * <p> + * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}. + * Strings must be valid URIs. + * + * <p> + * URIs defined by {@link UriResolver} can be used for values. + * + * @param src + * The new value for this attribute. + * Typically a {@link URL} or {@link String}. + * @return This object (for method chaining). + */ + public final Audio src(Object src) { + attrUri("src", src); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Audio _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Audio id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Audio style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementContainer */ + public final Audio children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementContainer */ + public final Audio child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java new file mode 100644 index 0000000..d4beaba --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/B.java @@ -0,0 +1,69 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-b-element"><b></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="b") +public class B extends HtmlElementMixed { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final B _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final B id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final B style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public B children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public B child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java new file mode 100644 index 0000000..253be94 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Base.java @@ -0,0 +1,100 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import java.net.*; +import java.net.URI; + +import org.apache.juneau.*; +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/document-metadata.html#the-base-element"><base></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="base") +public class Base extends HtmlElementVoid { + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/document-metadata.html#attr-base-href">href</a> attribute. + * + * <p> + * Document base URL. + * + * <p> + * The value can be of any of the following types: {@link URI}, {@link URL}, {@link String}. + * Strings must be valid URIs. + * + * <p> + * URIs defined by {@link UriResolver} can be used for values. + * + * @param href + * The new value for this attribute. + * Typically a {@link URL} or {@link String}. + * @return This object (for method chaining). + */ + public final Base href(Object href) { + attrUri("href", href); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/document-metadata.html#attr-base-target">target</a> + * attribute. + * + * <p> + * Default browsing context for hyperlink navigation and form submission. + * + * @param target The new value for this attribute. + * @return This object (for method chaining). + */ + public final Base target(String target) { + attr("target", target); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Base _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Base id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Base style(String style) { + super.style(style); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java new file mode 100644 index 0000000..bba51e5 --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdi.java @@ -0,0 +1,63 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-bdi-element"><bdi></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="bdi") +public class Bdi extends HtmlElementText { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Bdi _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Bdi id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Bdi style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementText */ + public Bdi text(Object text) { + super.text(text); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java new file mode 100644 index 0000000..b8c6acf --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Bdo.java @@ -0,0 +1,75 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-bdo-element"><bdo></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="bdo") +public class Bdo extends HtmlElementMixed { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Bdo _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public Bdo dir(String dir) { + super.dir(dir); + return this; + } + + @Override /* HtmlElement */ + public final Bdo id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Bdo style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public Bdo children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Bdo child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java new file mode 100644 index 0000000..bcaa2db --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Blockquote.java @@ -0,0 +1,85 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#the-blockquote-element"><blockquote></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="blockquote") +public class Blockquote extends HtmlElementMixed { + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#attr-blockquote-cite">cite</a> + * attribute. + * + * <p> + * Link to the source of the quotation. + * + * @param cite The new value for this attribute. + * @return This object (for method chaining). + */ + public final Blockquote cite(String cite) { + attr("cite", cite); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Blockquote _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Blockquote id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Blockquote style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public Blockquote children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Blockquote child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java new file mode 100644 index 0000000..8bd8b3f --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Body.java @@ -0,0 +1,142 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-body-element"><body></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="body") +public class Body extends HtmlElementMixed { + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onafterprint">onafterprint</a> + * attribute. + * + * @param onafterprint The new value for this attribute. + * @return This object (for method chaining). + */ + public final Body onafterprint(String onafterprint) { + attr("onafterprint", onafterprint); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onbeforeunload">onbeforeunload</a> + * attribute. + * + * @param onbeforeunload The new value for this attribute. + * @return This object (for method chaining). + */ + public final Body onbeforeunload(String onbeforeunload) { + attr("onbeforeunload", onbeforeunload); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onmessage">onmessage</a> + * attribute. + * + * @param onmessage The new value for this attribute. + * @return This object (for method chaining). + */ + public final Body onmessage(String onmessage) { + attr("onmessage", onmessage); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-ononline">ononline</a> + * attribute. + * + * @param ononline The new value for this attribute. + * @return This object (for method chaining). + */ + public final Body ononline(String ononline) { + attr("ononline", ononline); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onpageshow">onpageshow</a> + * attribute. + * + * @param onpageshow The new value for this attribute. + * @return This object (for method chaining). + */ + public final Body onpageshow(String onpageshow) { + attr("onpageshow", onpageshow); + return this; + } + + /** + * <a class="doclink" href="https://www.w3.org/TR/html5/webappapis.html#handler-window-onstorage">onstorage</a> + * attribute. + * + * @param onstorage The new value for this attribute. + * @return This object (for method chaining). + */ + public final Body onstorage(String onstorage) { + attr("onstorage", onstorage); + return this; + } + + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Body _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Body id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Body style(String style) { + super.style(style); + return this; + } + + @Override /* HtmlElementMixed */ + public Body children(Object...children) { + super.children(children); + return this; + } + + @Override /* HtmlElementMixed */ + public Body child(Object child) { + super.child(child); + return this; + } +} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java new file mode 100644 index 0000000..e7eba5e --- /dev/null +++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Br.java @@ -0,0 +1,57 @@ +// *************************************************************************************************************************** +// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * +// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * +// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * +// * with the License. You may obtain a copy of the License at * +// * * +// * http://www.apache.org/licenses/LICENSE-2.0 * +// * * +// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * +// * specific language governing permissions and limitations under the License. * +// *************************************************************************************************************************** +package org.apache.juneau.dto.html5; + +import org.apache.juneau.annotation.*; + +/** + * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/text-level-semantics.html#the-br-element"><br></a> + * element. + * + * <h6 class='topic'>Additional Information</h6> + * <ul class='doctree'> + * <li class='link'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs'>Juneau Data Transfer Objects + * (org.apache.juneau.dto)</a> + * <ul> + * <li class='sublink'> + * <a class='doclink' href='../../../../../overview-summary.html#DTOs.HTML5'>HTML5</a> + * </ul> + * </li> + * </ul> + */ +@Bean(typeName="br") +public class Br extends HtmlElementVoid { + + //-------------------------------------------------------------------------------- + // Overridden methods + //-------------------------------------------------------------------------------- + + @Override /* HtmlElement */ + public final Br _class(String _class) { + super._class(_class); + return this; + } + + @Override /* HtmlElement */ + public final Br id(String id) { + super.id(id); + return this; + } + + @Override /* HtmlElement */ + public final Br style(String style) { + super.style(style); + return this; + } +}
