OSDN Git Service

Add NIOS2 support. Code from SourceyG++.
[pf3gnuchains/gcc-fork.git] / libjava / classpath / tools / gnu / classpath / tools / taglets / ValueTaglet.java
1 /* gnu.classpath.tools.taglets.ValueTaglet
2    Copyright (C) 2004 Free Software Foundation, Inc.
3
4 This file is part of GNU Classpath.
5
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10  
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING.  If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA. */
20
21 package gnu.classpath.tools.taglets;
22
23 import java.util.Map;
24
25 import com.sun.tools.doclets.Taglet;
26
27 import com.sun.javadoc.Doc;
28 import com.sun.javadoc.Tag;
29 import com.sun.javadoc.FieldDoc;
30 import com.sun.javadoc.MemberDoc;
31 import com.sun.javadoc.SeeTag;
32
33 /**
34  *  The default Taglet which shows final static field values.
35  *
36  *  @author Julian Scheid (julian@sektor37.de)
37  */
38 public class ValueTaglet 
39    implements GnuExtendedTaglet
40 {
41    private static final String NAME = "value";
42
43    public String getName() {
44       return NAME;
45    }
46     
47    public boolean inField() {
48       return true;
49    }
50
51    public boolean inConstructor() {
52       return true;
53    }
54     
55    public boolean inMethod() {
56       return true;
57    }
58    
59    public boolean inOverview() {
60       return true;
61    }
62
63    public boolean inPackage() {
64       return true;
65    }
66
67    public boolean inType() {
68       return true;
69    }
70     
71    public boolean isInlineTag() {
72       return true;
73    }    
74
75    public static void register(Map tagletMap) {
76       ValueTaglet valueTaglet = new ValueTaglet();
77       tagletMap.put(valueTaglet.getName(), valueTaglet);
78    }
79
80    public String toString(Tag tag) {
81       return null;
82    }
83
84    public String toString(Tag tag, TagletContext context) {
85       if (0 == tag.inlineTags().length) {
86          if (context.getDoc().isField()) {
87             FieldDoc fieldDoc = (FieldDoc)context.getDoc();
88             if (fieldDoc.isStatic() && fieldDoc.isFinal()) {
89                return fieldDoc.constantValueExpression();
90             }
91          }
92       }
93       else {
94          MemberDoc referencedMember = ((SeeTag)tag).referencedMember();
95          if (null != referencedMember && referencedMember.isField()) {
96             FieldDoc fieldDoc = (FieldDoc)referencedMember;
97             if (fieldDoc.isStatic() && fieldDoc.isFinal()) {
98                return fieldDoc.constantValueExpression();
99             }
100          }
101       }
102       return "";
103    }
104
105    public String toString(Tag[] tags) {
106       return null;
107    }
108
109    public String toString(Tag[] tags, TagletContext context) {
110       return null;
111    }
112
113 }