All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.unkrig.notemplate.javadocish.templates.AbstractHtml Maven / Gradle / Ivy

Go to download

A super-small Java library for templating, i.e. generating text files (HTML, XML, whatever) from a "template" text file and dynamic data. It is based on the concept that the templates are bare Java classes.

The newest version!

/*
 * No-Template - an extremely light-weight templating framework
 *
 * Copyright (c) 2016, Arno Unkrig
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
 * following conditions are met:
 *
 *    1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
 *       following disclaimer.
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
 *       following disclaimer in the documentation and/or other materials provided with the distribution.
 *    3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
 *       products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

// SUPPRESS CHECKSTYLE Wrap|LineLength:9999

package de.unkrig.notemplate.javadocish.templates;

import java.text.SimpleDateFormat;

import de.unkrig.commons.lang.AssertionUtil;
import de.unkrig.commons.nullanalysis.Nullable;
import de.unkrig.notemplate.HtmlTemplate;
import de.unkrig.notemplate.javadocish.Options;

/**
 * Base class for all "real html pages", i.e. all except the frameset documents and the "package-list".
 */
public abstract
class AbstractHtml extends HtmlTemplate {

    static { AssertionUtil.enableAssertionsForThisClass(); }

    /**
     * @param options         Container for the various command line options
     * @param stylesheetLinks The (optional) external stylesheets for this page
     */
    protected void
    rHtml(
        String             windowTitle,
        Options            options,
        @Nullable String[] stylesheetLinks,
        Runnable           renderBody
    ) {


        this.l(
"",
"",
"",
"  ",
"    ",
"    " + windowTitle + (options.windowTitle == null ? "" : " (" + options.windowTitle + ")") + ""
        );

        // Charset, as controlled by the "-charset" command line option.
        if (options.htmlCharset != null) {
            this.l(
"    "
            );
        }

        // Generation date meta entry.
        if (!options.noTimestamp) {
            this.l(
"    "
            );
        }

        // Include stylesheet.
        if (stylesheetLinks != null) {
            for (String stylesheetLink : stylesheetLinks) {
                this.l(
"    "
                );
            }
        }

        // In contrast with the Java 8 JAVADOC doclet, we do *NOT* include the "script.js" file here, which implements
        // that braindead "All Methods", "Static Methods", "Instance Methods" tab logic.
//      this.l("");

        this.l(
"  ",
"  "
        );
        renderBody.run();
        this.l(
"  ",
""
        );
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy