summaryrefslogtreecommitdiffstats
path: root/tools/droiddoc/src/Proofread.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/droiddoc/src/Proofread.java')
-rw-r--r--tools/droiddoc/src/Proofread.java178
1 files changed, 178 insertions, 0 deletions
diff --git a/tools/droiddoc/src/Proofread.java b/tools/droiddoc/src/Proofread.java
new file mode 100644
index 0000000..ec9f523
--- /dev/null
+++ b/tools/droiddoc/src/Proofread.java
@@ -0,0 +1,178 @@
+/*
+ * 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.io.IOException;
+import java.io.FileWriter;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
+
+public class Proofread
+{
+ static FileWriter out = null;
+ static final Pattern WHITESPACE = Pattern.compile("\\r?\\n");
+ static final String INDENT = " ";
+ static final String NEWLINE = "\n" + INDENT;
+
+ public static void initProofread(String filename)
+ {
+ try {
+ out = new FileWriter(filename);
+ out.write("javadoc proofread file: " + filename + "\n");
+ }
+ catch (IOException e) {
+ if (out != null) {
+ try {
+ out.close();
+ }
+ catch (IOException ex) {
+ }
+ out = null;
+ }
+ System.err.println("error opening file: " + filename);
+ }
+ }
+
+ public static void finishProofread(String filename)
+ {
+ if (out == null) {
+ return;
+ }
+
+ try {
+ out.close();
+ }
+ catch (IOException e) {
+ }
+ }
+
+ public static void write(String s)
+ {
+ if (out == null) {
+ return ;
+ }
+ try {
+ out.write(s);
+ }
+ catch (IOException e) {
+ }
+ }
+
+ public static void writeIndented(String s)
+ {
+ s = s.trim();
+ Matcher m = WHITESPACE.matcher(s);
+ s = m.replaceAll(NEWLINE);
+ write(INDENT);
+ write(s);
+ write("\n");
+ }
+
+ public static void writeFileHeader(String filename)
+ {
+ write("\n\n=== ");
+ write(filename);
+ write(" ===\n");
+ }
+
+ public static void writeTagList(TagInfo[] tags)
+ {
+ if (out == null) {
+ return;
+ }
+
+ for (TagInfo t: tags) {
+ String k = t.kind();
+ if ("Text".equals(t.name())) {
+ writeIndented(t.text());
+ }
+ else if ("@more".equals(k)) {
+ writeIndented("");
+ }
+ else if ("@see".equals(k)) {
+ SeeTagInfo see = (SeeTagInfo)t;
+ String label = see.label();
+ if (label == null) {
+ label = "";
+ }
+ writeIndented("{" + see.name() + " ... " + label + "}");
+ }
+ else if ("@code".equals(k)) {
+ writeIndented(t.text());
+ }
+ else if ("@samplecode".equals(k)) {
+ writeIndented(t.text());
+ }
+ else {
+ writeIndented("{" + (t.name() != null ? t.name() : "") + "/" +
+ t.text() + "}");
+ }
+ }
+ }
+
+ public static void writePackages(String filename, TagInfo[] tags)
+ {
+ if (out == null) {
+ return;
+ }
+
+ writeFileHeader(filename);
+ writeTagList(tags);
+ }
+
+ public static void writePackage(String filename, TagInfo[] tags)
+ {
+ if (out == null) {
+ return;
+ }
+
+ writeFileHeader(filename);
+ writeTagList(tags);
+ }
+
+ public static void writeClass(String filename, ClassInfo cl)
+ {
+ if (out == null) {
+ return;
+ }
+
+ writeFileHeader(filename);
+ writeTagList(cl.inlineTags());
+
+ // enum constants
+ for (FieldInfo f: cl.enumConstants()) {
+ write("ENUM: " + f.name() + "\n");
+ writeTagList(f.inlineTags());
+ }
+
+ // fields
+ for (FieldInfo f: cl.selfFields()) {
+ write("FIELD: " + f.name() + "\n");
+ writeTagList(f.inlineTags());
+ }
+
+ // constructors
+ for (MethodInfo m: cl.constructors()) {
+ write("CONSTRUCTOR: " + m.name() + "\n");
+ writeTagList(m.inlineTags().tags());
+ }
+
+ // methods
+ for (MethodInfo m: cl.selfMethods()) {
+ write("METHOD: " + m.name() + "\n");
+ writeTagList(m.inlineTags().tags());
+ }
+ }
+}