diff options
author | Ben Dodson <bjdodson@google.com> | 2010-08-04 15:21:06 -0700 |
---|---|---|
committer | Ben Dodson <bjdodson@google.com> | 2010-08-04 17:50:13 -0700 |
commit | 920dbbbaca6aa578f3b26d89e99d12754c26ed60 (patch) | |
tree | ff22fba664681032459f526d51f14411403ea187 /src/com/google/doclava/AttributeInfo.java | |
parent | c8f6c750effdcfe65efc5a7d3bb62c4693cf4231 (diff) | |
download | doclava-920dbbbaca6aa578f3b26d89e99d12754c26ed60.tar.gz |
Initial import of Doclava project
Change-Id: Ia5ae56f1700fce98e0ae6954fa2df617ec0537bb
Diffstat (limited to 'src/com/google/doclava/AttributeInfo.java')
-rw-r--r-- | src/com/google/doclava/AttributeInfo.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/com/google/doclava/AttributeInfo.java b/src/com/google/doclava/AttributeInfo.java new file mode 100644 index 0000000..25d424f --- /dev/null +++ b/src/com/google/doclava/AttributeInfo.java @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.doclava; + +import com.google.clearsilver.jsilver.data.Data; + +import java.util.ArrayList; +import java.util.Comparator; + +public class AttributeInfo { + public static final Comparator<AttributeInfo> comparator = new Comparator<AttributeInfo>() { + public int compare(AttributeInfo a, AttributeInfo b) { + return a.name().compareTo(b.name()); + } + }; + + public FieldInfo attrField; + public ArrayList<MethodInfo> methods = new ArrayList<MethodInfo>(); + + private ClassInfo mClass; + private String mName; + private Comment mComment; + + public AttributeInfo(ClassInfo cl, FieldInfo f) { + mClass = cl; + attrField = f; + } + + public String name() { + if (mName == null) { + for (AttrTagInfo comment : attrField.comment().attrTags()) { + String n = comment.name(); + if (n != null) { + mName = n; + return n; + } + } + } + return mName; + } + + public Comment comment() { + if (mComment == null) { + for (AttrTagInfo attr : attrField.comment().attrTags()) { + Comment c = attr.description(); + if (c != null) { + mComment = c; + return c; + } + } + } + if (mComment == null) { + return new Comment("", mClass, SourcePositionInfo.UNKNOWN); + } + return mComment; + } + + public String anchor() { + return "attr_" + name(); + } + + public String htmlPage() { + return mClass.htmlPage() + "#" + anchor(); + } + + public void makeHDF(Data data, String base) { + data.setValue(base + ".name", name()); + data.setValue(base + ".anchor", anchor()); + data.setValue(base + ".href", htmlPage()); + data.setValue(base + ".R.name", attrField.name()); + data.setValue(base + ".R.href", attrField.htmlPage()); + TagInfo.makeHDF(data, base + ".deprecated", attrField.comment().deprecatedTags()); + TagInfo.makeHDF(data, base + ".shortDescr", comment().briefTags()); + TagInfo.makeHDF(data, base + ".descr", comment().tags()); + + int i = 0; + for (MethodInfo m : methods) { + String s = base + ".methods." + i; + data.setValue(s + ".href", m.htmlPage()); + data.setValue(s + ".name", m.prettySignature()); + } + } + + public boolean checkLevel() { + return attrField.checkLevel(); + } +} |