001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.juneau.bean.html5; 018 019import org.apache.juneau.marshall.*; 020 021/** 022 * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/sections.html#the-footer-element"><footer></a> 023 * element. 024 * 025 * <p> 026 * The footer element represents a footer for its nearest ancestor sectioning content or sectioning 027 * root element. It is used to provide information about the section it belongs to, such as author 028 * information, copyright notices, links to related documents, or other metadata. The footer element 029 * can contain any flow content and is typically used at the bottom of a page, article, or section. 030 * 031 * <h5 class='section'>Examples:</h5> 032 * <p class='bcode w800'> 033 * <jk>import static</jk> org.apache.juneau.bean.html5.HtmlBuilder.*; 034 * 035 * <jc>// Simple page footer</jc> 036 * Footer <jv>simple</jv> = <jsm>footer</jsm>(<js>"© 2024 My Company. All rights reserved."</js>); 037 * 038 * <jc>// Footer with multiple elements</jc> 039 * Footer <jv>complex</jv> = <jsm>footer</jsm>( 040 * <jsm>p</jsm>(<js>"© 2024 My Company. All rights reserved."</js>), 041 * <jsm>p</jsm>( 042 * <js>"Contact: "</js>, 043 * <jsm>a</jsm>(<js>"mailto:info@company.com"</js>, <js>"info@company.com"</js>) 044 * ) 045 * ); 046 * 047 * <jc>// Footer with styling</jc> 048 * Footer <jv>styled</jv> = <jsm>footer</jsm>( 049 * <jsm>p</jsm>(<js>"© 2024 My Company"</js>), 050 * <jsm>p</jsm>(<js>"Privacy Policy | Terms of Service"</js>) 051 * ).class_(<js>"page-footer"</js>); 052 * 053 * <jc>// Footer with navigation</jc> 054 * Footer <jv>withNav</jv> = <jsm>footer</jsm>( 055 * <jsm>nav</jsm>( 056 * <jsm>ul</jsm>( 057 * <jsm>li</jsm>(<jsm>a</jsm>(<js>"/about"</js>, <js>"About"</js>)), 058 * <jsm>li</jsm>(<jsm>a</jsm>(<js>"/contact"</js>, <js>"Contact"</js>)), 059 * <jsm>li</jsm>(<jsm>a</jsm>(<js>"/help"</js>, <js>"Help"</js>)) 060 * ) 061 * ), 062 * <jsm>p</jsm>(<js>"© 2024 My Company"</js>) 063 * ); 064 * 065 * <jc>// Footer with ID</jc> 066 * Footer <jv>withId</jv> = <jsm>footer</jsm>( 067 * <jsm>p</jsm>(<js>"© 2024 My Company. All rights reserved."</js>), 068 * <jsm>address</jsm>(<js>"123 Main St, City, State 12345"</js>) 069 * ).id(<js>"main-footer"</js>); 070 * 071 * <jc>// Footer with styling</jc> 072 * Footer <jv>styled2</jv> = <jsm>footer</jsm>( 073 * <jsm>p</jsm>(<js>"© 2024 My Company"</js>), 074 * <jsm>p</jsm>(<js>"Built with ❤️ using modern web technologies"</js>) 075 * ).style(<js>"background-color: #f0f0f0; padding: 20px; text-align: center;"</js>); 076 * 077 * <jc>// Footer with multiple sections</jc> 078 * Footer <jv>multiSection</jv> = <jsm>footer</jsm>( 079 * <jsm>div</jsm>( 080 * <jsm>p</jsm>(<js>"© 2024 My Company"</js>), 081 * <jsm>p</jsm>(<js>"Privacy Policy | Terms of Service"</js>) 082 * ).class_(<js>"footer-content"</js>), 083 * <jsm>div</jsm>( 084 * <jsm>a</jsm>(<js>"/about"</js>, <js>"About"</js>), 085 * <jsm>a</jsm>(<js>"/contact"</js>, <js>"Contact"</js>) 086 * ).class_(<js>"footer-links"</js>) 087 * ); 088 * </p> 089 * 090 * <p> 091 * The following convenience methods are provided for constructing instances of this bean: 092 * <ul class='javatree'> 093 * <li class='jc'>{@link HtmlBuilder} 094 * <ul class='javatree'> 095 * <li class='jm'>{@link HtmlBuilder#footer() footer()} 096 * <li class='jm'>{@link HtmlBuilder#footer(Object...) footer(Object...)} 097 * </ul> 098 * </ul> 099 * </p> 100 * 101 * <h5 class='section'>See Also:</h5><ul> 102 * <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauBeanHtml5">juneau-bean-html5</a> 103 * </ul> 104 */ 105@Marshalled(typeName = "footer") 106public class Footer extends HtmlElementMixed<Footer> { 107 108 /** 109 * Creates an empty {@link Footer} element. 110 */ 111 public Footer() {} 112 113 /** 114 * Creates a {@link Footer} element with the specified child nodes. 115 * 116 * @param children The child nodes. 117 */ 118 public Footer(Object...children) { 119 children(children); 120 } 121 122}