bpatel@766: /* bpatel@766: * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. bpatel@766: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. bpatel@766: * bpatel@766: * This code is free software; you can redistribute it and/or modify it bpatel@766: * under the terms of the GNU General Public License version 2 only, as bpatel@766: * published by the Free Software Foundation. Oracle designates this bpatel@766: * particular file as subject to the "Classpath" exception as provided bpatel@766: * by Oracle in the LICENSE file that accompanied this code. bpatel@766: * bpatel@766: * This code is distributed in the hope that it will be useful, but WITHOUT bpatel@766: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or bpatel@766: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License bpatel@766: * version 2 for more details (a copy is included in the LICENSE file that bpatel@766: * accompanied this code). bpatel@766: * bpatel@766: * You should have received a copy of the GNU General Public License version bpatel@766: * 2 along with this work; if not, write to the Free Software Foundation, bpatel@766: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. bpatel@766: * bpatel@766: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA bpatel@766: * or visit www.oracle.com if you need additional information or have any bpatel@766: * questions. bpatel@766: */ bpatel@766: bpatel@766: package com.sun.tools.doclets.formats.html.markup; bpatel@766: bpatel@766: import java.util.*; bpatel@766: import com.sun.tools.doclets.internal.toolkit.Content; bpatel@766: import com.sun.tools.doclets.internal.toolkit.util.*; bpatel@766: bpatel@766: /** bpatel@766: * Class for generating an HTML document for javadoc output. bpatel@766: * bpatel@766: * @author Bhavesh Patel bpatel@766: */ bpatel@766: public class HtmlDocument extends Content { bpatel@766: bpatel@766: private List docContent = Collections.emptyList(); bpatel@766: bpatel@766: /** bpatel@766: * Constructor to construct an HTML document. bpatel@766: * bpatel@766: * @param docType document type for the HTML document bpatel@766: * @param docComment comment for the document bpatel@766: * @param htmlTree HTML tree of the document bpatel@766: */ bpatel@766: public HtmlDocument(Content docType, Content docComment, Content htmlTree) { bpatel@766: docContent = new ArrayList(); bpatel@766: addContent(nullCheck(docType)); bpatel@766: addContent(nullCheck(docComment)); bpatel@766: addContent(nullCheck(htmlTree)); bpatel@766: } bpatel@766: bpatel@766: /** bpatel@766: * Constructor to construct an HTML document. bpatel@766: * bpatel@766: * @param docType document type for the HTML document bpatel@766: * @param htmlTree HTML tree of the document bpatel@766: */ bpatel@766: public HtmlDocument(Content docType, Content htmlTree) { bpatel@766: docContent = new ArrayList(); bpatel@766: addContent(nullCheck(docType)); bpatel@766: addContent(nullCheck(htmlTree)); bpatel@766: } bpatel@766: bpatel@766: /** bpatel@766: * Adds content for the HTML document. bpatel@766: * bpatel@766: * @param htmlContent html content to be added bpatel@766: */ bpatel@766: public void addContent(Content htmlContent) { bpatel@766: if (htmlContent.isValid()) bpatel@766: docContent.add(htmlContent); bpatel@766: } bpatel@766: bpatel@766: /** bpatel@766: * This method is not supported by the class. bpatel@766: * bpatel@766: * @param stringContent string content that needs to be added bpatel@766: * @throws DocletAbortException this method will always throw a bpatel@766: * DocletAbortException because it bpatel@766: * is not supported. bpatel@766: */ bpatel@766: public void addContent(String stringContent) { bpatel@766: throw new DocletAbortException(); bpatel@766: } bpatel@766: bpatel@766: /** bpatel@766: * {@inheritDoc} bpatel@766: */ bpatel@766: public boolean isEmpty() { bpatel@766: return (docContent.isEmpty()); bpatel@766: } bpatel@766: bpatel@766: /** bpatel@766: * {@inheritDoc} bpatel@766: */ bpatel@766: public void write(StringBuilder contentBuilder) { bpatel@766: for (Content c : docContent) bpatel@766: c.write(contentBuilder); bpatel@766: } bpatel@766: }