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/text-level-semantics.html#the-cite-element">&lt;cite&gt;</a>
023 * element.
024 *
025 * <p>
026 * The cite element represents the title of a work (e.g., a book, a paper, an essay, a poem, a score,
027 * a song, a script, a film, a TV show, a game, a sculpture, a painting, a theatre production, a play,
028 * an opera, a musical, an exhibition, a legal case report, a computer program, a web site, a web page,
029 * a blog post or comment, a forum post or comment, a tweet, a written or oral statement, etc.). It is
030 * used to mark up the title of a referenced work, making it clear to both users and search engines
031 * what is being cited.
032 *
033 * <h5 class='section'>Examples:</h5>
034 * <p class='bcode w800'>
035 *    <jk>import static</jk> org.apache.juneau.bean.html5.HtmlBuilder.*;
036 *
037 *    <jc>// Simple citation</jc>
038 *    Cite <jv>simple</jv> = <jsm>cite</jsm>(<js>"The Great Gatsby"</js>);
039 *
040 *    <jc>// Citation with styling</jc>
041 *    Cite <jv>styled</jv> = <jsm>cite</jsm>(<js>"To Kill a Mockingbird"</js>)
042 *       .class_(<js>"book-title"</js>);
043 *
044 *    <jc>// Citation in a sentence</jc>
045 *    P <jv>sentence</jv> = <jsm>p</jsm>(
046 *       <js>"As mentioned in "</js>,
047 *       <jsm>cite</jsm>(<js>"The Art of War"</js>),
048 *       <js>", strategy is key to success."</js>
049 *    );
050 *
051 *    <jc>// Citation with link</jc>
052 *    Cite <jv>withLink</jv> = <jsm>cite</jsm>(
053 *       <jsm>a</jsm>(<js>"/books/1984"</js>, <js>"1984"</js>)
054 *    );
055 *
056 *    <jc>// Multiple citations</jc>
057 *    P <jv>multiple</jv> = <jsm>p</jsm>(
058 *       <js>"Several works discuss this topic: "</js>,
059 *       <jsm>cite</jsm>(<js>"Book A"</js>),
060 *       <js>", "</js>,
061 *       <jsm>cite</jsm>(<js>"Book B"</js>),
062 *       <js>", and "</js>,
063 *       <jsm>cite</jsm>(<js>"Book C"</js>),
064 *       <js>"."</js>
065 *    );
066 *
067 *    <jc>// Citation with author</jc>
068 *    P <jv>withAuthor</jv> = <jsm>p</jsm>(
069 *       <js>"According to "</js>,
070 *       <jsm>strong</jsm>(<js>"John Doe"</js>),
071 *       <js>" in "</js>,
072 *       <jsm>cite</jsm>(<js>"The Future of Technology"</js>),
073 *       <js>", we are entering a new era."</js>
074 *    );
075 * </p>
076 *
077 * <p>
078 * The following convenience methods are provided for constructing instances of this bean:
079 * <ul class='javatree'>
080 *    <li class='jc'>{@link HtmlBuilder}
081 *    <ul class='javatree'>
082 *       <li class='jm'>{@link HtmlBuilder#cite() cite()}
083 *       <li class='jm'>{@link HtmlBuilder#cite(Object...) cite(Object...)}
084 *    </ul>
085 * </ul>
086 * </p>
087 *
088 * <h5 class='section'>See Also:</h5><ul>
089 *    <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauBeanHtml5">juneau-bean-html5</a>
090 * </ul>
091 */
092@Marshalled(typeName = "cite")
093public class Cite extends HtmlElementMixed<Cite> {
094
095   /**
096    * Creates an empty {@link Cite} element.
097    */
098   public Cite() {}
099
100   /**
101    * Creates a {@link Cite} element with the specified child nodes.
102    *
103    * @param children The child nodes.
104    */
105   public Cite(Object...children) {
106      children(children);
107   }
108
109}