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