View Javadoc
1   /*
2    * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package com.sun.tools.doclets.internal.toolkit;
27  
28  import java.io.*;
29  import java.util.*;
30  import com.sun.javadoc.*;
31  
32  /**
33   * The interface for writing member summary output.
34   *
35   *  <p><b>This is NOT part of any supported API.
36   *  If you write code that depends on this, you do so at your own risk.
37   *  This code and its internal interfaces are subject to change or
38   *  deletion without notice.</b>
39   *
40   * @author Jamie Ho
41   * @author Bhavesh Patel (Modified)
42   * @since 1.5
43   */
44  
45  public interface MemberSummaryWriter {
46  
47      /**
48       * Get the member summary header for the given class.
49       *
50       * @param classDoc the class the summary belongs to
51       * @param memberSummaryTree the content tree to which the member summary will be added
52       * @return a content tree for the member summary header
53       */
54      public Content getMemberSummaryHeader(ClassDoc classDoc,
55              Content memberSummaryTree);
56  
57      /**
58       * Get the summary table for the given class.
59       *
60       * @param classDoc the class the summary table belongs to
61       * @param tableContents list of contents that will be added to the summary table
62       * @return a content tree for the member summary table
63       */
64      public Content getSummaryTableTree(ClassDoc classDoc,
65              List<Content> tableContents);
66  
67      /**
68       * Add the member summary for the given class and member.
69       *
70       * @param classDoc the class the summary belongs to
71       * @param member the member that is documented
72       * @param firstSentenceTags the tags for the sentence being documented
73       * @param tableContents list of contents to which the summary will be added
74       * @param counter the counter for determining id and style for the table row
75       */
76      public void addMemberSummary(ClassDoc classDoc, ProgramElementDoc member,
77              Tag[] firstSentenceTags, List<Content> tableContents, int counter);
78  
79      /**
80       * Get the inherited member summary header for the given class.
81       *
82       * @param classDoc the class the summary belongs to
83       * @return a content tree containing the inherited summary header
84       */
85      public Content getInheritedSummaryHeader(ClassDoc classDoc);
86  
87      /**
88       * Add the inherited member summary for the given class and member.
89       *
90       * @param classDoc the class the inherited member belongs to
91       * @param member the inherited member that is being documented
92       * @param isFirst true if this is the first member in the list
93       * @param isLast true if this is the last member in the list
94       * @param linksTree the content tree to which the links will be added
95       */
96      public void addInheritedMemberSummary(ClassDoc classDoc,
97          ProgramElementDoc member, boolean isFirst, boolean isLast,
98          Content linksTree);
99  
100     /**
101      * Get inherited summary links.
102      *
103      * @return a content tree conatining the inherited summary links
104      */
105     public Content getInheritedSummaryLinksTree();
106 
107     /**
108      * Get the member tree.
109      *
110      * @param memberTree the content tree representating the member
111      * @return a content tree for the member
112      */
113     public Content getMemberTree(Content memberTree);
114 
115     /**
116      * Close the writer.
117      */
118     public void close() throws IOException;
119 }