Home | History | Annotate | Download | only in doclava
      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 {
     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    */
     34   public abstract String htmlPage();
     35 
     36   /**
     37    * @return true if the element has never been a part of public API
     38    */
     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    */
     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    */
     55   public boolean isHiddenOrRemoved() {
     56    return isHidden() || isRemoved();
     57   }
     58 
     59   public boolean isDocOnly() {
     60     return comment().isDocOnly();
     61   }
     62 
     63   public String getRawCommentText() {
     64     return mRawCommentText;
     65   }
     66 
     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 
     77   public Comment comment() {
     78     if (mComment == null) {
     79       mComment = new Comment(mRawCommentText, parent(), mPosition);
     80     }
     81     return mComment;
     82   }
     83 
     84   public SourcePositionInfo position() {
     85     return mPosition;
     86   }
     87 
     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 
     97   public abstract ContainerInfo parent();
     98 
     99   public void setSince(String since) {
    100     mSince = since;
    101   }
    102 
    103   public String getSince() {
    104     return mSince;
    105   }
    106 
    107   public void setDeprecatedSince(String since) {
    108     mDeprecatedSince = since;
    109   }
    110 
    111   public String getDeprecatedSince() {
    112     return mDeprecatedSince;
    113   }
    114 
    115   public boolean isDeprecated() {
    116     return mDeprecatedSince != null ? true : false;
    117   }
    118 
    119   public final void addFederatedReference(FederatedSite source) {
    120     mFederatedReferences.add(source);
    121   }
    122 
    123   public final Set<FederatedSite> getFederatedReferences() {
    124     return mFederatedReferences;
    125   }
    126 
    127   public final void setFederatedReferences(Data data, String base) {
    128     int pos = 0;
    129     for (FederatedSite source : getFederatedReferences()) {
    130       data.setValue(base + ".federated." + pos + ".url", source.linkFor(htmlPage()));
    131       data.setValue(base + ".federated." + pos + ".name", source.name());
    132       pos++;
    133     }
    134   }
    135 
    136   private String mRawCommentText;
    137   Comment mComment;
    138   SourcePositionInfo mPosition;
    139   private String mSince;
    140   private String mDeprecatedSince;
    141   private Set<FederatedSite> mFederatedReferences = new LinkedHashSet<FederatedSite>();
    142 }
    143