• 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     return mSince;
105   }
106 
107   /**
108    * Sets the artifact in which the class resides.
109    * <p>
110    * This property should be specified as a full Maven dependency spec. For example, a Support
111    * Library core utility class may use "com.android.support:support-core-utils:26.0.1".
112    *
113    * @param artifact the artifact in which the class resides
114    * @return
115    */
setArtifact(String artifact)116   public void setArtifact(String artifact) {
117     mArtifact = artifact;
118   }
119 
120   /**
121    * Returns the artifact in which the class resides.
122    */
getArtifact()123   public String getArtifact() {
124     return mArtifact;
125   }
126 
setDeprecatedSince(String since)127   public void setDeprecatedSince(String since) {
128     mDeprecatedSince = since;
129   }
130 
getDeprecatedSince()131   public String getDeprecatedSince() {
132     return mDeprecatedSince;
133   }
134 
isDeprecated()135   public boolean isDeprecated() {
136     return mDeprecatedSince != null ? true : false;
137   }
138 
addFederatedReference(FederatedSite source)139   public final void addFederatedReference(FederatedSite source) {
140     mFederatedReferences.add(source);
141   }
142 
getFederatedReferences()143   public final Set<FederatedSite> getFederatedReferences() {
144     return mFederatedReferences;
145   }
146 
setFederatedReferences(Data data, String base)147   public final void setFederatedReferences(Data data, String base) {
148     int pos = 0;
149     for (FederatedSite source : getFederatedReferences()) {
150       data.setValue(base + ".federated." + pos + ".url", source.linkFor(htmlPage()));
151       data.setValue(base + ".federated." + pos + ".name", source.name());
152       pos++;
153     }
154   }
155 
156   private String mRawCommentText;
157   Comment mComment;
158   SourcePositionInfo mPosition;
159   private String mSince;
160   private String mArtifact;
161   private String mDeprecatedSince;
162   private Set<FederatedSite> mFederatedReferences = new LinkedHashSet<FederatedSite>();
163 }
164