• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.doclava;
18 
19 import com.google.clearsilver.jsilver.data.Data;
20 
21 import java.util.ArrayList;
22 import java.util.LinkedHashSet;
23 import java.util.Set;
24 
25 public abstract class DocInfo {
DocInfo(String rawCommentText, SourcePositionInfo sp)26   public DocInfo(String rawCommentText, SourcePositionInfo sp) {
27     mRawCommentText = rawCommentText;
28     mPosition = sp;
29   }
30 
31   /**
32    * The relative path to a web page representing this item.
33    */
htmlPage()34   public abstract String htmlPage();
35 
36   /**
37    * @return true if the element has never been a part of public API
38    */
isHidden()39   public boolean isHidden() {
40     return comment().isHidden();
41   }
42 
43   /**
44    * @return true if the element was once a part of public API, now removed.
45    */
isRemoved()46   public boolean isRemoved() {
47     return comment().isRemoved();
48   }
49 
50   /**
51    * Hidden and removed elements should not be appear in api.txt files, nor
52    * should they appear in the java doc.
53    * @return true if the element is either hidden or removed.
54    */
isHiddenOrRemoved()55   public boolean isHiddenOrRemoved() {
56    return isHidden() || isRemoved();
57   }
58 
isDocOnly()59   public boolean isDocOnly() {
60     return comment().isDocOnly();
61   }
62 
getRawCommentText()63   public String getRawCommentText() {
64     return mRawCommentText;
65   }
66 
setRawCommentText(String rawCommentText)67   public void setRawCommentText(String rawCommentText) {
68       mRawCommentText = rawCommentText;
69 
70       // so that if we've created one prior to changing, we recreate it
71       if (mComment != null) {
72           mComment = new Comment(mRawCommentText, parent(), mPosition);
73       }
74 
75   }
76 
comment()77   public Comment comment() {
78     if (mComment == null) {
79       mComment = new Comment(mRawCommentText, parent(), mPosition);
80     }
81     return mComment;
82   }
83 
position()84   public SourcePositionInfo position() {
85     return mPosition;
86   }
87 
setPosition(SourcePositionInfo position)88   public void setPosition(SourcePositionInfo position) {
89       mPosition = position;
90 
91       // so that if we've created one prior to changing, we recreate it
92       if (mComment != null) {
93           mComment = new Comment(mRawCommentText, parent(), mPosition);
94       }
95   }
96 
parent()97   public abstract ContainerInfo parent();
98 
setSince(String since)99   public void setSince(String since) {
100     mSince = since;
101   }
102 
getSince()103   public String getSince() {
104     if (Doclava.METALAVA_API_SINCE) {
105       mSince = comment().getApiSince();
106     }
107     return mSince;
108   }
109 
110   /**
111    * Sets the artifact in which the class resides.
112    * <p>
113    * This property should be specified as a full Maven dependency spec. For example, a Support
114    * Library core utility class may use "com.android.support:support-core-utils:26.0.1".
115    *
116    * @param artifact the artifact in which the class resides
117    * @return
118    */
setArtifact(String artifact)119   public void setArtifact(String artifact) {
120     mArtifact = artifact;
121   }
122 
123   /**
124    * Returns the artifact in which the class resides.
125    */
getArtifact()126   public String getArtifact() {
127     return mArtifact;
128   }
129 
setDeprecatedSince(String since)130   public void setDeprecatedSince(String since) {
131     mDeprecatedSince = since;
132   }
133 
getDeprecatedSince()134   public String getDeprecatedSince() {
135     if (Doclava.METALAVA_API_SINCE) {
136         return comment().getDeprecatedSince();
137     } else {
138         return mDeprecatedSince;
139     }
140   }
141 
isDeprecated()142   public boolean isDeprecated() {
143     if (Doclava.METALAVA_API_SINCE) {
144       return comment().isDeprecated();
145     } else {
146       return mDeprecatedSince != null ? true : false;
147     }
148   }
149 
addFederatedReference(FederatedSite source)150   public final void addFederatedReference(FederatedSite source) {
151     mFederatedReferences.add(source);
152   }
153 
getFederatedReferences()154   public final Set<FederatedSite> getFederatedReferences() {
155     return mFederatedReferences;
156   }
157 
setFederatedReferences(Data data, String base)158   public final void setFederatedReferences(Data data, String base) {
159     int pos = 0;
160     for (FederatedSite source : getFederatedReferences()) {
161       data.setValue(base + ".federated." + pos + ".url", source.linkFor(htmlPage()));
162       data.setValue(base + ".federated." + pos + ".name", source.name());
163       pos++;
164     }
165   }
166 
167   private String mRawCommentText;
168   Comment mComment;
169   SourcePositionInfo mPosition;
170   private String mSince;
171   private String mArtifact;
172   private String mDeprecatedSince;
173   private Set<FederatedSite> mFederatedReferences = new LinkedHashSet<FederatedSite>();
174 }
175