KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > go > beandoc > teadoc > Doc


1 /* ====================================================================
2  * BeanDoc - Copyright (c) 1997-2000 GO.com
3  * ====================================================================
4  * The Tea Software License, Version 1.0
5  *
6  * Copyright (c) 2000 GO.com. All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by GO.com
23  * (http://opensource.go.com/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Tea", "TeaServlet", "Kettle", "Trove", BeanDoc and "GO.com"
28  * must not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact opensource@go.com.
31  *
32  * 5. Products derived from this software may not be called "Tea",
33  * "TeaServlet", "Kettle", "Trove" or BeanDoc, nor may "Tea", "TeaServlet",
34  * "Kettle", "Trove" or BeanDoc appear in their name, without prior written
35  * permission of GO.com.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL GO.COM OR ITS CONTRIBUTORS BE LIABLE
41  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
42  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
43  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
44  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
45  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
46  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
47  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48  * ====================================================================
49  *
50  * For more information about Tea, please see http://opensource.go.com/.
51  */

52
53 package com.go.beandoc.teadoc;
54
55 import java.util.StringTokenizer JavaDoc;
56 import java.util.ArrayList JavaDoc;
57
58 /******************************************************************************
59  *
60  * @author Brian S O'Neill
61  * @version
62  * <!--$$Revision:--> 6 <!-- $-->, <!--$$JustDate:--> 8/23/00 <!-- $-->
63  */

64 public class Doc implements java.io.Serializable JavaDoc, Comparable JavaDoc {
65
66     protected RootDoc mRootDoc;
67
68     private com.sun.javadoc.Doc mDoc;
69     private String JavaDoc[] mPath;
70
71     public Doc(RootDoc root, com.sun.javadoc.Doc doc) {
72         mRootDoc = root;
73         mDoc = doc;
74     }
75
76     protected String JavaDoc[] parseName(String JavaDoc name) {
77         ArrayList JavaDoc list = new ArrayList JavaDoc();
78         StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(name, ".");
79         while (st.hasMoreElements()) {
80             list.add(st.nextElement());
81         }
82
83         return (String JavaDoc[])list.toArray(new String JavaDoc[list.size()]);
84     }
85
86     public com.sun.javadoc.Doc getInnerDoc() {
87         return mDoc;
88     }
89
90     public RootDoc getRootDoc() {
91         return mRootDoc;
92     }
93
94     public String JavaDoc getCommentText() {
95
96         String JavaDoc commentText = mDoc.commentText();
97         if (commentText != null && commentText.trim().length() > 0) {
98             return commentText;
99         }
100
101         return null;
102     }
103
104     /**
105      * Checks to see if the specified tag exists
106      */

107     public boolean isTagPresent(String JavaDoc tagName) {
108
109         Tag[] tags = getTagMap().get(tagName);
110         return (tags != null && tags.length > 0);
111     }
112
113
114     /**
115      * Gets the text value of the first tag in doc that matches tagName
116      */

117     public String JavaDoc getTagValue(String JavaDoc tagName) {
118
119         Tag[] tags = getTagMap().get(tagName);
120         if (tags == null || tags.length == 0) {
121             return null;
122         }
123         
124         return tags[tags.length - 1].getText();
125     }
126
127     public Tag[] getTags() {
128         return Tag.convert(mRootDoc, mDoc.tags());
129     }
130
131     public TagMap getTagMap() {
132         return new TagMap();
133     }
134
135     public SeeTag[] getSeeTags() {
136         return SeeTag.convert(mRootDoc, mDoc.seeTags());
137     }
138
139     public Tag[] getInlineTags() {
140         return Tag.convert(mRootDoc, mDoc.inlineTags());
141     }
142
143     public Tag[] getFirstSentenceTags() {
144         return Tag.convert(mRootDoc, mDoc.firstSentenceTags());
145     }
146
147     public String JavaDoc getRawCommentText() {
148         return mDoc.getRawCommentText();
149     }
150
151     public String JavaDoc getName() {
152         return mDoc.name();
153     }
154
155     public String JavaDoc[] getPath() {
156         if (mPath == null) {
157             mPath = parseName(getName());
158         }
159
160         return mPath;
161     }
162
163     public int compareTo(Object JavaDoc obj) {
164         if (obj instanceof Doc) {
165             return mDoc.compareTo(((Doc)obj).mDoc);
166         }
167         else {
168             return 0;
169         }
170     }
171
172     public boolean isField() {
173         return mDoc.isField();
174     }
175
176     public boolean isMethod() {
177         return mDoc.isMethod();
178     }
179
180     public boolean isConstructor() {
181         return mDoc.isConstructor();
182     }
183
184     public boolean isInterface() {
185         return mDoc.isInterface();
186     }
187
188     public boolean isException() {
189         return mDoc.isException();
190     }
191
192     public boolean isError() {
193         return mDoc.isError();
194     }
195
196     public boolean isOrdinaryClass() {
197         return mDoc.isOrdinaryClass();
198     }
199
200     public boolean isClass() {
201         return mDoc.isClass();
202     }
203
204     public boolean isIncluded() {
205         return mDoc.isIncluded();
206     }
207
208     public boolean equals(Object JavaDoc obj) {
209         return obj instanceof Doc && mDoc.equals(((Doc)obj).mDoc);
210     }
211
212     public class TagMap {
213
214         public TagMap() {
215         }
216
217         public Tag[] get(String JavaDoc tagName) {
218             return Tag.convert(mRootDoc, mDoc.tags(tagName));
219         }
220
221     }
222
223 }
224
Popular Tags