auto import from //depot/cupcake/@135843
This commit is contained in:
178
tools/droiddoc/src/Proofread.java
Normal file
178
tools/droiddoc/src/Proofread.java
Normal file
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user