summaryrefslogtreecommitdiffstats
path: root/tools/droiddoc/src/AttributeInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/droiddoc/src/AttributeInfo.java')
-rw-r--r--tools/droiddoc/src/AttributeInfo.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/tools/droiddoc/src/AttributeInfo.java b/tools/droiddoc/src/AttributeInfo.java
new file mode 100644
index 0000000..a24106b
--- /dev/null
+++ b/tools/droiddoc/src/AttributeInfo.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * 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.
+ */
+
+import java.util.ArrayList;
+import java.util.Comparator;
+
+import org.clearsilver.HDF;
+import org.clearsilver.CS;
+
+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, new SourcePositionInfo());
+ }
+ return mComment;
+ }
+
+ public String anchor() {
+ return "attr_" + name();
+ }
+ public String htmlPage() {
+ return mClass.htmlPage() + "#" + anchor();
+ }
+
+ public void makeHDF(HDF 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.name() + m.prettySignature());
+ }
+ }
+
+ public boolean checkLevel() {
+ return attrField.checkLevel();
+ }
+}
+