Java Examples for com.sun.javadoc.MethodDoc
The following java examples will help you to understand the usage of com.sun.javadoc.MethodDoc. These source code samples are taken from different open source projects.
Example 1
| Project: swagger-jaxrs-doclet-master File: ApiClassParser.java View source code |
public Collection<Api> parse() {
List<Api> apis = new ArrayList<Api>();
Map<String, Collection<Method>> apiMethods = new HashMap<String, Collection<Method>>();
for (MethodDoc method : classDoc.methods()) {
ApiMethodParser methodParser = parentMethod == null ? new ApiMethodParser(options, rootPath, method) : new ApiMethodParser(options, parentMethod, method);
Method parsedMethod = methodParser.parse();
if (parsedMethod == null) {
continue;
}
if (parsedMethod.isSubResource()) {
ClassDoc subResourceClassDoc = lookUpClassDoc(method.returnType());
if (subResourceClassDoc != null) {
// delete class from the dictionary to handle recursive sub-resources
Collection<ClassDoc> shrunkClasses = new ArrayList<ClassDoc>(classes);
shrunkClasses.remove(classDoc);
// recursively parse the sub-resource class
ApiClassParser subResourceParser = new ApiClassParser(options, subResourceClassDoc, shrunkClasses, parsedMethod);
apis.addAll(subResourceParser.parse());
models.addAll(subResourceParser.models());
}
continue;
}
models.addAll(methodParser.models());
String realPath = parsedMethod.getPath();
Collection<Method> matchingMethods = apiMethods.get(realPath);
if (matchingMethods == null) {
matchingMethods = new ArrayList<Method>();
apiMethods.put(realPath, matchingMethods);
}
matchingMethods.add(parsedMethod);
}
for (Map.Entry<String, Collection<Method>> apiEntries : apiMethods.entrySet()) {
Collection<Operation> operations = new ArrayList<Operation>(transform(apiEntries.getValue(), new Function<Method, Operation>() {
@Override
public Operation apply(Method method) {
return new Operation(method);
}
}));
apis.add(new Api(apiEntries.getKey(), "", operations));
}
Collections.sort(apis, new Comparator<Api>() {
@Override
public int compare(Api o1, Api o2) {
return o1.getPath().compareTo(o2.getPath());
}
});
return apis;
}Example 2
| Project: myrobotlab-master File: ListMethodsDoclet.java View source code |
public static boolean start(RootDoc root) {
ClassDoc[] classes = root.classes();
for (int i = 0; i < classes.length; i++) {
System.out.println(classes[i]);
ClassDoc classdoc = classes[i];
String x = classdoc.getRawCommentText();
System.out.println(x);
MethodDoc[] methods = classes[i].methods();
for (int j = 0; j < methods.length; j++) {
MethodDoc m = methods[j];
System.out.println(m.getRawCommentText());
if (m.isPublic()) {
System.out.println("\t" + m.name());
Parameter[] parameters = m.parameters();
for (int k = 0; k < parameters.length; k++) {
Parameter p = parameters[k];
System.out.println("\t\t" + p.name() + ": " + p.type().qualifiedTypeName());
}
}
}
}
return true;
}Example 3
| Project: tldgen-master File: Tag.java View source code |
private static void recollectTagData(ClassDoc doc, Tag tag, Set<String> excludeProperties) {
if (!Object.class.getName().equals(doc.qualifiedName())) {
recollectTagData(doc.superclass(), tag, excludeProperties);
}
// process any @Tag annotation
AnnotationDesc annotation = getAnnotation(doc, org.tldgen.annotations.Tag.class);
if (annotation != null) {
tag.postProcessElement(doc, annotation);
}
// add annotated attributes
for (FieldDoc fieldDoc : doc.fields()) {
Attribute attribute = addMember(fieldDoc, tag, excludeProperties);
if (attribute != null) {
AnnotationDesc variableAnnotation = getAnnotation(fieldDoc, org.tldgen.annotations.Variable.class);
if (variableAnnotation != null) {
tag.addVariable(attribute.getName(), variableAnnotation);
}
}
}
// add annotated setter methods
for (MethodDoc methodDoc : doc.methods()) {
addMember(methodDoc, tag, excludeProperties);
}
}Example 4
| Project: cdk-build-util-master File: IncorrectBugNumberTagletTest.java View source code |
/**
* {@inheritDoc}
*/
public List<ITestReport> test(ClassDoc classDoc) {
List<ITestReport> reports = new ArrayList<ITestReport>();
Tag[] tags = classDoc.tags("cdk.bug");
for (Tag tag : tags) {
try {
Integer.valueOf(tag.text());
} catch (NumberFormatException exception) {
reports.add(new TestReport(this, classDoc, "Invalid integer given as bug number in @cdk.bug tag.", tag.position().line(), null));
}
}
MethodDoc[] methodDocs = classDoc.methods();
for (MethodDoc methodDoc : methodDocs) {
tags = methodDoc.tags("cdk.bug");
for (Tag tag : tags) {
try {
Integer.valueOf(tag.text());
} catch (NumberFormatException exception) {
reports.add(new TestReport(this, classDoc, "Invalid integer given as bug number in @cdk.bug tag.", tag.position().line(), null));
}
}
}
return reports;
}Example 5
| Project: cxf-master File: DumpJavaDoc.java View source code |
public static boolean start(RootDoc root) throws IOException {
String dumpFileName = readOptions(root.options());
OutputStream os = Files.newOutputStream(Paths.get(dumpFileName));
Properties javaDocMap = new Properties();
for (ClassDoc classDoc : root.classes()) {
javaDocMap.put(classDoc.toString(), classDoc.commentText());
for (MethodDoc method : classDoc.methods()) {
javaDocMap.put(method.qualifiedName(), method.commentText());
for (ParamTag paramTag : method.paramTags()) {
Parameter[] parameters = method.parameters();
for (int i = 0; i < parameters.length; ++i) {
if (parameters[i].name().equals(paramTag.parameterName())) {
javaDocMap.put(method.qualifiedName() + ".paramCommentTag." + i, paramTag.parameterComment());
}
}
}
Tag retTags[] = method.tags("return");
if (retTags != null && retTags.length == 1) {
Tag retTag = method.tags("return")[0];
javaDocMap.put(method.qualifiedName() + "." + "returnCommentTag", retTag.text());
}
}
}
javaDocMap.store(os, "");
os.flush();
os.close();
return true;
}Example 6
| Project: google-web-toolkit-svnmirror-master File: Booklet.java View source code |
private void emitModifiers(ProgramElementDoc doc) {
if (doc.isPrivate()) {
beginEndln("isPrivate");
} else if (doc.isProtected()) {
beginEndln("isProtected");
} else if (doc.isPublic()) {
beginEndln("isPublic");
} else if (doc.isPackagePrivate()) {
beginEndln("isPackagePrivate");
}
if (doc.isStatic()) {
beginEndln("isStatic");
}
if (doc.isFinal()) {
beginEndln("isFinal");
}
if (doc instanceof MethodDoc) {
MethodDoc methodDoc = (MethodDoc) doc;
if (methodDoc.isAbstract()) {
beginEndln("isAbstract");
}
if (methodDoc.isSynchronized()) {
beginEndln("isSynchronized");
}
}
}Example 7
| Project: gwt-master File: Booklet.java View source code |
private void emitModifiers(ProgramElementDoc doc) {
if (doc.isPrivate()) {
beginEndln("isPrivate");
} else if (doc.isProtected()) {
beginEndln("isProtected");
} else if (doc.isPublic()) {
beginEndln("isPublic");
} else if (doc.isPackagePrivate()) {
beginEndln("isPackagePrivate");
}
if (doc.isStatic()) {
beginEndln("isStatic");
}
if (doc.isFinal()) {
beginEndln("isFinal");
}
if (doc instanceof MethodDoc) {
MethodDoc methodDoc = (MethodDoc) doc;
if (methodDoc.isAbstract()) {
beginEndln("isAbstract");
}
if (methodDoc.isSynchronized()) {
beginEndln("isSynchronized");
}
}
}Example 8
| Project: gwt-sandbox-master File: Booklet.java View source code |
private void emitModifiers(ProgramElementDoc doc) {
if (doc.isPrivate()) {
beginEndln("isPrivate");
} else if (doc.isProtected()) {
beginEndln("isProtected");
} else if (doc.isPublic()) {
beginEndln("isPublic");
} else if (doc.isPackagePrivate()) {
beginEndln("isPackagePrivate");
}
if (doc.isStatic()) {
beginEndln("isStatic");
}
if (doc.isFinal()) {
beginEndln("isFinal");
}
if (doc instanceof MethodDoc) {
MethodDoc methodDoc = (MethodDoc) doc;
if (methodDoc.isAbstract()) {
beginEndln("isAbstract");
}
if (methodDoc.isSynchronized()) {
beginEndln("isSynchronized");
}
}
}Example 9
| Project: gwt.svn-master File: Booklet.java View source code |
private void emitModifiers(ProgramElementDoc doc) {
if (doc.isPrivate()) {
beginEndln("isPrivate");
} else if (doc.isProtected()) {
beginEndln("isProtected");
} else if (doc.isPublic()) {
beginEndln("isPublic");
} else if (doc.isPackagePrivate()) {
beginEndln("isPackagePrivate");
}
if (doc.isStatic()) {
beginEndln("isStatic");
}
if (doc.isFinal()) {
beginEndln("isFinal");
}
if (doc instanceof MethodDoc) {
MethodDoc methodDoc = (MethodDoc) doc;
if (methodDoc.isAbstract()) {
beginEndln("isAbstract");
}
if (methodDoc.isSynchronized()) {
beginEndln("isSynchronized");
}
}
}Example 10
| Project: h2-bitmap-master File: Doclet.java View source code |
private void processClass(ClassDoc clazz) throws IOException {
String packageName = clazz.containingPackage().name();
String dir = destDir + "/" + packageName.replace('.', '/');
(new File(dir)).mkdirs();
String fileName = dir + "/" + clazz.name() + ".html";
String className = getClass(clazz);
FileWriter out = new FileWriter(fileName);
PrintWriter writer = new PrintWriter(new BufferedWriter(out));
writer.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" " + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
String language = "en";
writer.println("<html xmlns=\"http://www.w3.org/1999/xhtml\" " + "lang=\"" + language + "\" xml:lang=\"" + language + "\">");
writer.println("<head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" /><title>");
writer.println(className);
writer.println("</title><link rel=\"stylesheet\" type=\"text/css\" href=\"../../../stylesheet.css\" />");
writer.println("<script type=\"text/javascript\" src=\"../../../animate.js\"></script>");
writer.println("</head><body onload=\"openLink();\">");
writer.println("<table class=\"content\"><tr class=\"content\"><td class=\"content\"><div class=\"contentDiv\">");
writer.println("<h1>" + className + "</h1>");
writer.println(formatText(clazz.commentText()) + "<br /><br />");
// methods
ConstructorDoc[] constructors = clazz.constructors();
MethodDoc[] methods = clazz.methods();
ExecutableMemberDoc[] constructorsMethods = new ExecutableMemberDoc[constructors.length + methods.length];
System.arraycopy(constructors, 0, constructorsMethods, 0, constructors.length);
System.arraycopy(methods, 0, constructorsMethods, constructors.length, methods.length);
Arrays.sort(constructorsMethods, new Comparator<ExecutableMemberDoc>() {
public int compare(ExecutableMemberDoc a, ExecutableMemberDoc b) {
// sort static method before non-static methods
if (a.isStatic() != b.isStatic()) {
return a.isStatic() ? -1 : 1;
}
return a.name().compareTo(b.name());
}
});
//
//
// Arrays.sort(methods, new Comparator<MethodDoc>() {
// public int compare(MethodDoc a, MethodDoc b) {
// // sort static method before non-static methods
// if (a.isStatic() != b.isStatic()) {
// return a.isStatic() ? -1 : 1;
// }
// return a.name().compareTo(b.name());
// }
// });
ArrayList<String> signatures = new ArrayList<String>();
boolean hasMethods = false;
int id = 0;
for (int i = 0; i < constructorsMethods.length; i++) {
ExecutableMemberDoc method = constructorsMethods[i];
String name = method.name();
if (skipMethod(method)) {
continue;
}
if (!hasMethods) {
writer.println("<table class=\"block\"><tr onclick=\"return allDetails()\"><th colspan=\"2\">Methods</th></tr>");
hasMethods = true;
}
String type = getTypeName(method.isStatic(), false, getReturnType(method));
writer.println("<tr id=\"__" + id + "\" onclick=\"return on(" + id + ")\">");
writer.println("<td class=\"return\">" + type + "</td><td class=\"method\">");
Parameter[] params = method.parameters();
StringBuilder buff = new StringBuilder();
StringBuilder buffSignature = new StringBuilder(name);
buff.append('(');
for (int j = 0; j < params.length; j++) {
if (j > 0) {
buff.append(", ");
}
buffSignature.append('_');
Parameter param = params[j];
boolean isVarArgs = method.isVarArgs() && j == params.length - 1;
String typeName = getTypeName(false, isVarArgs, param.type());
buff.append(typeName);
buffSignature.append(StringUtils.replaceAll(typeName, "[]", "-"));
buff.append(' ');
buff.append(param.name());
}
buff.append(')');
if (isDeprecated(method)) {
name = "<span class=\"deprecated\">" + name + "</span>";
}
String signature = buffSignature.toString();
while (signatures.size() < i) {
signatures.add(null);
}
signatures.add(i, signature);
writer.println("<a id=\"" + signature + "\" href=\"#" + signature + "\">" + name + "</a>" + buff.toString());
String firstSentence = getFirstSentence(method.firstSentenceTags());
if (firstSentence != null) {
writer.println("<div class=\"methodText\">" + formatText(firstSentence) + "</div>");
}
writer.println("</td></tr>");
writer.println("<tr onclick=\"return off(" + id + ")\" class=\"detail\" id=\"_" + id + "\">");
writer.println("<td class=\"return\">" + type + "</td><td>");
writeMethodDetails(writer, clazz, method, signature);
writer.println("</td></tr>");
id++;
}
if (hasMethods) {
writer.println("</table>");
}
// field overview
FieldDoc[] fields = clazz.fields();
if (clazz.interfaces().length > 0) {
fields = clazz.interfaces()[0].fields();
}
Arrays.sort(fields, new Comparator<FieldDoc>() {
public int compare(FieldDoc a, FieldDoc b) {
return a.name().compareTo(b.name());
}
});
int fieldId = 0;
for (FieldDoc field : fields) {
if (skipField(clazz, field)) {
continue;
}
String name = field.name();
String text = field.commentText();
if (text == null || text.trim().length() == 0) {
addError("Undocumented field (" + clazz.name() + ".java:" + field.position().line() + ") " + name);
}
if (text != null && text.startsWith("INTERNAL")) {
continue;
}
if (fieldId == 0) {
writer.println("<br /><table><tr><th colspan=\"2\">Fields</th></tr>");
}
String type = getTypeName(true, false, field.type());
writer.println("<tr><td class=\"return\">" + type + "</td><td class=\"method\">");
String constant = field.constantValueExpression();
// add a link (a name) if there is a <code> tag
String link = getFieldLink(text, constant, clazz, name);
writer.print("<a href=\"#" + link + "\">" + name + "</a>");
if (constant == null) {
writer.println();
} else {
writer.println(" = " + constant);
}
writer.println("</td></tr>");
fieldId++;
}
if (fieldId > 0) {
writer.println("</table>");
}
// field details
Arrays.sort(fields, new Comparator<FieldDoc>() {
public int compare(FieldDoc a, FieldDoc b) {
String ca = a.constantValueExpression();
if (ca == null) {
ca = a.name();
}
String cb = b.constantValueExpression();
if (cb == null) {
cb = b.name();
}
return ca.compareTo(cb);
}
});
for (FieldDoc field : fields) {
writeFieldDetails(writer, clazz, field);
}
writer.println("</div></td></tr></table></body></html>");
writer.close();
out.close();
}Example 11
| Project: H2-Mirror-master File: Doclet.java View source code |
private void processClass(ClassDoc clazz) throws IOException {
String packageName = clazz.containingPackage().name();
String dir = destDir + "/" + packageName.replace('.', '/');
(new File(dir)).mkdirs();
String fileName = dir + "/" + clazz.name() + ".html";
String className = getClass(clazz);
FileWriter out = new FileWriter(fileName);
PrintWriter writer = new PrintWriter(new BufferedWriter(out));
writer.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD " + "XHTML 1.0 Strict//EN\" " + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
String language = "en";
writer.println("<html xmlns=\"http://www.w3.org/1999/xhtml\" " + "lang=\"" + language + "\" xml:lang=\"" + language + "\">");
writer.println("<head>" + "<meta http-equiv=\"Content-Type\" " + "content=\"text/html;charset=utf-8\" /><title>");
writer.println(className);
writer.println("</title>" + "<link rel=\"stylesheet\" type=\"text/css\" " + "href=\"../../../stylesheet.css\" />");
writer.println("<script type=\"text/javascript\" " + "src=\"../../../animate.js\"></script>");
writer.println("</head><body onload=\"openLink();\">");
writer.println("<table class=\"content\">" + "<tr class=\"content\">" + "<td class=\"content\">" + "<div class=\"contentDiv\">");
writer.println("<h1>" + className + "</h1>");
writer.println(formatText(clazz.commentText()) + "<br /><br />");
// methods
ConstructorDoc[] constructors = clazz.constructors();
MethodDoc[] methods = clazz.methods();
ExecutableMemberDoc[] constructorsMethods = new ExecutableMemberDoc[constructors.length + methods.length];
System.arraycopy(constructors, 0, constructorsMethods, 0, constructors.length);
System.arraycopy(methods, 0, constructorsMethods, constructors.length, methods.length);
Arrays.sort(constructorsMethods, new Comparator<ExecutableMemberDoc>() {
@Override
public int compare(ExecutableMemberDoc a, ExecutableMemberDoc b) {
// sort static method before non-static methods
if (a.isStatic() != b.isStatic()) {
return a.isStatic() ? -1 : 1;
}
return a.name().compareTo(b.name());
}
});
//
//
// Arrays.sort(methods, new Comparator<MethodDoc>() {
// public int compare(MethodDoc a, MethodDoc b) {
// // sort static method before non-static methods
// if (a.isStatic() != b.isStatic()) {
// return a.isStatic() ? -1 : 1;
// }
// return a.name().compareTo(b.name());
// }
// });
ArrayList<String> signatures = new ArrayList<String>();
boolean hasMethods = false;
int id = 0;
for (int i = 0; i < constructorsMethods.length; i++) {
ExecutableMemberDoc method = constructorsMethods[i];
String name = method.name();
if (skipMethod(method)) {
continue;
}
if (!hasMethods) {
writer.println("<table class=\"block\">" + "<tr onclick=\"return allDetails()\">" + "<th colspan=\"2\">Methods</th></tr>");
hasMethods = true;
}
String type = getTypeName(method.isStatic(), false, getReturnType(method));
writer.println("<tr id=\"__" + id + "\" onclick=\"return on(" + id + ")\">");
writer.println("<td class=\"return\">" + type + "</td><td class=\"method\">");
Parameter[] params = method.parameters();
StringBuilder buff = new StringBuilder();
StringBuilder buffSignature = new StringBuilder(name);
buff.append('(');
for (int j = 0; j < params.length; j++) {
if (j > 0) {
buff.append(", ");
}
buffSignature.append('_');
Parameter param = params[j];
boolean isVarArgs = method.isVarArgs() && j == params.length - 1;
String typeName = getTypeName(false, isVarArgs, param.type());
buff.append(typeName);
buffSignature.append(StringUtils.replaceAll(typeName, "[]", "-"));
buff.append(' ');
buff.append(param.name());
}
buff.append(')');
if (isDeprecated(method)) {
name = "<span class=\"deprecated\">" + name + "</span>";
}
String signature = buffSignature.toString();
while (signatures.size() < i) {
signatures.add(null);
}
signatures.add(i, signature);
writer.println("<a id=\"" + signature + "\" href=\"#" + signature + "\">" + name + "</a>" + buff.toString());
String firstSentence = getFirstSentence(method.firstSentenceTags());
if (firstSentence != null) {
writer.println("<div class=\"methodText\">" + formatText(firstSentence) + "</div>");
}
writer.println("</td></tr>");
writer.println("<tr onclick=\"return off(" + id + ")\" class=\"detail\" id=\"_" + id + "\">");
writer.println("<td class=\"return\">" + type + "</td><td>");
writeMethodDetails(writer, clazz, method, signature);
writer.println("</td></tr>");
id++;
}
if (hasMethods) {
writer.println("</table>");
}
// field overview
FieldDoc[] fields = clazz.fields();
if (clazz.interfaces().length > 0) {
fields = clazz.interfaces()[0].fields();
}
Arrays.sort(fields, new Comparator<FieldDoc>() {
@Override
public int compare(FieldDoc a, FieldDoc b) {
return a.name().compareTo(b.name());
}
});
int fieldId = 0;
for (FieldDoc field : fields) {
if (skipField(clazz, field)) {
continue;
}
String name = field.name();
String text = field.commentText();
if (text == null || text.trim().length() == 0) {
addError("Undocumented field (" + getLink(clazz, field.position().line()) + ") " + name);
}
if (text != null && text.startsWith("INTERNAL")) {
continue;
}
if (fieldId == 0) {
writer.println("<br /><table><tr><th colspan=\"2\">Fields</th></tr>");
}
String type = getTypeName(true, false, field.type());
writer.println("<tr><td class=\"return\">" + type + "</td><td class=\"method\">");
String constant = field.constantValueExpression();
// add a link (a name) if there is a <code> tag
String link = getFieldLink(text, constant, clazz, name);
writer.print("<a href=\"#" + link + "\">" + name + "</a>");
if (constant == null) {
writer.println();
} else {
writer.println(" = " + constant);
}
writer.println("</td></tr>");
fieldId++;
}
if (fieldId > 0) {
writer.println("</table>");
}
// field details
Arrays.sort(fields, new Comparator<FieldDoc>() {
@Override
public int compare(FieldDoc a, FieldDoc b) {
String ca = a.constantValueExpression();
if (ca == null) {
ca = a.name();
}
String cb = b.constantValueExpression();
if (cb == null) {
cb = b.name();
}
return ca.compareTo(cb);
}
});
for (FieldDoc field : fields) {
writeFieldDetails(writer, clazz, field);
}
writer.println("</div></td></tr></table></body></html>");
writer.close();
out.close();
}Example 12
| Project: H2-Research-master File: Doclet.java View source code |
private void processClass(ClassDoc clazz) throws IOException {
String packageName = clazz.containingPackage().name();
String dir = destDir + "/" + packageName.replace('.', '/');
(new File(dir)).mkdirs();
String fileName = dir + "/" + clazz.name() + ".html";
String className = getClass(clazz);
FileWriter out = new FileWriter(fileName);
PrintWriter writer = new PrintWriter(new BufferedWriter(out));
writer.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD " + "XHTML 1.0 Strict//EN\" " + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
String language = "en";
writer.println("<html xmlns=\"http://www.w3.org/1999/xhtml\" " + "lang=\"" + language + "\" xml:lang=\"" + language + "\">");
writer.println("<head>" + "<meta http-equiv=\"Content-Type\" " + "content=\"text/html;charset=utf-8\" /><title>");
writer.println(className);
writer.println("</title>" + "<link rel=\"stylesheet\" type=\"text/css\" " + "href=\"../../../stylesheet.css\" />");
writer.println("<script type=\"text/javascript\" " + "src=\"../../../animate.js\"></script>");
writer.println("</head><body onload=\"openLink();\">");
writer.println("<table class=\"content\">" + "<tr class=\"content\">" + "<td class=\"content\">" + "<div class=\"contentDiv\">");
writer.println("<h1>" + className + "</h1>");
writer.println(formatText(clazz.commentText()) + "<br /><br />");
// methods
ConstructorDoc[] constructors = clazz.constructors();
MethodDoc[] methods = clazz.methods();
ExecutableMemberDoc[] constructorsMethods = new ExecutableMemberDoc[constructors.length + methods.length];
System.arraycopy(constructors, 0, constructorsMethods, 0, constructors.length);
System.arraycopy(methods, 0, constructorsMethods, constructors.length, methods.length);
Arrays.sort(constructorsMethods, new Comparator<ExecutableMemberDoc>() {
@Override
public int compare(ExecutableMemberDoc a, ExecutableMemberDoc b) {
// sort static method before non-static methods
if (a.isStatic() != b.isStatic()) {
return a.isStatic() ? -1 : 1;
}
return a.name().compareTo(b.name());
}
});
//
//
// Arrays.sort(methods, new Comparator<MethodDoc>() {
// public int compare(MethodDoc a, MethodDoc b) {
// // sort static method before non-static methods
// if (a.isStatic() != b.isStatic()) {
// return a.isStatic() ? -1 : 1;
// }
// return a.name().compareTo(b.name());
// }
// });
ArrayList<String> signatures = new ArrayList<String>();
boolean hasMethods = false;
int id = 0;
for (int i = 0; i < constructorsMethods.length; i++) {
ExecutableMemberDoc method = constructorsMethods[i];
String name = method.name();
if (skipMethod(method)) {
continue;
}
if (!hasMethods) {
writer.println("<table class=\"block\">" + "<tr onclick=\"return allDetails()\">" + "<th colspan=\"2\">Methods</th></tr>");
hasMethods = true;
}
String type = getTypeName(method.isStatic(), false, getReturnType(method));
writer.println("<tr id=\"__" + id + "\" onclick=\"return on(" + id + ")\">");
writer.println("<td class=\"return\">" + type + "</td><td class=\"method\">");
Parameter[] params = method.parameters();
StringBuilder buff = new StringBuilder();
StringBuilder buffSignature = new StringBuilder(name);
buff.append('(');
for (int j = 0; j < params.length; j++) {
if (j > 0) {
buff.append(", ");
}
buffSignature.append('_');
Parameter param = params[j];
boolean isVarArgs = method.isVarArgs() && j == params.length - 1;
String typeName = getTypeName(false, isVarArgs, param.type());
buff.append(typeName);
buffSignature.append(StringUtils.replaceAll(typeName, "[]", "-"));
buff.append(' ');
buff.append(param.name());
}
buff.append(')');
if (isDeprecated(method)) {
name = "<span class=\"deprecated\">" + name + "</span>";
}
String signature = buffSignature.toString();
while (signatures.size() < i) {
signatures.add(null);
}
signatures.add(i, signature);
writer.println("<a id=\"" + signature + "\" href=\"#" + signature + "\">" + name + "</a>" + buff.toString());
String firstSentence = getFirstSentence(method.firstSentenceTags());
if (firstSentence != null) {
writer.println("<div class=\"methodText\">" + formatText(firstSentence) + "</div>");
}
writer.println("</td></tr>");
writer.println("<tr onclick=\"return off(" + id + ")\" class=\"detail\" id=\"_" + id + "\">");
writer.println("<td class=\"return\">" + type + "</td><td>");
writeMethodDetails(writer, clazz, method, signature);
writer.println("</td></tr>");
id++;
}
if (hasMethods) {
writer.println("</table>");
}
// field overview
FieldDoc[] fields = clazz.fields();
if (clazz.interfaces().length > 0) {
fields = clazz.interfaces()[0].fields();
}
Arrays.sort(fields, new Comparator<FieldDoc>() {
@Override
public int compare(FieldDoc a, FieldDoc b) {
return a.name().compareTo(b.name());
}
});
int fieldId = 0;
for (FieldDoc field : fields) {
if (skipField(clazz, field)) {
continue;
}
String name = field.name();
String text = field.commentText();
if (text == null || text.trim().length() == 0) {
addError("Undocumented field (" + getLink(clazz, field.position().line()) + ") " + name);
}
if (text != null && text.startsWith("INTERNAL")) {
continue;
}
if (fieldId == 0) {
writer.println("<br /><table><tr><th colspan=\"2\">Fields</th></tr>");
}
String type = getTypeName(true, false, field.type());
writer.println("<tr><td class=\"return\">" + type + "</td><td class=\"method\">");
String constant = field.constantValueExpression();
// add a link (a name) if there is a <code> tag
String link = getFieldLink(text, constant, clazz, name);
writer.print("<a href=\"#" + link + "\">" + name + "</a>");
if (constant == null) {
writer.println();
} else {
writer.println(" = " + constant);
}
writer.println("</td></tr>");
fieldId++;
}
if (fieldId > 0) {
writer.println("</table>");
}
// field details
Arrays.sort(fields, new Comparator<FieldDoc>() {
@Override
public int compare(FieldDoc a, FieldDoc b) {
String ca = a.constantValueExpression();
if (ca == null) {
ca = a.name();
}
String cb = b.constantValueExpression();
if (cb == null) {
cb = b.name();
}
return ca.compareTo(cb);
}
});
for (FieldDoc field : fields) {
writeFieldDetails(writer, clazz, field);
}
writer.println("</div></td></tr></table></body></html>");
writer.close();
out.close();
}Example 13
| Project: h2database-master File: Doclet.java View source code |
private void processClass(ClassDoc clazz) throws IOException {
String packageName = clazz.containingPackage().name();
String dir = destDir + "/" + packageName.replace('.', '/');
(new File(dir)).mkdirs();
String fileName = dir + "/" + clazz.name() + ".html";
String className = getClass(clazz);
FileWriter out = new FileWriter(fileName);
PrintWriter writer = new PrintWriter(new BufferedWriter(out));
writer.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD " + "XHTML 1.0 Strict//EN\" " + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
String language = "en";
writer.println("<html xmlns=\"http://www.w3.org/1999/xhtml\" " + "lang=\"" + language + "\" xml:lang=\"" + language + "\">");
writer.println("<head>" + "<meta http-equiv=\"Content-Type\" " + "content=\"text/html;charset=utf-8\" /><title>");
writer.println(className);
writer.println("</title>" + "<link rel=\"stylesheet\" type=\"text/css\" " + "href=\"../../../stylesheet.css\" />");
writer.println("<script type=\"text/javascript\" " + "src=\"../../../animate.js\"></script>");
writer.println("</head><body onload=\"openLink();\">");
writer.println("<table class=\"content\">" + "<tr class=\"content\">" + "<td class=\"content\">" + "<div class=\"contentDiv\">");
writer.println("<h1>" + className + "</h1>");
writer.println(formatText(clazz.commentText()) + "<br /><br />");
// methods
ConstructorDoc[] constructors = clazz.constructors();
MethodDoc[] methods = clazz.methods();
ExecutableMemberDoc[] constructorsMethods = new ExecutableMemberDoc[constructors.length + methods.length];
System.arraycopy(constructors, 0, constructorsMethods, 0, constructors.length);
System.arraycopy(methods, 0, constructorsMethods, constructors.length, methods.length);
Arrays.sort(constructorsMethods, new Comparator<ExecutableMemberDoc>() {
@Override
public int compare(ExecutableMemberDoc a, ExecutableMemberDoc b) {
// sort static method before non-static methods
if (a.isStatic() != b.isStatic()) {
return a.isStatic() ? -1 : 1;
}
return a.name().compareTo(b.name());
}
});
//
//
// Arrays.sort(methods, new Comparator<MethodDoc>() {
// public int compare(MethodDoc a, MethodDoc b) {
// // sort static method before non-static methods
// if (a.isStatic() != b.isStatic()) {
// return a.isStatic() ? -1 : 1;
// }
// return a.name().compareTo(b.name());
// }
// });
ArrayList<String> signatures = new ArrayList<String>();
boolean hasMethods = false;
int id = 0;
for (int i = 0; i < constructorsMethods.length; i++) {
ExecutableMemberDoc method = constructorsMethods[i];
String name = method.name();
if (skipMethod(method)) {
continue;
}
if (!hasMethods) {
writer.println("<table class=\"block\">" + "<tr onclick=\"return allDetails()\">" + "<th colspan=\"2\">Methods</th></tr>");
hasMethods = true;
}
String type = getTypeName(method.isStatic(), false, getReturnType(method));
writer.println("<tr id=\"__" + id + "\" onclick=\"return on(" + id + ")\">");
writer.println("<td class=\"return\">" + type + "</td><td class=\"method\">");
Parameter[] params = method.parameters();
StringBuilder buff = new StringBuilder();
StringBuilder buffSignature = new StringBuilder(name);
buff.append('(');
for (int j = 0; j < params.length; j++) {
if (j > 0) {
buff.append(", ");
}
buffSignature.append('_');
Parameter param = params[j];
boolean isVarArgs = method.isVarArgs() && j == params.length - 1;
String typeName = getTypeName(false, isVarArgs, param.type());
buff.append(typeName);
buffSignature.append(StringUtils.replaceAll(typeName, "[]", "-"));
buff.append(' ');
buff.append(param.name());
}
buff.append(')');
if (isDeprecated(method)) {
name = "<span class=\"deprecated\">" + name + "</span>";
}
String signature = buffSignature.toString();
while (signatures.size() < i) {
signatures.add(null);
}
signatures.add(i, signature);
writer.println("<a id=\"" + signature + "\" href=\"#" + signature + "\">" + name + "</a>" + buff.toString());
String firstSentence = getFirstSentence(method.firstSentenceTags());
if (firstSentence != null) {
writer.println("<div class=\"methodText\">" + formatText(firstSentence) + "</div>");
}
writer.println("</td></tr>");
writer.println("<tr onclick=\"return off(" + id + ")\" class=\"detail\" id=\"_" + id + "\">");
writer.println("<td class=\"return\">" + type + "</td><td>");
writeMethodDetails(writer, clazz, method, signature);
writer.println("</td></tr>");
id++;
}
if (hasMethods) {
writer.println("</table>");
}
// field overview
FieldDoc[] fields = clazz.fields();
if (clazz.interfaces().length > 0) {
fields = clazz.interfaces()[0].fields();
}
Arrays.sort(fields, new Comparator<FieldDoc>() {
@Override
public int compare(FieldDoc a, FieldDoc b) {
return a.name().compareTo(b.name());
}
});
int fieldId = 0;
for (FieldDoc field : fields) {
if (skipField(clazz, field)) {
continue;
}
String name = field.name();
String text = field.commentText();
if (text == null || text.trim().length() == 0) {
addError("Undocumented field (" + getLink(clazz, field.position().line()) + ") " + name);
}
if (text != null && text.startsWith("INTERNAL")) {
continue;
}
if (fieldId == 0) {
writer.println("<br /><table><tr><th colspan=\"2\">Fields</th></tr>");
}
String type = getTypeName(true, false, field.type());
writer.println("<tr><td class=\"return\">" + type + "</td><td class=\"method\">");
String constant = field.constantValueExpression();
// add a link (a name) if there is a <code> tag
String link = getFieldLink(text, constant, clazz, name);
writer.print("<a href=\"#" + link + "\">" + name + "</a>");
if (constant == null) {
writer.println();
} else {
writer.println(" = " + constant);
}
writer.println("</td></tr>");
fieldId++;
}
if (fieldId > 0) {
writer.println("</table>");
}
// field details
Arrays.sort(fields, new Comparator<FieldDoc>() {
@Override
public int compare(FieldDoc a, FieldDoc b) {
String ca = a.constantValueExpression();
if (ca == null) {
ca = a.name();
}
String cb = b.constantValueExpression();
if (cb == null) {
cb = b.name();
}
return ca.compareTo(cb);
}
});
for (FieldDoc field : fields) {
writeFieldDetails(writer, clazz, field);
}
writer.println("</div></td></tr></table></body></html>");
writer.close();
out.close();
}Example 14
| Project: JamVM-PH-master File: AbstractDoclet.java View source code |
protected Map getIndexByName() {
if (null == indexByName) {
// Create index
// Collect index
//TreeMap();
indexByName = new HashMap();
// Add packages to index
PackageDoc[] packages = rootDoc.specifiedPackages();
for (int i = 0, ilim = packages.length; i < ilim; ++i) {
PackageDoc c = packages[i];
if (c.name().length() > 0) {
indexByName.put(new IndexKey(c.name()), c);
}
}
// Add classes, fields and methods to index
ClassDoc[] sumclasses = rootDoc.classes();
for (int i = 0, ilim = sumclasses.length; i < ilim; ++i) {
ClassDoc c = sumclasses[i];
if (null == c.containingClass()) {
indexByName.put(new IndexKey(c.name() + " " + c.containingPackage().name()), c);
} else {
indexByName.put(new IndexKey(c.name().substring(c.containingClass().name().length() + 1) + " " + c.containingClass().name() + " " + c.containingPackage().name()), c);
}
FieldDoc[] fields = c.fields();
for (int j = 0, jlim = fields.length; j < jlim; ++j) {
indexByName.put(new IndexKey(fields[j].name() + " " + fields[j].containingClass().name() + " " + fields[j].containingPackage().name()), fields[j]);
}
MethodDoc[] methods = c.methods();
for (int j = 0, jlim = methods.length; j < jlim; ++j) {
MethodDoc method = methods[j];
indexByName.put(new IndexKey(method.name() + method.signature() + " " + method.containingClass().name() + " " + method.containingPackage().name()), method);
}
ConstructorDoc[] constructors = c.constructors();
for (int j = 0, jlim = constructors.length; j < jlim; ++j) {
ConstructorDoc constructor = constructors[j];
indexByName.put(new IndexKey(constructor.name() + constructor.signature() + " " + constructor.containingClass().name() + " " + constructor.containingPackage().name()), constructor);
}
}
}
return indexByName;
}Example 15
| Project: jangaroo-tools-master File: MethodDocImpl.java View source code |
public MethodDoc overriddenMethod() { ClassDoc superClass = containingClass().superclass(); while (superClass != null) { MethodDoc superMethodDoc = getSuperMethodDoc(superClass); if (superMethodDoc != null) return superMethodDoc; superClass = superClass.superclass(); } return null; }
Example 16
| Project: pentaho-platform-master File: PentahoResourceDoclet.java View source code |
private static String generateComment(MethodDoc methodDoc) {
String documentation = methodDoc.getRawCommentText();
StringBuilder comment = new StringBuilder();
comment.append(MessageFormat.format(SUPPORTED_TAG, isSupported(methodDoc.annotations()))).append(MessageFormat.format(DEPRECATED_TAG, isDeprecated(methodDoc.annotations()))).append(MessageFormat.format(DOCUMENTATION_TAG, documentation));
return comment.toString();
}Example 17
| Project: scalagwt-gwt-master File: Booklet.java View source code |
private void emitModifiers(ProgramElementDoc doc) {
if (doc.isPrivate()) {
beginEndln("isPrivate");
} else if (doc.isProtected()) {
beginEndln("isProtected");
} else if (doc.isPublic()) {
beginEndln("isPublic");
} else if (doc.isPackagePrivate()) {
beginEndln("isPackagePrivate");
}
if (doc.isStatic()) {
beginEndln("isStatic");
}
if (doc.isFinal()) {
beginEndln("isFinal");
}
if (doc instanceof MethodDoc) {
MethodDoc methodDoc = (MethodDoc) doc;
if (methodDoc.isAbstract()) {
beginEndln("isAbstract");
}
if (methodDoc.isSynchronized()) {
beginEndln("isSynchronized");
}
}
}Example 18
| Project: Sesat-master File: ConfigElement.java View source code |
private void build(final ClassDoc klass) {
if (klass != null) {
final MethodDoc[] methods = klass.methods();
for (int i = 0; i < methods.length; i++) {
final MethodDoc methodDoc = methods[i];
if (!attribNames.contains(methodDoc.name()) && (methodDoc.name().startsWith("set") || methodDoc.name().startsWith("add"))) {
final Parameter[] parameters = methodDoc.parameters();
if (parameters.length == 1) {
attribNames.add(methodDoc.name());
attributes.add(new ConfigAttribute(methodDoc));
}
}
}
build(klass.superclass());
}
}Example 19
| Project: axis2-java-master File: ResourceInfoDoclet.java View source code |
public static boolean start(RootDoc root) throws IOException {
parseOptions(root.options());
ResourceInfo resourceInfo = new ResourceInfo();
for (ClassDoc clazz : root.classes()) {
Resource resource = null;
for (MethodDoc method : clazz.methods()) {
if (getAnnotation(method, "org.apache.axis2.transport.testkit.tests.Setup") != null) {
if (resource == null) {
resource = new Resource(clazz.qualifiedName());
}
ParamTag[] paramTags = method.paramTags();
for (Parameter parameter : method.parameters()) {
Type type = parameter.type();
String name = parameter.name();
String comment = null;
for (ParamTag paramTag : paramTags) {
if (paramTag.parameterName().equals(name)) {
comment = paramTag.parameterComment();
break;
}
}
if (comment == null) {
comment = getFirstSentence(root.classNamed(type.qualifiedTypeName()));
}
resource.addDependency(type.qualifiedTypeName(), type.dimension().equals("[]") ? "0..*" : "1", comment);
}
}
}
if (resource != null) {
resourceInfo.addResource(resource);
}
}
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(outFile));
out.writeObject(resourceInfo);
out.close();
return true;
}Example 20
| Project: classlib6-master File: StubSkeletonWriter.java View source code |
/**
* Writes the stub method for the remote method with the given
* operation number.
**/
private void writeStubMethod(IndentingWriter p, int opnum) throws IOException {
RemoteClass.Method method = remoteMethods[opnum];
MethodDoc methodDoc = method.methodDoc();
String methodName = methodDoc.name();
Type[] paramTypes = method.parameterTypes();
String paramNames[] = nameParameters(paramTypes);
Type returnType = methodDoc.returnType();
ClassDoc[] exceptions = method.exceptionTypes();
/*
* Declare stub method; throw exceptions declared in remote
* interface(s).
*/
p.pln("// implementation of " + Util.getFriendlyUnqualifiedSignature(methodDoc));
p.p("public " + returnType.toString() + " " + methodName + "(");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(paramTypes[i].toString() + " " + paramNames[i]);
}
p.plnI(")");
if (exceptions.length > 0) {
p.p("throws ");
for (int i = 0; i < exceptions.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(exceptions[i].qualifiedName());
}
p.pln();
}
p.pOlnI("{");
/*
* The RemoteRef.invoke methods throw Exception, but unless
* this stub method throws Exception as well, we must catch
* Exceptions thrown from the invocation. So we must catch
* Exception and rethrow something we can throw:
* UnexpectedException, which is a subclass of
* RemoteException. But for any subclasses of Exception that
* we can throw, like RemoteException, RuntimeException, and
* any of the exceptions declared by this stub method, we want
* them to pass through unmodified, so first we must catch any
* such exceptions and rethrow them directly.
*
* We have to be careful generating the rethrowing catch
* blocks here, because javac will flag an error if there are
* any unreachable catch blocks, i.e. if the catch of an
* exception class follows a previous catch of it or of one of
* its superclasses. The following method invocation takes
* care of these details.
*/
List<ClassDoc> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
* does not declare java.lang.Exception), put the entire stub
* method in a try block.
*/
if (catchList.size() > 0) {
p.plnI("try {");
}
if (version == StubVersion.VCOMPAT) {
p.plnI("if (useNewInvoke) {");
}
if (version == StubVersion.VCOMPAT || version == StubVersion.V1_2) {
if (!Util.isVoid(returnType)) {
// REMIND: why $?
p.p("Object $result = ");
}
p.p("ref.invoke(this, " + methodFieldNames[opnum] + ", ");
if (paramTypes.length > 0) {
p.p("new java.lang.Object[] {");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0)
p.p(", ");
p.p(wrapArgumentCode(paramTypes[i], paramNames[i]));
}
p.p("}");
} else {
p.p("null");
}
p.pln(", " + method.methodHash() + "L);");
if (!Util.isVoid(returnType)) {
p.pln("return " + unwrapArgumentCode(returnType, "$result") + ";");
}
}
if (version == StubVersion.VCOMPAT) {
p.pOlnI("} else {");
}
if (version == StubVersion.V1_1 || version == StubVersion.VCOMPAT) {
p.pln(REMOTE_CALL + " call = ref.newCall((" + REMOTE_OBJECT + ") this, operations, " + opnum + ", interfaceHash);");
if (paramTypes.length > 0) {
p.plnI("try {");
p.pln("java.io.ObjectOutput out = call.getOutputStream();");
writeMarshalArguments(p, "out", paramTypes, paramNames);
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + MARSHAL_EXCEPTION + "(\"error marshalling arguments\", e);");
p.pOln("}");
}
p.pln("ref.invoke(call);");
if (Util.isVoid(returnType)) {
p.pln("ref.done(call);");
} else {
p.pln(returnType.toString() + " $result;");
// REMIND: why $?
p.plnI("try {");
p.pln("java.io.ObjectInput in = call.getInputStream();");
boolean objectRead = writeUnmarshalArgument(p, "in", returnType, "$result");
p.pln(";");
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
/*
* If any only if readObject has been invoked, we must catch
* ClassNotFoundException as well as IOException.
*/
if (objectRead) {
p.pOlnI("} catch (java.lang.ClassNotFoundException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
}
p.pOlnI("} finally {");
p.pln("ref.done(call);");
p.pOln("}");
p.pln("return $result;");
}
}
if (version == StubVersion.VCOMPAT) {
// end if/else (useNewInvoke) block
p.pOln("}");
}
/*
* If we need to catch any particular exceptions, finally write
* the catch blocks for them, rethrow any other Exceptions with an
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
for (ClassDoc catchClass : catchList) {
p.pOlnI("} catch (" + catchClass.qualifiedName() + " e) {");
p.pln("throw e;");
}
p.pOlnI("} catch (java.lang.Exception e) {");
p.pln("throw new " + UNEXPECTED_EXCEPTION + "(\"undeclared checked exception\", e);");
// end try/catch block
p.pOln("}");
}
// end stub method
p.pOln("}");
}Example 21
| Project: ikvm-openjdk-master File: StubSkeletonWriter.java View source code |
/**
* Writes the stub method for the remote method with the given
* operation number.
**/
private void writeStubMethod(IndentingWriter p, int opnum) throws IOException {
RemoteClass.Method method = remoteMethods[opnum];
MethodDoc methodDoc = method.methodDoc();
String methodName = methodDoc.name();
Type[] paramTypes = method.parameterTypes();
String paramNames[] = nameParameters(paramTypes);
Type returnType = methodDoc.returnType();
ClassDoc[] exceptions = method.exceptionTypes();
/*
* Declare stub method; throw exceptions declared in remote
* interface(s).
*/
p.pln("// implementation of " + Util.getFriendlyUnqualifiedSignature(methodDoc));
p.p("public " + returnType.toString() + " " + methodName + "(");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(paramTypes[i].toString() + " " + paramNames[i]);
}
p.plnI(")");
if (exceptions.length > 0) {
p.p("throws ");
for (int i = 0; i < exceptions.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(exceptions[i].qualifiedName());
}
p.pln();
}
p.pOlnI("{");
/*
* The RemoteRef.invoke methods throw Exception, but unless
* this stub method throws Exception as well, we must catch
* Exceptions thrown from the invocation. So we must catch
* Exception and rethrow something we can throw:
* UnexpectedException, which is a subclass of
* RemoteException. But for any subclasses of Exception that
* we can throw, like RemoteException, RuntimeException, and
* any of the exceptions declared by this stub method, we want
* them to pass through unmodified, so first we must catch any
* such exceptions and rethrow them directly.
*
* We have to be careful generating the rethrowing catch
* blocks here, because javac will flag an error if there are
* any unreachable catch blocks, i.e. if the catch of an
* exception class follows a previous catch of it or of one of
* its superclasses. The following method invocation takes
* care of these details.
*/
List<ClassDoc> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
* does not declare java.lang.Exception), put the entire stub
* method in a try block.
*/
if (catchList.size() > 0) {
p.plnI("try {");
}
if (version == StubVersion.VCOMPAT) {
p.plnI("if (useNewInvoke) {");
}
if (version == StubVersion.VCOMPAT || version == StubVersion.V1_2) {
if (!Util.isVoid(returnType)) {
// REMIND: why $?
p.p("Object $result = ");
}
p.p("ref.invoke(this, " + methodFieldNames[opnum] + ", ");
if (paramTypes.length > 0) {
p.p("new java.lang.Object[] {");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0)
p.p(", ");
p.p(wrapArgumentCode(paramTypes[i], paramNames[i]));
}
p.p("}");
} else {
p.p("null");
}
p.pln(", " + method.methodHash() + "L);");
if (!Util.isVoid(returnType)) {
p.pln("return " + unwrapArgumentCode(returnType, "$result") + ";");
}
}
if (version == StubVersion.VCOMPAT) {
p.pOlnI("} else {");
}
if (version == StubVersion.V1_1 || version == StubVersion.VCOMPAT) {
p.pln(REMOTE_CALL + " call = ref.newCall((" + REMOTE_OBJECT + ") this, operations, " + opnum + ", interfaceHash);");
if (paramTypes.length > 0) {
p.plnI("try {");
p.pln("java.io.ObjectOutput out = call.getOutputStream();");
writeMarshalArguments(p, "out", paramTypes, paramNames);
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + MARSHAL_EXCEPTION + "(\"error marshalling arguments\", e);");
p.pOln("}");
}
p.pln("ref.invoke(call);");
if (Util.isVoid(returnType)) {
p.pln("ref.done(call);");
} else {
p.pln(returnType.toString() + " $result;");
// REMIND: why $?
p.plnI("try {");
p.pln("java.io.ObjectInput in = call.getInputStream();");
boolean objectRead = writeUnmarshalArgument(p, "in", returnType, "$result");
p.pln(";");
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
/*
* If any only if readObject has been invoked, we must catch
* ClassNotFoundException as well as IOException.
*/
if (objectRead) {
p.pOlnI("} catch (java.lang.ClassNotFoundException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
}
p.pOlnI("} finally {");
p.pln("ref.done(call);");
p.pOln("}");
p.pln("return $result;");
}
}
if (version == StubVersion.VCOMPAT) {
// end if/else (useNewInvoke) block
p.pOln("}");
}
/*
* If we need to catch any particular exceptions, finally write
* the catch blocks for them, rethrow any other Exceptions with an
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
for (ClassDoc catchClass : catchList) {
p.pOlnI("} catch (" + catchClass.qualifiedName() + " e) {");
p.pln("throw e;");
}
p.pOlnI("} catch (java.lang.Exception e) {");
p.pln("throw new " + UNEXPECTED_EXCEPTION + "(\"undeclared checked exception\", e);");
// end try/catch block
p.pOln("}");
}
// end stub method
p.pOln("}");
}Example 22
| Project: jdk7u-jdk-master File: StubSkeletonWriter.java View source code |
/**
* Writes the stub method for the remote method with the given
* operation number.
**/
private void writeStubMethod(IndentingWriter p, int opnum) throws IOException {
RemoteClass.Method method = remoteMethods[opnum];
MethodDoc methodDoc = method.methodDoc();
String methodName = methodDoc.name();
Type[] paramTypes = method.parameterTypes();
String paramNames[] = nameParameters(paramTypes);
Type returnType = methodDoc.returnType();
ClassDoc[] exceptions = method.exceptionTypes();
/*
* Declare stub method; throw exceptions declared in remote
* interface(s).
*/
p.pln("// implementation of " + Util.getFriendlyUnqualifiedSignature(methodDoc));
p.p("public " + returnType.toString() + " " + methodName + "(");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(paramTypes[i].toString() + " " + paramNames[i]);
}
p.plnI(")");
if (exceptions.length > 0) {
p.p("throws ");
for (int i = 0; i < exceptions.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(exceptions[i].qualifiedName());
}
p.pln();
}
p.pOlnI("{");
/*
* The RemoteRef.invoke methods throw Exception, but unless
* this stub method throws Exception as well, we must catch
* Exceptions thrown from the invocation. So we must catch
* Exception and rethrow something we can throw:
* UnexpectedException, which is a subclass of
* RemoteException. But for any subclasses of Exception that
* we can throw, like RemoteException, RuntimeException, and
* any of the exceptions declared by this stub method, we want
* them to pass through unmodified, so first we must catch any
* such exceptions and rethrow them directly.
*
* We have to be careful generating the rethrowing catch
* blocks here, because javac will flag an error if there are
* any unreachable catch blocks, i.e. if the catch of an
* exception class follows a previous catch of it or of one of
* its superclasses. The following method invocation takes
* care of these details.
*/
List<ClassDoc> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
* does not declare java.lang.Exception), put the entire stub
* method in a try block.
*/
if (catchList.size() > 0) {
p.plnI("try {");
}
if (version == StubVersion.VCOMPAT) {
p.plnI("if (useNewInvoke) {");
}
if (version == StubVersion.VCOMPAT || version == StubVersion.V1_2) {
if (!Util.isVoid(returnType)) {
// REMIND: why $?
p.p("Object $result = ");
}
p.p("ref.invoke(this, " + methodFieldNames[opnum] + ", ");
if (paramTypes.length > 0) {
p.p("new java.lang.Object[] {");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0)
p.p(", ");
p.p(wrapArgumentCode(paramTypes[i], paramNames[i]));
}
p.p("}");
} else {
p.p("null");
}
p.pln(", " + method.methodHash() + "L);");
if (!Util.isVoid(returnType)) {
p.pln("return " + unwrapArgumentCode(returnType, "$result") + ";");
}
}
if (version == StubVersion.VCOMPAT) {
p.pOlnI("} else {");
}
if (version == StubVersion.V1_1 || version == StubVersion.VCOMPAT) {
p.pln(REMOTE_CALL + " call = ref.newCall((" + REMOTE_OBJECT + ") this, operations, " + opnum + ", interfaceHash);");
if (paramTypes.length > 0) {
p.plnI("try {");
p.pln("java.io.ObjectOutput out = call.getOutputStream();");
writeMarshalArguments(p, "out", paramTypes, paramNames);
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + MARSHAL_EXCEPTION + "(\"error marshalling arguments\", e);");
p.pOln("}");
}
p.pln("ref.invoke(call);");
if (Util.isVoid(returnType)) {
p.pln("ref.done(call);");
} else {
p.pln(returnType.toString() + " $result;");
// REMIND: why $?
p.plnI("try {");
p.pln("java.io.ObjectInput in = call.getInputStream();");
boolean objectRead = writeUnmarshalArgument(p, "in", returnType, "$result");
p.pln(";");
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
/*
* If any only if readObject has been invoked, we must catch
* ClassNotFoundException as well as IOException.
*/
if (objectRead) {
p.pOlnI("} catch (java.lang.ClassNotFoundException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
}
p.pOlnI("} finally {");
p.pln("ref.done(call);");
p.pOln("}");
p.pln("return $result;");
}
}
if (version == StubVersion.VCOMPAT) {
// end if/else (useNewInvoke) block
p.pOln("}");
}
/*
* If we need to catch any particular exceptions, finally write
* the catch blocks for them, rethrow any other Exceptions with an
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
for (ClassDoc catchClass : catchList) {
p.pOlnI("} catch (" + catchClass.qualifiedName() + " e) {");
p.pln("throw e;");
}
p.pOlnI("} catch (java.lang.Exception e) {");
p.pln("throw new " + UNEXPECTED_EXCEPTION + "(\"undeclared checked exception\", e);");
// end try/catch block
p.pOln("}");
}
// end stub method
p.pOln("}");
}Example 23
| Project: jersey-1.x-old-master File: ResourceDoclet.java View source code |
/**
* Start the doclet.
*
* @param root
* @return true if no exception is thrown
*/
public static boolean start(RootDoc root) {
final String output = getOptionArg(root.options(), OPTION_OUTPUT);
final String classpath = getOptionArg(root.options(), OPTION_CLASSPATH);
// LOG.info( "Have classpath: " + classpath );
final String[] classpathElements = classpath.split(":");
final ClassLoader cl = Thread.currentThread().getContextClassLoader();
final ClassLoader ncl = new Loader(classpathElements, ResourceDoclet.class.getClassLoader());
Thread.currentThread().setContextClassLoader(ncl);
final String docProcessorOption = getOptionArg(root.options(), OPTION_DOC_PROCESSORS);
final String[] docProcessors = docProcessorOption != null ? docProcessorOption.split(":") : null;
final DocProcessorWrapper docProcessor = new DocProcessorWrapper();
try {
if (docProcessors != null && docProcessors.length > 0) {
final Class<?> clazz = Class.forName(docProcessors[0], true, Thread.currentThread().getContextClassLoader());
final Class<? extends DocProcessor> dpClazz = clazz.asSubclass(DocProcessor.class);
docProcessor.add(dpClazz.newInstance());
}
} catch (Exception e) {
LOG.log(Level.SEVERE, "Could not load docProcessors " + docProcessorOption, e);
}
try {
final ResourceDocType result = new ResourceDocType();
final ClassDoc[] classes = root.classes();
for (ClassDoc classDoc : classes) {
LOG.fine("Writing class " + classDoc.qualifiedTypeName());
final ClassDocType classDocType = new ClassDocType();
classDocType.setClassName(classDoc.qualifiedTypeName());
classDocType.setCommentText(classDoc.commentText());
docProcessor.processClassDoc(classDoc, classDocType);
for (MethodDoc methodDoc : classDoc.methods()) {
final MethodDocType methodDocType = new MethodDocType();
methodDocType.setMethodName(methodDoc.name());
methodDocType.setCommentText(methodDoc.commentText());
docProcessor.processMethodDoc(methodDoc, methodDocType);
addParamDocs(methodDoc, methodDocType, docProcessor);
addRequestRepresentationDoc(methodDoc, methodDocType);
addResponseDoc(methodDoc, methodDocType);
classDocType.getMethodDocs().add(methodDocType);
}
result.getDocs().add(classDocType);
}
try {
final Class<?>[] clazzes = getJAXBContextClasses(result, docProcessor);
final JAXBContext c = JAXBContext.newInstance(clazzes);
final Marshaller m = c.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
final OutputStream out = new BufferedOutputStream(new FileOutputStream(output));
final String[] cdataElements = getCDataElements(docProcessor);
final XMLSerializer serializer = getXMLSerializer(out, cdataElements);
m.marshal(result, serializer);
out.close();
LOG.info("Wrote " + output);
} catch (Exception e) {
LOG.log(Level.SEVERE, "Could not serialize ResourceDoc.", e);
return false;
}
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
return true;
}Example 24
| Project: jersey-old-master File: ResourceDoclet.java View source code |
/**
* Start the doclet.
*
* @param root
* @return true if no exception is thrown
*/
public static boolean start(RootDoc root) {
final String output = getOptionArg(root.options(), OPTION_OUTPUT);
final String classpath = getOptionArg(root.options(), OPTION_CLASSPATH);
// LOG.info( "Have classpatch: " + classpath );
final String[] classpathElements = classpath.split(":");
final ClassLoader cl = Thread.currentThread().getContextClassLoader();
final ClassLoader ncl = new Loader(classpathElements, ResourceDoclet.class.getClassLoader());
Thread.currentThread().setContextClassLoader(ncl);
final String docProcessorOption = getOptionArg(root.options(), OPTION_DOC_PROCESSORS);
final String[] docProcessors = docProcessorOption != null ? docProcessorOption.split(":") : null;
final DocProcessorWrapper docProcessor = new DocProcessorWrapper();
try {
if (docProcessors != null && docProcessors.length > 0) {
final Class<?> clazz = Class.forName(docProcessors[0], true, Thread.currentThread().getContextClassLoader());
final Class<? extends DocProcessor> dpClazz = clazz.asSubclass(DocProcessor.class);
docProcessor.add(dpClazz.newInstance());
}
} catch (Exception e) {
LOG.log(Level.SEVERE, "Could not load docProcessors " + docProcessorOption, e);
}
try {
final ResourceDocType result = new ResourceDocType();
final ClassDoc[] classes = root.classes();
for (ClassDoc classDoc : classes) {
LOG.fine("Writing class " + classDoc.qualifiedTypeName());
final ClassDocType classDocType = new ClassDocType();
classDocType.setClassName(classDoc.qualifiedTypeName());
classDocType.setCommentText(classDoc.commentText());
docProcessor.processClassDoc(classDoc, classDocType);
for (MethodDoc methodDoc : classDoc.methods()) {
final MethodDocType methodDocType = new MethodDocType();
methodDocType.setMethodName(methodDoc.name());
methodDocType.setCommentText(methodDoc.commentText());
docProcessor.processMethodDoc(methodDoc, methodDocType);
addParamDocs(methodDoc, methodDocType, docProcessor);
addRequestRepresentationDoc(methodDoc, methodDocType);
addResponseDoc(methodDoc, methodDocType);
classDocType.getMethodDocs().add(methodDocType);
}
result.getDocs().add(classDocType);
}
try {
final Class<?>[] clazzes = getJAXBContextClasses(result, docProcessor);
final JAXBContext c = JAXBContext.newInstance(clazzes);
final Marshaller m = c.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
final OutputStream out = new BufferedOutputStream(new FileOutputStream(output));
final String[] cdataElements = getCDataElements(docProcessor);
final XMLSerializer serializer = getXMLSerializer(out, cdataElements);
m.marshal(result, serializer);
out.close();
LOG.info("Wrote " + output);
} catch (Exception e) {
LOG.log(Level.SEVERE, "Could not serialize ResourceDoc.", e);
return false;
}
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
return true;
}Example 25
| Project: lemma-master File: JavacodeReader.java View source code |
public String[] readSource(Doc doc) {
File file = doc.position().file();
if (doc instanceof ClassDoc) {
ClassDoc classDoc = (ClassDoc) doc;
// If it's a nested class, read only the lines of that nested class source
if (classDoc.containingClass() == null) {
log.finest("Doc is referencing a root type declaration: " + doc.name());
return handler.getContent(file, null);
} else {
String nestedClassName = classDoc.simpleTypeName();
log.finest("Doc is referencing a nested type declaration: " + nestedClassName);
return handler.getContent(file, getLineRangeParser(file).getTypesLineRange().get(nestedClassName));
}
} else if (doc instanceof PackageDoc) {
// For a package we return everything
log.finest("Doc is referencing a package: " + doc.name());
return handler.getContent(file, null);
} else if (doc instanceof ExecutableMemberDoc) {
// For methods we return the lines of the method source (signature matching is complex though)
log.finest("Doc is referencing method declaration: " + doc.name());
return handler.getContent(file, getMethodLineRange(file, (MethodDoc) doc));
} else {
log.warning("Unknown doc type/reference, not reading any source: " + doc);
}
return new String[0];
}Example 26
| Project: ManagedRuntimeInitiative-master File: StubSkeletonWriter.java View source code |
/**
* Writes the stub method for the remote method with the given
* operation number.
**/
private void writeStubMethod(IndentingWriter p, int opnum) throws IOException {
RemoteClass.Method method = remoteMethods[opnum];
MethodDoc methodDoc = method.methodDoc();
String methodName = methodDoc.name();
Type[] paramTypes = method.parameterTypes();
String paramNames[] = nameParameters(paramTypes);
Type returnType = methodDoc.returnType();
ClassDoc[] exceptions = method.exceptionTypes();
/*
* Declare stub method; throw exceptions declared in remote
* interface(s).
*/
p.pln("// implementation of " + Util.getFriendlyUnqualifiedSignature(methodDoc));
p.p("public " + returnType.toString() + " " + methodName + "(");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(paramTypes[i].toString() + " " + paramNames[i]);
}
p.plnI(")");
if (exceptions.length > 0) {
p.p("throws ");
for (int i = 0; i < exceptions.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(exceptions[i].qualifiedName());
}
p.pln();
}
p.pOlnI("{");
/*
* The RemoteRef.invoke methods throw Exception, but unless
* this stub method throws Exception as well, we must catch
* Exceptions thrown from the invocation. So we must catch
* Exception and rethrow something we can throw:
* UnexpectedException, which is a subclass of
* RemoteException. But for any subclasses of Exception that
* we can throw, like RemoteException, RuntimeException, and
* any of the exceptions declared by this stub method, we want
* them to pass through unmodified, so first we must catch any
* such exceptions and rethrow them directly.
*
* We have to be careful generating the rethrowing catch
* blocks here, because javac will flag an error if there are
* any unreachable catch blocks, i.e. if the catch of an
* exception class follows a previous catch of it or of one of
* its superclasses. The following method invocation takes
* care of these details.
*/
List<ClassDoc> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
* does not declare java.lang.Exception), put the entire stub
* method in a try block.
*/
if (catchList.size() > 0) {
p.plnI("try {");
}
if (version == StubVersion.VCOMPAT) {
p.plnI("if (useNewInvoke) {");
}
if (version == StubVersion.VCOMPAT || version == StubVersion.V1_2) {
if (!Util.isVoid(returnType)) {
// REMIND: why $?
p.p("Object $result = ");
}
p.p("ref.invoke(this, " + methodFieldNames[opnum] + ", ");
if (paramTypes.length > 0) {
p.p("new java.lang.Object[] {");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0)
p.p(", ");
p.p(wrapArgumentCode(paramTypes[i], paramNames[i]));
}
p.p("}");
} else {
p.p("null");
}
p.pln(", " + method.methodHash() + "L);");
if (!Util.isVoid(returnType)) {
p.pln("return " + unwrapArgumentCode(returnType, "$result") + ";");
}
}
if (version == StubVersion.VCOMPAT) {
p.pOlnI("} else {");
}
if (version == StubVersion.V1_1 || version == StubVersion.VCOMPAT) {
p.pln(REMOTE_CALL + " call = ref.newCall((" + REMOTE_OBJECT + ") this, operations, " + opnum + ", interfaceHash);");
if (paramTypes.length > 0) {
p.plnI("try {");
p.pln("java.io.ObjectOutput out = call.getOutputStream();");
writeMarshalArguments(p, "out", paramTypes, paramNames);
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + MARSHAL_EXCEPTION + "(\"error marshalling arguments\", e);");
p.pOln("}");
}
p.pln("ref.invoke(call);");
if (Util.isVoid(returnType)) {
p.pln("ref.done(call);");
} else {
p.pln(returnType.toString() + " $result;");
// REMIND: why $?
p.plnI("try {");
p.pln("java.io.ObjectInput in = call.getInputStream();");
boolean objectRead = writeUnmarshalArgument(p, "in", returnType, "$result");
p.pln(";");
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
/*
* If any only if readObject has been invoked, we must catch
* ClassNotFoundException as well as IOException.
*/
if (objectRead) {
p.pOlnI("} catch (java.lang.ClassNotFoundException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
}
p.pOlnI("} finally {");
p.pln("ref.done(call);");
p.pOln("}");
p.pln("return $result;");
}
}
if (version == StubVersion.VCOMPAT) {
// end if/else (useNewInvoke) block
p.pOln("}");
}
/*
* If we need to catch any particular exceptions, finally write
* the catch blocks for them, rethrow any other Exceptions with an
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
for (ClassDoc catchClass : catchList) {
p.pOlnI("} catch (" + catchClass.qualifiedName() + " e) {");
p.pln("throw e;");
}
p.pOlnI("} catch (java.lang.Exception e) {");
p.pln("throw new " + UNEXPECTED_EXCEPTION + "(\"undeclared checked exception\", e);");
// end try/catch block
p.pOln("}");
}
// end stub method
p.pOln("}");
}Example 27
| Project: openjdk-master File: StubSkeletonWriter.java View source code |
/**
* Writes the stub method for the remote method with the given
* operation number.
**/
private void writeStubMethod(IndentingWriter p, int opnum) throws IOException {
RemoteClass.Method method = remoteMethods[opnum];
MethodDoc methodDoc = method.methodDoc();
String methodName = methodDoc.name();
Type[] paramTypes = method.parameterTypes();
String paramNames[] = nameParameters(paramTypes);
Type returnType = methodDoc.returnType();
ClassDoc[] exceptions = method.exceptionTypes();
/*
* Declare stub method; throw exceptions declared in remote
* interface(s).
*/
p.pln("// implementation of " + Util.getFriendlyUnqualifiedSignature(methodDoc));
p.p("public " + returnType.toString() + " " + methodName + "(");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(paramTypes[i].toString() + " " + paramNames[i]);
}
p.plnI(")");
if (exceptions.length > 0) {
p.p("throws ");
for (int i = 0; i < exceptions.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(exceptions[i].qualifiedName());
}
p.pln();
}
p.pOlnI("{");
/*
* The RemoteRef.invoke methods throw Exception, but unless
* this stub method throws Exception as well, we must catch
* Exceptions thrown from the invocation. So we must catch
* Exception and rethrow something we can throw:
* UnexpectedException, which is a subclass of
* RemoteException. But for any subclasses of Exception that
* we can throw, like RemoteException, RuntimeException, and
* any of the exceptions declared by this stub method, we want
* them to pass through unmodified, so first we must catch any
* such exceptions and rethrow them directly.
*
* We have to be careful generating the rethrowing catch
* blocks here, because javac will flag an error if there are
* any unreachable catch blocks, i.e. if the catch of an
* exception class follows a previous catch of it or of one of
* its superclasses. The following method invocation takes
* care of these details.
*/
List<ClassDoc> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
* does not declare java.lang.Exception), put the entire stub
* method in a try block.
*/
if (catchList.size() > 0) {
p.plnI("try {");
}
if (version == StubVersion.VCOMPAT) {
p.plnI("if (useNewInvoke) {");
}
if (version == StubVersion.VCOMPAT || version == StubVersion.V1_2) {
if (!Util.isVoid(returnType)) {
// REMIND: why $?
p.p("Object $result = ");
}
p.p("ref.invoke(this, " + methodFieldNames[opnum] + ", ");
if (paramTypes.length > 0) {
p.p("new java.lang.Object[] {");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0)
p.p(", ");
p.p(wrapArgumentCode(paramTypes[i], paramNames[i]));
}
p.p("}");
} else {
p.p("null");
}
p.pln(", " + method.methodHash() + "L);");
if (!Util.isVoid(returnType)) {
p.pln("return " + unwrapArgumentCode(returnType, "$result") + ";");
}
}
if (version == StubVersion.VCOMPAT) {
p.pOlnI("} else {");
}
if (version == StubVersion.V1_1 || version == StubVersion.VCOMPAT) {
p.pln(REMOTE_CALL + " call = ref.newCall((" + REMOTE_OBJECT + ") this, operations, " + opnum + ", interfaceHash);");
if (paramTypes.length > 0) {
p.plnI("try {");
p.pln("java.io.ObjectOutput out = call.getOutputStream();");
writeMarshalArguments(p, "out", paramTypes, paramNames);
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + MARSHAL_EXCEPTION + "(\"error marshalling arguments\", e);");
p.pOln("}");
}
p.pln("ref.invoke(call);");
if (Util.isVoid(returnType)) {
p.pln("ref.done(call);");
} else {
p.pln(returnType.toString() + " $result;");
// REMIND: why $?
p.plnI("try {");
p.pln("java.io.ObjectInput in = call.getInputStream();");
boolean objectRead = writeUnmarshalArgument(p, "in", returnType, "$result");
p.pln(";");
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
/*
* If any only if readObject has been invoked, we must catch
* ClassNotFoundException as well as IOException.
*/
if (objectRead) {
p.pOlnI("} catch (java.lang.ClassNotFoundException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
}
p.pOlnI("} finally {");
p.pln("ref.done(call);");
p.pOln("}");
p.pln("return $result;");
}
}
if (version == StubVersion.VCOMPAT) {
// end if/else (useNewInvoke) block
p.pOln("}");
}
/*
* If we need to catch any particular exceptions, finally write
* the catch blocks for them, rethrow any other Exceptions with an
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
for (ClassDoc catchClass : catchList) {
p.pOlnI("} catch (" + catchClass.qualifiedName() + " e) {");
p.pln("throw e;");
}
p.pOlnI("} catch (java.lang.Exception e) {");
p.pln("throw new " + UNEXPECTED_EXCEPTION + "(\"undeclared checked exception\", e);");
// end try/catch block
p.pOln("}");
}
// end stub method
p.pOln("}");
}Example 28
| Project: openjdk8-jdk-master File: StubSkeletonWriter.java View source code |
/**
* Writes the stub method for the remote method with the given
* operation number.
**/
private void writeStubMethod(IndentingWriter p, int opnum) throws IOException {
RemoteClass.Method method = remoteMethods[opnum];
MethodDoc methodDoc = method.methodDoc();
String methodName = methodDoc.name();
Type[] paramTypes = method.parameterTypes();
String paramNames[] = nameParameters(paramTypes);
Type returnType = methodDoc.returnType();
ClassDoc[] exceptions = method.exceptionTypes();
/*
* Declare stub method; throw exceptions declared in remote
* interface(s).
*/
p.pln("// implementation of " + Util.getFriendlyUnqualifiedSignature(methodDoc));
p.p("public " + returnType.toString() + " " + methodName + "(");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(paramTypes[i].toString() + " " + paramNames[i]);
}
p.plnI(")");
if (exceptions.length > 0) {
p.p("throws ");
for (int i = 0; i < exceptions.length; i++) {
if (i > 0) {
p.p(", ");
}
p.p(exceptions[i].qualifiedName());
}
p.pln();
}
p.pOlnI("{");
/*
* The RemoteRef.invoke methods throw Exception, but unless
* this stub method throws Exception as well, we must catch
* Exceptions thrown from the invocation. So we must catch
* Exception and rethrow something we can throw:
* UnexpectedException, which is a subclass of
* RemoteException. But for any subclasses of Exception that
* we can throw, like RemoteException, RuntimeException, and
* any of the exceptions declared by this stub method, we want
* them to pass through unmodified, so first we must catch any
* such exceptions and rethrow them directly.
*
* We have to be careful generating the rethrowing catch
* blocks here, because javac will flag an error if there are
* any unreachable catch blocks, i.e. if the catch of an
* exception class follows a previous catch of it or of one of
* its superclasses. The following method invocation takes
* care of these details.
*/
List<ClassDoc> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
* does not declare java.lang.Exception), put the entire stub
* method in a try block.
*/
if (catchList.size() > 0) {
p.plnI("try {");
}
if (version == StubVersion.VCOMPAT) {
p.plnI("if (useNewInvoke) {");
}
if (version == StubVersion.VCOMPAT || version == StubVersion.V1_2) {
if (!Util.isVoid(returnType)) {
// REMIND: why $?
p.p("Object $result = ");
}
p.p("ref.invoke(this, " + methodFieldNames[opnum] + ", ");
if (paramTypes.length > 0) {
p.p("new java.lang.Object[] {");
for (int i = 0; i < paramTypes.length; i++) {
if (i > 0)
p.p(", ");
p.p(wrapArgumentCode(paramTypes[i], paramNames[i]));
}
p.p("}");
} else {
p.p("null");
}
p.pln(", " + method.methodHash() + "L);");
if (!Util.isVoid(returnType)) {
p.pln("return " + unwrapArgumentCode(returnType, "$result") + ";");
}
}
if (version == StubVersion.VCOMPAT) {
p.pOlnI("} else {");
}
if (version == StubVersion.V1_1 || version == StubVersion.VCOMPAT) {
p.pln(REMOTE_CALL + " call = ref.newCall((" + REMOTE_OBJECT + ") this, operations, " + opnum + ", interfaceHash);");
if (paramTypes.length > 0) {
p.plnI("try {");
p.pln("java.io.ObjectOutput out = call.getOutputStream();");
writeMarshalArguments(p, "out", paramTypes, paramNames);
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + MARSHAL_EXCEPTION + "(\"error marshalling arguments\", e);");
p.pOln("}");
}
p.pln("ref.invoke(call);");
if (Util.isVoid(returnType)) {
p.pln("ref.done(call);");
} else {
p.pln(returnType.toString() + " $result;");
// REMIND: why $?
p.plnI("try {");
p.pln("java.io.ObjectInput in = call.getInputStream();");
boolean objectRead = writeUnmarshalArgument(p, "in", returnType, "$result");
p.pln(";");
p.pOlnI("} catch (java.io.IOException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
/*
* If any only if readObject has been invoked, we must catch
* ClassNotFoundException as well as IOException.
*/
if (objectRead) {
p.pOlnI("} catch (java.lang.ClassNotFoundException e) {");
p.pln("throw new " + UNMARSHAL_EXCEPTION + "(\"error unmarshalling return\", e);");
}
p.pOlnI("} finally {");
p.pln("ref.done(call);");
p.pOln("}");
p.pln("return $result;");
}
}
if (version == StubVersion.VCOMPAT) {
// end if/else (useNewInvoke) block
p.pOln("}");
}
/*
* If we need to catch any particular exceptions, finally write
* the catch blocks for them, rethrow any other Exceptions with an
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
for (ClassDoc catchClass : catchList) {
p.pOlnI("} catch (" + catchClass.qualifiedName() + " e) {");
p.pln("throw e;");
}
p.pOlnI("} catch (java.lang.Exception e) {");
p.pln("throw new " + UNEXPECTED_EXCEPTION + "(\"undeclared checked exception\", e);");
// end try/catch block
p.pOln("}");
}
// end stub method
p.pOln("}");
}Example 29
| Project: rest.li-master File: RestLiDoclet.java View source code |
/**
* Entry point for Javadoc Doclet.
*
* @param root {@link RootDoc} passed in by Javadoc
* @return is successful or not
*/
public static boolean start(RootDoc root) {
final DocInfo docInfo = new DocInfo();
for (ClassDoc classDoc : root.classes()) {
docInfo.setClassDoc(classDoc.qualifiedName(), classDoc);
for (MethodDoc methodDoc : classDoc.methods()) {
docInfo.setMethodDoc(MethodIdentity.create(methodDoc), methodDoc);
}
}
_currentDocLet = new RestLiDoclet(docInfo);
return true;
}Example 30
| Project: wso2-axis2-transports-master File: ResourceInfoDoclet.java View source code |
public static boolean start(RootDoc root) throws IOException {
parseOptions(root.options());
ResourceInfo resourceInfo = new ResourceInfo();
for (ClassDoc clazz : root.classes()) {
Resource resource = null;
for (MethodDoc method : clazz.methods()) {
if (getAnnotation(method, "org.apache.axis2.transport.testkit.tests.Setup") != null) {
if (resource == null) {
resource = new Resource(clazz.qualifiedName());
}
ParamTag[] paramTags = method.paramTags();
for (Parameter parameter : method.parameters()) {
Type type = parameter.type();
String name = parameter.name();
String comment = null;
for (ParamTag paramTag : paramTags) {
if (paramTag.parameterName().equals(name)) {
comment = paramTag.parameterComment();
break;
}
}
if (comment == null) {
comment = getFirstSentence(root.classNamed(type.qualifiedTypeName()));
}
resource.addDependency(type.qualifiedTypeName(), type.dimension().equals("[]") ? "0..*" : "1", comment);
}
}
}
if (resource != null) {
resourceInfo.addResource(resource);
}
}
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(outFile));
out.writeObject(resourceInfo);
out.close();
return true;
}Example 31
| Project: cloudtm-data-platform-master File: AbstractConfigHtmlGenerator.java View source code |
protected void generateTableRowForAttribute(XSAttributeDecl a, StringBuilder sb, Object beanClassInstance) {
sb.append("<tr class=\"b\">");
// name, type...
sb.append("<td>").append("<code>" + a.getName() + "</code>").append("</td>\n");
sb.append("<td>").append("<code>" + a.getType().getName() + "</code>");
boolean isRestricted = false;
XSRestrictionSimpleType restriction = a.getType().asRestriction();
Collection<? extends XSFacet> declaredFacets = restriction.getDeclaredFacets();
for (XSFacet facet : declaredFacets) {
if (facet.getName().equalsIgnoreCase("enumeration")) {
isRestricted = true;
break;
}
}
debug("attribute = " + a.getName() + "(restricted = " + isRestricted + ")", 1);
// restriction on type...
if (isRestricted) {
sb.append("* (");
for (XSFacet facet : declaredFacets) {
sb.append(facet.getValue().toString() + '|');
}
sb.deleteCharAt(sb.length() - 1);
sb.append(")</td>\n");
} else {
sb.append("</td>\n");
}
Field field = findField(beanClassInstance.getClass(), a.getName());
if (field == null) {
throw new RuntimeException("Null field for " + beanClassInstance.getClass() + " attribute " + a.getName());
}
// if default value specified in annotation use it
if (a.getDefaultValue() != null) {
debug("annotation-defined default = " + a.getDefaultValue(), 2);
sb.append("<td>").append(a.getDefaultValue().toString()).append("</td>\n");
} else {
// otherwise use reflected field and read default value
Object defaultValue = null;
try {
defaultValue = ReflectionUtil.getValue(beanClassInstance, field.getName());
if (defaultValue != null) {
sb.append("<td>").append(defaultValue.toString()).append("</td>\n");
debug("field-defined default = " + defaultValue, 2);
} else {
debug("field-defined default is null!", 2);
sb.append("<td>").append("null").append("</td>\n");
}
} catch (Exception e) {
debug("Caught exception, bean is " + beanClassInstance.getClass() + ", looking for field " + a.getName() + ", field " + field, 2);
e.printStackTrace();
sb.append("<td>").append("N/A").append("</td>\n");
}
}
// and finally description
String desc = null;
Doc docElement = null;
ConfigurationDocRef docRef = null;
if (field.isAnnotationPresent(ConfigurationDoc.class)) {
desc = field.getAnnotation(ConfigurationDoc.class).desc();
} else if (field.isAnnotationPresent(ConfigurationDocRef.class)) {
docRef = field.getAnnotation(ConfigurationDocRef.class);
docElement = findDocElement(docRef.bean(), docRef.targetElement());
desc = docElement.commentText();
}
if (desc != null) {
sb.append("<td>").append(desc).append("\n");
String htmlFile = field.getDeclaringClass().getName().replace(".", "/").replace("$", ".").concat(".html");
//overridden by ConfigurationDocRef?
if (docRef != null) {
htmlFile = docRef.bean().getName().replace(".", "/").replace("$", ".").concat(".html");
if (docElement instanceof MethodDoc) {
MethodDoc mDocElement = (MethodDoc) docElement;
Parameter[] parameters = mDocElement.parameters();
//if this is MethodDoc then docRef is pointing to a method, get targetElement
String targetElement = docRef.targetElement();
StringBuilder javadocTarget = new StringBuilder(targetElement);
javadocTarget.append("(");
for (Parameter parameter : parameters) {
javadocTarget.append(parameter.type().qualifiedTypeName()).append(",");
}
javadocTarget.deleteCharAt(javadocTarget.length() - 1);
javadocTarget.append(")");
sb.append(" (<a href=\"" + htmlFile.concat("#").concat(javadocTarget.toString()) + "\">" + "Javadoc</a>)");
}
} else {
sb.append(" (<a href=\"" + htmlFile.concat("#").concat(field.getName()) + "\">" + "Javadoc</a>)");
}
sb.append("</td>\n");
}
sb.append("</tr>\n");
}Example 32
| Project: geode-master File: UnitTestDoclet.java View source code |
/**
* Summarizes the test methods of the given class
*/
public static void document(ClassDoc c, PrintWriter pw) throws IOException {
pw.println(c.qualifiedName());
{
String comment = c.commentText();
if (comment != null && !comment.equals("")) {
pw.println("");
indent(comment, 4, pw);
pw.println("");
}
}
MethodDoc[] methods = getTestMethods(c);
for (int i = 0; i < methods.length; i++) {
MethodDoc method = methods[i];
pw.print(" ");
pw.println(method.name());
String comment = method.commentText();
if (comment != null && !comment.equals("")) {
pw.println("");
indent(comment, 6, pw);
pw.println("");
}
}
pw.println("");
}Example 33
| Project: hadaps-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 34
| Project: hadoop-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 35
| Project: hadoop-on-lustre2-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 36
| Project: hadoop-release-2.6.0-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 37
| Project: HadoopEKG-master File: RootDocProcessor.java View source code |
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 38
| Project: hbase-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
switch(methodName) {
case "classes":
return filter(((RootDoc) target).classes(), ClassDoc.class);
case "specifiedClasses":
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
case "specifiedPackages":
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
switch(methodName) {
case "methods":
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
case "fields":
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
case "innerClasses":
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
case "constructors":
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
switch(methodName) {
case "allClasses":
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
case "annotationTypes":
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
case "enums":
return filter(((PackageDoc) target).enums(), ClassDoc.class);
case "errors":
return filter(((PackageDoc) target).errors(), ClassDoc.class);
case "exceptions":
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
case "interfaces":
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
case "ordinaryClasses":
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 39
| Project: HDP-2.2-Patched-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 40
| Project: hops-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
} else {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 41
| Project: infinispan-master File: JmxDoclet.java View source code |
private static MBeanComponent toJmxComponent(ClassDoc cd) {
boolean isMBean = false;
MBeanComponent mbc = new MBeanComponent();
mbc.className = cd.qualifiedTypeName();
mbc.name = cd.typeName();
for (AnnotationDesc a : cd.annotations()) {
AnnotationTypeDoc atd = a.annotationType();
String annotationName = atd.qualifiedTypeName();
if (annotationName.equals(MBean.class.getName())) {
isMBean = true;
setNameDesc(a.elementValues(), mbc);
}
}
// now to test method level annotations
for (MethodDoc method : cd.methods()) {
for (AnnotationDesc a : method.annotations()) {
String annotationName = a.annotationType().qualifiedTypeName();
if (annotationName.equals(ManagedOperation.class.getName())) {
isMBean = true;
MBeanOperation o = new MBeanOperation();
o.name = method.name();
setNameDesc(a.elementValues(), o);
o.returnType = method.returnType().simpleTypeName();
for (Parameter p : method.parameters()) o.addParam(p.type().simpleTypeName());
mbc.operations.add(o);
} else if (annotationName.equals(ManagedAttribute.class.getName())) {
isMBean = true;
MBeanAttribute attr = new MBeanAttribute();
// if this is a getter, look at the return type
if (method.name().startsWith("get") || method.name().startsWith("is")) {
attr.type = method.returnType().simpleTypeName();
} else if (method.parameters().length > 0) {
attr.type = method.parameters()[0].type().simpleTypeName();
}
attr.name = fromBeanConvention(method.name());
setNameDesc(a.elementValues(), attr);
setWritable(a.elementValues(), attr);
mbc.attributes.add(attr);
}
}
}
// and field level annotations
for (FieldDoc field : cd.fields(false)) {
for (AnnotationDesc a : field.annotations()) {
String annotationName = a.annotationType().qualifiedTypeName();
if (annotationName.equals(ManagedAttribute.class.getName())) {
isMBean = true;
MBeanAttribute attr = new MBeanAttribute();
attr.name = field.name();
attr.type = field.type().simpleTypeName();
setNameDesc(a.elementValues(), attr);
setWritable(a.elementValues(), attr);
mbc.attributes.add(attr);
}
}
}
if (isMBean) {
Collections.sort(mbc.attributes);
Collections.sort(mbc.operations);
return mbc;
} else {
return null;
}
}Example 42
| Project: jaxrs-analyzer-master File: ResultInterpreterTest.java View source code |
@Test
@Ignore
public void testDescriptions() {
final MethodDoc methodDocMock = mock(MethodDoc.class);
when(methodDocMock.commentText()).thenReturn("Method description.");
when(methodDocMock.paramTags()).thenReturn(new ParamTag[0]);
when(methodDocMock.parameters()).thenReturn(new Parameter[0]);
final Resources expectedResult = new Resources();
expectedResult.setBasePath("path");
final ResourceMethod resourceMethod = ResourceMethodBuilder.withMethod(HttpMethod.GET, "Method description.").andQueryParam("query", "Ljava/lang/String;", null).andResponse(200, ResponseBuilder.withResponseBody(STRING_IDENTIFIER).build()).build();
expectedResult.addMethod("test", resourceMethod);
final ClassResult appPathResult = ClassResultBuilder.withApplicationPath("path/").build();
final MethodResult method = MethodResultBuilder.withResponses(HttpResponseBuilder.withStatues(200).andEntityTypes(Types.STRING).build()).andMethodDoc(methodDocMock).andQueryParam("query", "Ljava/lang/String;", null).andMethod(HttpMethod.GET).build();
final ClassResult resClassResult = ClassResultBuilder.withResourcePath("test").andMethods(method).build();
final Set<ClassResult> results = new HashSet<>(Arrays.asList(appPathResult, resClassResult));
final Resources actualResult = classUnderTest.interpret(results);
assertEquals(expectedResult, actualResult);
}Example 43
| Project: kodkod-master File: SpecificationTaglet.java View source code |
/**
* {@inheritDoc}
*/
@Override
public Content getTagletOutput(Doc doc, TagletWriter writer) throws IllegalArgumentException {
Tag[] tags = doc.tags(getName());
if (// inherit if necessary and possible
tags.length == 0 && doc instanceof MethodDoc) {
final DocFinder.Output inheritedDoc = DocFinder.search(new DocFinder.Input((MethodDoc) doc, this));
tags = inheritedDoc.holderTag == null ? tags : new Tag[] { inheritedDoc.holderTag };
}
if (tags.length == 0)
return null;
final StringBuilder out = writeHeader(new StringBuilder());
for (Tag tag : tags) {
writeTag(out, tag, writer);
}
return new RawHtml(out.toString());
}Example 44
| Project: oddjob-master File: Processor.java View source code |
/**
* Process all member fields and methods including superclasses.
*
* @param pageData
* @param classDoc
*/
void processAllMembers(WriteableBeanDoc pageData, ClassDoc classDoc) {
if (classDoc == null) {
return;
}
processAllMembers(pageData, classDoc.superclass());
FieldDoc[] fds = classDoc.fields();
for (int i = 0; i < fds.length; ++i) {
processFieldOrMethod(pageData, fds[i]);
}
MethodDoc[] mds = classDoc.methods();
for (int i = 0; i < mds.length; ++i) {
processFieldOrMethod(pageData, mds[i]);
}
}Example 45
| Project: pbase-master File: RootDocProcessor.java View source code |
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 46
| Project: rest-doclet-master File: AbstractCollector.java View source code |
/**
* Retrieves all the end point provided in the specified class doc.
* @param contextPath
* @param classDoc
* @param classMapping
* @return
*/
protected Collection<Endpoint> getAllEndpoints(String contextPath, ClassDoc classDoc, EndpointMapping classMapping) {
Collection<Endpoint> endpoints = new ArrayList<Endpoint>();
for (MethodDoc method : classDoc.methods(true)) endpoints.addAll(getEndpoint(contextPath, classMapping, method));
//Check super classes for inherited methods
if (classDoc.superclass() != null)
endpoints.addAll(getAllEndpoints(contextPath, classDoc.superclass(), classMapping));
return endpoints;
}Example 47
| Project: RESTdoclet-master File: DocTypeUtils.java View source code |
/**
* Generates a comment string from the given method, consisting of the
* method return comment and if the return type is an iggroup type, a list
* of attributes (separated by <br>
* )
*
* @param element method doc
* @return documentation string for the method
*/
public static String getReturnDoc(final MethodDoc element) {
LOG.info("Get return type documentation for method: " + element.toString());
String doc = "";
Tag[] tags = element.tags();
String typeDoc = getTypeDoc(element.returnType());
for (final Tag tag : tags) {
final String name = tag.name();
if (StringUtils.contains(name, RETURN_TAG)) {
doc = tag.text();
if (!typeDoc.isEmpty()) {
doc += "<table><tr><td>" + typeDoc + "</td></tr></table>";
}
break;
}
}
//}
return doc;
}Example 48
| Project: restx-master File: ApidocsDoclet.java View source code |
/**
* The starting point of Javadoc render.
*
* _Javadoc spec requirement._
*
* @param rootDoc input class documents
* @return success
*/
@SuppressWarnings("UnusedDeclaration")
public static boolean start(RootDoc rootDoc) {
Path targetDir = Paths.get(Options.TARGET_DIR.getOption(rootDoc.options()).or(""));
rootDoc.printNotice("generating RESTX apidocs notes in: " + targetDir + " ...");
Path apidocsTarget = targetDir.resolve("apidocs");
if (!apidocsTarget.toFile().exists()) {
apidocsTarget.toFile().mkdirs();
}
Trace trace = Options.ENABLE_TRACE.isSet(rootDoc.options()) ? new FileTrace(targetDir.resolve("apidoclet.trace").toFile()) : new NoTrace();
trace.trace("RESTX APIDOCLET " + DateTime.now());
trace.trace("target dir : " + targetDir.toAbsolutePath());
trace.trace("current dir: " + Paths.get("").toAbsolutePath());
ObjectMapper mapper = new ObjectMapper();
for (ClassDoc classDoc : rootDoc.classes()) {
ApiEntryNotes entryNotes = new ApiEntryNotes().setName(classDoc.qualifiedName());
for (MethodDoc methodDoc : classDoc.methods()) {
for (AnnotationDesc annotationDesc : methodDoc.annotations()) {
if (annotationDesc.annotationType().qualifiedName().startsWith("restx.annotations.")) {
Optional<Object> value = getAnnotationParamValue(annotationDesc.elementValues(), "value");
if (value.isPresent()) {
trace.trace(classDoc.name() + " > " + methodDoc.qualifiedName() + " > " + annotationDesc.annotationType().name());
trace.trace(asList(annotationDesc.elementValues()).toString());
trace.trace(methodDoc.commentText());
ApiOperationNotes operation = new ApiOperationNotes().setHttpMethod(annotationDesc.annotationType().name()).setPath(String.valueOf(value.get())).setNotes(methodDoc.commentText());
for (ParamTag paramTag : methodDoc.paramTags()) {
trace.trace("\t" + paramTag.parameterName() + " > " + paramTag.parameterComment());
operation.getParameters().add(new ApiParameterNotes().setName(paramTag.parameterName()).setNotes(paramTag.parameterComment()));
}
for (Tag aReturn : methodDoc.tags("return")) {
trace.trace("\t" + aReturn.name() + " > " + aReturn.text());
operation.getParameters().add(new ApiParameterNotes().setName("response").setNotes(aReturn.text()));
}
entryNotes.getOperations().add(operation);
}
}
}
}
if (!entryNotes.getOperations().isEmpty()) {
Path doc = apidocsTarget.resolve(classDoc.qualifiedName() + ".notes.json");
rootDoc.printNotice("generating RESTX API entry notes for " + classDoc.qualifiedName() + " ...");
trace.trace("generating notes in " + doc.toAbsolutePath());
try {
mapper.writeValue(doc.toFile(), entryNotes);
} catch (IOException e) {
trace.trace("can't write to api doc file " + doc.toFile() + ": " + e);
rootDoc.printError("can't write to api doc file " + doc.toFile() + ": " + e);
}
} else {
trace.trace("no operations found on " + entryNotes.getName());
}
}
if (Options.DISABLE_STANDARD_DOCLET.isSet(rootDoc.options())) {
return true;
}
return Standard.start(rootDoc);
}Example 49
| Project: spacewalk-master File: ApiDoclet.java View source code |
/**
* start the doclet
* @param root the document root
* @param docType 'jsp' or 'wiki'
* @return boolean
* @throws Exception e
*/
public static boolean start(RootDoc root, String docType) throws Exception {
ClassDoc[] classes = root.classes();
List<ClassDoc> serializers = getSerializers(classes);
List<ClassDoc> handlers = getHandlers(classes);
Map<String, String> serialMap = getSerialMap(serializers);
List<Handler> handlerList = new ArrayList<Handler>();
for (ClassDoc clas : handlers) {
Handler handler = new Handler();
if (clas.tags(XMLRPC_IGNORE).length > 0) {
continue;
}
Tag name = getFirst(clas.tags(XMLRPC_NAMESPACE));
if (name != null) {
handler.setName(name.text());
} else {
String error = "Someone didn't set " + XMLRPC_NAMESPACE + " correctly on " + clas.name();
error += " If you really did not want this handler to appear in " + "the API docs. Add @xmlrpc.ignore to the class javadoc. ";
throw new Exception(error);
}
handler.setClassName(clas.name());
Tag classDesc = getFirst(clas.tags(XMLRPC_DOC));
if (classDesc != null) {
handler.setDesc(classDesc.text());
}
for (MethodDoc method : clas.methods()) {
if (method.isPublic() && getFirst(method.tags(XMLRPC_IGNORE)) == null) {
ApiCall call = new ApiCall(method);
call.setName(method.name());
Tag methodDoc = getFirst(method.tags(XMLRPC_DOC));
if (methodDoc != null) {
if (docType.equals("docbook")) {
call.setDoc(DocBookWriter.transcode(methodDoc.text()));
} else {
call.setDoc(methodDoc.text());
}
}
for (Tag param : method.tags(XMLRPC_PARAM)) {
if (docType.equals("docbook")) {
call.addParam(DocBookWriter.transcode(param.text()));
} else {
call.addParam(param.text());
}
}
if (method.tags(DEPRECATED).length > 0) {
call.setDeprecated(true);
call.setDeprecatedReason(getFirst(method.tags(DEPRECATED)).text());
}
if (method.tags(SINCE).length > 0) {
call.setSinceAvailable(true);
call.setSinceVersion(getFirst(method.tags(SINCE)).text());
}
Tag tag = getFirst(method.tags(XMLRPC_RETURN));
if (tag != null) {
//run templating on the return value
//call.setReturnDoc(serialHelper.renderTemplate(tag.text()));
call.setReturnDoc(tag.text());
}
//Finally add the newly built api to the handler
handler.addApiCall(call);
}
}
//Then simply sort the apicalls and add the handler to our List
Collections.sort(handler.getCalls());
handlerList.add(handler);
}
Collections.sort(handlerList);
DocWriter writer;
if (docType.equals("jsp")) {
writer = new JSPWriter();
} else if (docType.equals("html")) {
writer = new HtmlWriter();
} else if (docType.equals("list")) {
writer = new ListWriter();
} else if (docType.equals("singlepage")) {
writer = new SinglePageWriter();
} else if (docType.equals("docbook")) {
writer = new DocBookWriter();
} else {
writer = new JSPWriter();
}
writer.write(handlerList, serialMap);
return true;
}Example 50
| Project: yarn-comment-master File: RootDocProcessor.java View source code |
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
if (target instanceof Doc) {
if (methodName.equals("isIncluded")) {
Doc doc = (Doc) target;
return !exclude(doc) && doc.isIncluded();
}
if (target instanceof RootDoc) {
if (methodName.equals("classes")) {
return filter(((RootDoc) target).classes(), ClassDoc.class);
} else if (methodName.equals("specifiedClasses")) {
return filter(((RootDoc) target).specifiedClasses(), ClassDoc.class);
} else if (methodName.equals("specifiedPackages")) {
return filter(((RootDoc) target).specifiedPackages(), PackageDoc.class);
}
} else if (target instanceof ClassDoc) {
if (isFiltered(args)) {
if (methodName.equals("methods")) {
return filter(((ClassDoc) target).methods(true), MethodDoc.class);
} else if (methodName.equals("fields")) {
return filter(((ClassDoc) target).fields(true), FieldDoc.class);
} else if (methodName.equals("innerClasses")) {
return filter(((ClassDoc) target).innerClasses(true), ClassDoc.class);
} else if (methodName.equals("constructors")) {
return filter(((ClassDoc) target).constructors(true), ConstructorDoc.class);
}
}
} else if (target instanceof PackageDoc) {
if (methodName.equals("allClasses")) {
if (isFiltered(args)) {
return filter(((PackageDoc) target).allClasses(true), ClassDoc.class);
} else {
return filter(((PackageDoc) target).allClasses(), ClassDoc.class);
}
} else if (methodName.equals("annotationTypes")) {
return filter(((PackageDoc) target).annotationTypes(), AnnotationTypeDoc.class);
} else if (methodName.equals("enums")) {
return filter(((PackageDoc) target).enums(), ClassDoc.class);
} else if (methodName.equals("errors")) {
return filter(((PackageDoc) target).errors(), ClassDoc.class);
} else if (methodName.equals("exceptions")) {
return filter(((PackageDoc) target).exceptions(), ClassDoc.class);
} else if (methodName.equals("interfaces")) {
return filter(((PackageDoc) target).interfaces(), ClassDoc.class);
} else if (methodName.equals("ordinaryClasses")) {
return filter(((PackageDoc) target).ordinaryClasses(), ClassDoc.class);
}
}
}
if (args != null) {
if (methodName.equals("compareTo") || methodName.equals("equals") || methodName.equals("overrides") || methodName.equals("subclassOf")) {
args[0] = unwrap(args[0]);
}
}
try {
return process(method.invoke(target, args), method.getReturnType());
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
}Example 51
| Project: com.revolsys.open-master File: DocletUtil.java View source code |
public static void documentationReturn(final XmlWriter writer, final MethodDoc method) {
final Type type = method.returnType();
if (type != null && !"void".equals(type.qualifiedTypeName())) {
Tag[] descriptionTags = null;
for (final Tag tag : method.tags()) {
if (tag.name().equals("@return")) {
descriptionTags = tag.inlineTags();
}
}
writer.startTag(HtmlElem.DIV);
writer.startTag(HtmlElem.STRONG);
writer.text("Return");
writer.endTag(HtmlElem.STRONG);
writer.endTagLn(HtmlElem.DIV);
typeNameLink(writer, type);
writer.text(" ");
description(writer, method.containingClass(), descriptionTags);
}
}Example 52
| Project: DPJ-master File: ClassDocImpl.java View source code |
/**
* Return methods in class.
* This method is overridden by AnnotationTypeDocImpl.
*
* @param filter include only the included methods if filter==true
* @return an array of MethodDocImpl for representing the visible
* methods in this class. Does not include constructors.
*/
public MethodDoc[] methods(boolean filter) {
Name.Table names = tsym.name.table;
List<MethodDocImpl> methods = List.nil();
for (Scope.Entry e = tsym.members().elems; e != null; e = e.sibling) {
if (e.sym != null && e.sym.kind == Kinds.MTH && e.sym.name != names.init) {
MethodSymbol s = (MethodSymbol) e.sym;
if (!filter || env.shouldDocument(s)) {
methods = methods.prepend(env.getMethodDoc(s));
}
}
}
//### Cache methods here?
return methods.toArray(new MethodDocImpl[methods.length()]);
}Example 53
| Project: flatpack-java-master File: DocStringsDoclet.java View source code |
private void examineClass(ClassDoc clazz) throws IOException {
JsonWriter writer = getJsonWriter(clazz);
String classKey = key(clazz);
// Possibly extract the class's contents
if (hasAnnotation(clazz, EXAMPLE_TYPE_NAME)) {
String contents = extractContents(clazz);
writer.name(classKey + ":contents");
writer.value(contents);
}
String doc = docString(clazz);
if (!doc.isEmpty()) {
writer.name(classKey);
writer.value(doc);
}
for (FieldDoc f : clazz.fields(true)) {
doc = docString(f);
if (doc.isEmpty()) {
continue;
}
writer.name(key(f));
writer.value(doc);
}
for (MethodDoc m : clazz.methods(true)) {
String methodKey = key(m);
// Possibly extract the method's contents
if (hasAnnotation(m, EXAMPLE_TYPE_NAME)) {
String contents = extractContents(m);
writer.name(methodKey + ":contents");
writer.value(contents);
}
doc = docString(m);
if (doc.isEmpty()) {
continue;
}
writer.name(methodKey);
writer.value(doc);
Map<String, Integer> namesToPositions = new HashMap<String, Integer>();
for (Parameter param : m.parameters()) {
namesToPositions.put(param.name(), namesToPositions.size());
}
for (ParamTag tag : m.paramTags()) {
Integer position = namesToPositions.get(tag.parameterName());
// Handle @param tags for non-existant parameters
if (position == null) {
continue;
}
writer.name(methodKey + "[" + position + "]");
writer.value(docString(tag));
}
}
}Example 54
| Project: maven-jellydoc-plugin-master File: TagXMLDoclet.java View source code |
/**
* Generates doc for a tag property
*/
private void propertyXML(MethodDoc methodDoc, org.jvnet.maven.jellydoc.Tag tag) throws SAXException {
if (!methodDoc.isPublic() || methodDoc.isStatic()) {
return;
}
String name = methodDoc.name();
if (!name.startsWith("set")) {
return;
}
Parameter[] parameterArray = methodDoc.parameters();
if (parameterArray == null || parameterArray.length != 1) {
return;
}
Parameter parameter = parameterArray[0];
name = name.substring(3);
name = Introspector.decapitalize(name);
if (name.equals("body") || name.equals("context") || name.equals("parent")) {
return;
}
Attribute a = tag.attribute();
a.name(name);
a.type(parameter.typeName());
if (has(methodDoc, Required.class))
a.use("required");
// maybe do more semantics, like use custom tags to denote if its required, optional etc.
// generate "doc" sub-element
docXML(methodDoc, a);
}Example 55
| Project: Prendamigo-master File: JUnitTestConverter.java View source code |
/**
* This method is required for all doclets.
*
* @return true on success.
*/
public static boolean start(RootDoc root) {
ClassDoc[] classes = root.classes();
for (ClassDoc cd : classes) {
if (!isJUnitTest(cd)) {
continue;
}
if (!cd.isAbstract())
m_classNames.add(cd.qualifiedTypeName());
File file;
if (null != cd.position().file()) {
file = cd.position().file();
} else {
file = findFileName(cd);
}
String fqn = cd.qualifiedTypeName();
int tn = fqn.indexOf(cd.typeName());
if (tn > 0) {
m_packageNames.put(file, fqn.substring(0, tn - 1));
}
m_typelines.put(file, new Integer(cd.position().line()));
MethodDoc[] methods = cd.methods();
List<MethodDoc> testMethods = Lists.newArrayList();
for (MethodDoc md : methods) {
if (isTest(md) || isSetUp(md) || isTearDown(md)) {
// Add the lines backward, so we can insert them without messing
// up their order later
testMethods.add(0, md);
}
}
m_files.put(file, testMethods);
}
return true;
}Example 56
| Project: ant-git-tasks-master File: AntTaskDoclet.java View source code |
private static void registerClassData(ClassDoc doc) {
ClassData data = new ClassData();
Scanner sc = new Scanner(doc.commentText());
data.description = sc.nextLine();
sc.close();
data.qualifiedName = doc.qualifiedTypeName();
data.simpleName = doc.name();
data.hidden = doc.isAbstract();
data.parentClassDatas.addAll(collectParentClassesNames(doc));
for (MethodDoc methodDoc : doc.methods()) {
if (!isHiddenMethodDoc(methodDoc)) {
if (isTaskAttribute(methodDoc)) {
data.attributesList.add(AttributeData.fromMethodDoc(methodDoc));
} else if (isTaskElement(methodDoc)) {
data.elementsList.add(ElementData.fromMethodDoc(methodDoc));
}
}
}
classDataMap.put(data.qualifiedName, data);
}Example 57
| Project: gwt-exporter-master File: JsDoclet.java View source code |
@Override
protected void generateOtherFiles(RootDoc rootDoc, ClassTree classTree) throws Exception {
super.generateOtherFiles(rootDoc, classTree);
HtmlDocletWriter writer = new HtmlDocletWriter(configuration, "jsdoc.html");
writer.html();
writer.head();
writer.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>");
writer.println(getCSS());
writer.headEnd();
writer.body("white", true);
ClassDoc[] classes = rootDoc.classes();
Arrays.sort(classes);
// Document static methods
List<MethodDoc> smethods = new ArrayList<MethodDoc>();
for (ClassDoc clz : classes) {
if (isExportable(clz)) {
// FIXME: implement exportoverlay somehow.
classTypeMap.put(clz.simpleTypeName(), getExportedName(clz, false, true));
if (hasStaticMethods(clz)) {
for (MethodDoc md : clz.methods()) {
if (md.isStatic() && isExportable(md)) {
smethods.add(md);
}
}
}
}
}
if (smethods.size() > 0) {
writer.h1("Exported JavaScript-API: Index of static functions");
writer.table(1, "100%", 0, 0);
java.util.Collections.sort(smethods);
for (MethodDoc md : smethods) {
writeMethod(writer, false, true, md);
}
writer.tableEnd();
}
List<ClassDoc> eclasses = new ArrayList<ClassDoc>();
for (ClassDoc clz : classes) {
if (isExportable(clz) && hasClassMethods(clz) && !isExportedClosure(clz)) {
eclasses.add(clz);
}
}
if (eclasses.size() > 0) {
// Write an index of classes
writer.h1("Exported JavaScript-API: Index of Classes");
writer.ul();
for (ClassDoc clz : eclasses) {
writer.li();
writer.println(getExportedName(clz, true, true));
}
writer.ulEnd();
// Write each class
for (ClassDoc clz : eclasses) {
String className = getExportedName(clz, false, true);
writer.h2("<div id=" + className + ">" + className + "</div>");
String comments = clz.commentText().trim();
if (!comments.isEmpty()) {
writer.println("<div class=jsdocText>" + filter(clz.commentText()) + "</div>");
}
writer.table(1, "100%", 0, 0);
writeConstructors(writer, clz);
writeMethods(writer, clz, true, isExportedAll(clz), new ArrayList<String>());
writer.tableEnd();
}
}
writer.bodyEnd();
writer.htmlEnd();
writer.flush();
writer.close();
}Example 58
| Project: gwt-exporter-old-master File: JsDoclet.java View source code |
@Override
protected void generateOtherFiles(RootDoc rootDoc, ClassTree classTree) throws Exception {
super.generateOtherFiles(rootDoc, classTree);
HtmlDocletWriter writer = new HtmlDocletWriter(configuration, "jsdoc.html");
writer.html();
writer.head();
writer.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>");
writer.println(getCSS());
writer.headEnd();
writer.body("white", true);
ClassDoc[] classes = rootDoc.classes();
Arrays.sort(classes);
// Document static methods
List<MethodDoc> smethods = new ArrayList<MethodDoc>();
for (ClassDoc clz : classes) {
if (isExportable(clz)) {
// FIXME: implement exportoverlay somehow.
classTypeMap.put(clz.simpleTypeName(), getExportedName(clz, false, true));
if (hasStaticMethods(clz)) {
for (MethodDoc md : clz.methods()) {
if (md.isStatic() && isExportable(md)) {
smethods.add(md);
}
}
}
}
}
if (smethods.size() > 0) {
writer.h1("Exported JavaScript-API: Index of static functions");
writer.table(1, "100%", 0, 0);
java.util.Collections.sort(smethods);
for (MethodDoc md : smethods) {
writeMethod(writer, false, true, md);
}
writer.tableEnd();
}
List<ClassDoc> eclasses = new ArrayList<ClassDoc>();
for (ClassDoc clz : classes) {
if (isExportable(clz) && hasClassMethods(clz) && !isExportedClosure(clz)) {
eclasses.add(clz);
}
}
if (eclasses.size() > 0) {
// Write an index of classes
writer.h1("Exported JavaScript-API: Index of Classes");
writer.ul();
for (ClassDoc clz : eclasses) {
writer.li();
writer.println(getExportedName(clz, true, true));
}
writer.ulEnd();
// Write each class
for (ClassDoc clz : eclasses) {
String className = getExportedName(clz, false, true);
writer.h2("<div id=" + className + ">" + className + "</div>");
String comments = clz.commentText().trim();
if (!comments.isEmpty()) {
writer.println("<div class=jsdocText>" + filter(clz.commentText()) + "</div>");
}
writer.table(1, "100%", 0, 0);
writeConstructors(writer, clz);
writeMethods(writer, clz, true, isExportedAll(clz), new ArrayList<String>());
writer.tableEnd();
}
}
writer.bodyEnd();
writer.htmlEnd();
writer.flush();
writer.close();
}Example 59
| Project: OpenJML-master File: MethodWriterJml.java View source code |
/**
* Write the javadoc tags (e.g. param and return tags) for the given method
* and then write any JML specifications.
*
* @param method the method being documented.
*/
// FIXME - major change in b144
// @Override
// public void writeTags(@NonNull MethodDoc method) {
// super.writeTags(method);
// writeJmlSpecs(method);
// }
//
/** Write the JML specifications for the given method.
*
* @param method the method whose specs are to be written
*/
public void writeJmlSpecs(MethodDoc method) {
if (method instanceof MethodDocImpl) {
MethodSymbol oldMethodSym = ((MethodDocImpl) method).sym;
Context context = org.jmlspecs.openjml.jmldoc.Main.jmlContext;
Name newMethodName = Names.instance(context).fromString(oldMethodSym.name.toString());
Scope.Entry e = currentClassSym.members().lookup(newMethodName);
while (!(e.sym instanceof MethodSymbol) || !match((MethodSymbol) e.sym, oldMethodSym)) {
//Scope.Entry ee = e;
e = e.sibling;
if (e == null) {
// FIXME - not found?
return;
//}
//e = ee.scope.lookup(newMethodName);
}
}
MethodSymbol newMethodSym = (MethodSymbol) e.sym;
JmlSpecs.MethodSpecs mspecs = JmlSpecs.instance(context).getSpecs(newMethodSym);
if (mspecs != null) {
// Need this if there is tag info, otherwise not // FIXME
writer.br();
String s = Utils.jmlAnnotations(newMethodSym);
if (Utils.hasSpecs(mspecs) || s.length() != 0) {
strong("JML Method Specifications: ");
writer.print(s);
writer.preNoNewLine();
writer.print(JmlPretty.write(mspecs.cases, false));
writer.preEnd();
}
for (ClassSymbol c : Utils.getSupers(currentClassSym)) {
MethodSymbol m = findSameContext(newMethodSym, c);
if (m != null) {
mspecs = JmlSpecs.instance(context).getSpecs(m);
String ss = Utils.jmlAnnotations(m);
if (Utils.hasSpecs(mspecs) || ss.length() != 0) {
strong("JML Specifications inherited from " + c + ": ");
writer.print(ss);
writer.preNoNewLine();
writer.print(JmlPretty.write(mspecs.cases, false));
writer.preEnd();
}
}
}
}
}
}Example 60
| Project: osgi-maven-master File: JsDoclet.java View source code |
@Override
protected void generateOtherFiles(RootDoc rootDoc, ClassTree classTree) throws Exception {
super.generateOtherFiles(rootDoc, classTree);
HtmlDocletWriter writer = new HtmlDocletWriter(configuration, "jsdoc.html");
writer.html();
writer.head();
writer.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>");
writer.println(getCSS());
writer.headEnd();
writer.body("white", true);
ClassDoc[] classes = rootDoc.classes();
Arrays.sort(classes);
// Document static methods
List<MethodDoc> smethods = new ArrayList<MethodDoc>();
for (ClassDoc clz : classes) {
if (isExportable(clz)) {
// FIXME: implement exportoverlay somehow.
classTypeMap.put(clz.simpleTypeName(), getExportedName(clz, false, true));
if (hasStaticMethods(clz)) {
for (MethodDoc md : clz.methods()) {
if (md.isStatic() && isExportable(md)) {
smethods.add(md);
}
}
}
}
}
if (smethods.size() > 0) {
writer.h1("Exported JavaScript-API: Index of static functions");
writer.table(1, "100%", 0, 0);
java.util.Collections.sort(smethods);
for (MethodDoc md : smethods) {
writeMethod(writer, false, true, md);
}
writer.tableEnd();
}
List<ClassDoc> eclasses = new ArrayList<ClassDoc>();
for (ClassDoc clz : classes) {
if (isExportable(clz) && hasClassMethods(clz) && !isExportedClosure(clz)) {
eclasses.add(clz);
}
}
if (eclasses.size() > 0) {
// Write an index of classes
writer.h1("Exported JavaScript-API: Index of Classes");
writer.ul();
for (ClassDoc clz : eclasses) {
writer.li();
writer.println(getExportedName(clz, true, true));
}
writer.ulEnd();
// Write each class
for (ClassDoc clz : eclasses) {
String className = getExportedName(clz, false, true);
writer.h2("<div id=" + className + ">" + className + "</div>");
String comments = clz.commentText().trim();
if (!comments.isEmpty()) {
writer.println("<div class=jsdocText>" + filter(clz.commentText()) + "</div>");
}
writer.table(1, "100%", 0, 0);
writeConstructors(writer, clz);
writeMethods(writer, clz, true, isExportedAll(clz), new ArrayList<String>());
writer.tableEnd();
}
}
writer.bodyEnd();
writer.htmlEnd();
writer.flush();
writer.close();
}Example 61
| Project: xml-doclet-master File: Parser.java View source code |
protected Interface parseInterface(ClassDoc classDoc) {
Interface interfaceNode = objectFactory.createInterface();
interfaceNode.setName(classDoc.name());
interfaceNode.setQualified(classDoc.qualifiedName());
String comment = classDoc.commentText();
if (comment.length() > 0) {
interfaceNode.setComment(comment);
}
interfaceNode.setIncluded(classDoc.isIncluded());
interfaceNode.setScope(parseScope(classDoc));
for (TypeVariable typeVariable : classDoc.typeParameters()) {
interfaceNode.getGeneric().add(parseTypeParameter(typeVariable));
}
for (Type interfaceType : classDoc.interfaceTypes()) {
interfaceNode.getInterface().add(parseTypeInfo(interfaceType));
}
for (MethodDoc method : classDoc.methods()) {
interfaceNode.getMethod().add(parseMethod(method));
}
for (AnnotationDesc annotationDesc : classDoc.annotations()) {
interfaceNode.getAnnotation().add(parseAnnotationDesc(annotationDesc, classDoc.qualifiedName()));
}
for (Tag tag : classDoc.tags()) {
interfaceNode.getTag().add(parseTag(tag));
}
for (FieldDoc field : classDoc.fields()) {
interfaceNode.getField().add(parseField(field));
}
return interfaceNode;
}Example 62
| Project: antdoclet-master File: AntDoc.java View source code |
/**
* Searches the given class for the appropriate setter or getter for the given attribute.
* This method only returns the getter if no setter is available.
* If the given class provides no method declaration, the superclasses are
* searched recursively.
*
* @param attribute
* @param methods
* @return The MethodDoc for the given attribute or null if not found
*/
private static MethodDoc getMethodFor(ClassDoc classDoc, String attribute) {
if (classDoc == null) {
return null;
}
MethodDoc result = null;
MethodDoc[] methods = classDoc.methods();
for (int i = 0; i < methods.length; i++) {
// but if the documentation is only on the "getter", use it
if (methods[i].name().equalsIgnoreCase("set" + attribute)) {
return methods[i];
} else if (methods[i].name().equalsIgnoreCase("get" + attribute)) {
result = methods[i];
}
}
if (result == null) {
return getMethodFor(classDoc.superclass(), attribute);
}
return result;
}Example 63
| Project: fawkez-old-master File: XmlDoclet.java View source code |
private void generateClassBody(ClassDoc cd) throws IOException {
generateProgramElementBody(cd);
// Interfaces
final ClassDoc[] interfaces = cd.interfaces();
for (int i = 0; i < interfaces.length; ++i) {
mOut.write("<interface");
addAttribute("name", interfaces[i].qualifiedName());
mOut.write("/>\n");
}
// InnerClasses
final ClassDoc[] innerClass = cd.innerClasses();
for (int i = 0; i < innerClass.length; ++i) {
mOut.write("<inner");
addAttribute("name", innerClass[i].qualifiedName());
mOut.write("/>\n");
}
// Fields
final FieldDoc[] fields = cd.fields();
for (int i = 0; i < fields.length; ++i) {
final FieldDoc field = fields[i];
generateFieldHeader(field);
generateFieldBody(field);
mOut.write("</field>\n");
}
// Constructors
final ConstructorDoc[] constructors = cd.constructors();
for (int i = 0; i < constructors.length; ++i) {
final ConstructorDoc constructor = constructors[i];
generateConstructorHeader(constructor);
generateConstructorBody(constructor);
mOut.write("</constructor>\n");
}
// Methods.
final MethodDoc[] methods = cd.methods();
for (int i = 0; i < methods.length; ++i) {
final MethodDoc method = methods[i];
generateMethodHeader(method);
generateMethodBody(method);
mOut.write("</method>\n");
}
}Example 64
| Project: gmf-tooling-master File: ProxyFactory.java View source code |
public ExecutableMemberDocProxy createExecutableMemberDocProxy(ExecutableMemberDoc executableMemberDoc) {
ExecutableMemberDocProxy proxy = null;
if (executableMemberDoc != null) {
proxy = (ExecutableMemberDocProxy) getProxyRegistry().getProxyForObject(executableMemberDoc);
if (proxy == null) {
if (executableMemberDoc instanceof ConstructorDoc) {
proxy = createConstructorDocProxy((ConstructorDoc) executableMemberDoc);
} else if (executableMemberDoc instanceof MethodDoc) {
proxy = createMethodDocProxy((MethodDoc) executableMemberDoc);
} else {
proxy = new ExecutableMemberDocProxy(executableMemberDoc);
ProxyFactory.getInstance().getProxyRegistry().registerProxy(executableMemberDoc, proxy);
}
}
}
return proxy;
}Example 65
| Project: jersey-master File: ResourceDoclet.java View source code |
/**
* Start the doclet.
*
* @param root the root JavaDoc document.
* @return true if no exception is thrown.
*/
public static boolean start(final RootDoc root) {
final String output = getOptionArg(root.options(), OPTION_OUTPUT);
final String classpath = getOptionArg(root.options(), OPTION_CLASSPATH);
// LOG.info( "Have classpath: " + classpath );
final String[] classpathElements = classpath.split(File.pathSeparator);
final ClassLoader cl = Thread.currentThread().getContextClassLoader();
final ClassLoader ncl = new Loader(classpathElements, ResourceDoclet.class.getClassLoader());
Thread.currentThread().setContextClassLoader(ncl);
final String docProcessorOption = getOptionArg(root.options(), OPTION_DOC_PROCESSORS);
final String[] docProcessors = docProcessorOption != null ? docProcessorOption.split(":") : null;
final DocProcessorWrapper docProcessor = new DocProcessorWrapper();
try {
if (docProcessors != null && docProcessors.length > 0) {
final Class<?> clazz = Class.forName(docProcessors[0], true, Thread.currentThread().getContextClassLoader());
final Class<? extends DocProcessor> dpClazz = clazz.asSubclass(DocProcessor.class);
docProcessor.add(dpClazz.newInstance());
}
} catch (final Exception e) {
LOG.log(Level.SEVERE, "Could not load docProcessors " + docProcessorOption, e);
}
try {
final ResourceDocType result = new ResourceDocType();
final ClassDoc[] classes = root.classes();
for (final ClassDoc classDoc : classes) {
LOG.fine("Writing class " + classDoc.qualifiedTypeName());
final ClassDocType classDocType = new ClassDocType();
classDocType.setClassName(classDoc.qualifiedTypeName());
classDocType.setCommentText(classDoc.commentText());
docProcessor.processClassDoc(classDoc, classDocType);
for (final MethodDoc methodDoc : classDoc.methods()) {
final MethodDocType methodDocType = new MethodDocType();
methodDocType.setMethodName(methodDoc.name());
methodDocType.setMethodSignature(methodDoc.signature());
methodDocType.setCommentText(methodDoc.commentText());
docProcessor.processMethodDoc(methodDoc, methodDocType);
addParamDocs(methodDoc, methodDocType, docProcessor);
addRequestRepresentationDoc(methodDoc, methodDocType);
addResponseDoc(methodDoc, methodDocType);
classDocType.getMethodDocs().add(methodDocType);
}
result.getDocs().add(classDocType);
}
try {
final Class<?>[] clazzes = getJAXBContextClasses(result, docProcessor);
final JAXBContext c = JAXBContext.newInstance(clazzes);
final Marshaller m = c.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
final OutputStream out = new BufferedOutputStream(new FileOutputStream(output));
final String[] cdataElements = getCDataElements(docProcessor);
final XMLSerializer serializer = getXMLSerializer(out, cdataElements);
m.marshal(result, serializer);
out.close();
LOG.info("Wrote " + output);
} catch (final Exception e) {
LOG.log(Level.SEVERE, "Could not serialize ResourceDoc.", e);
return false;
}
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
return true;
}Example 66
| Project: mule-devkit-master File: Converter.java View source code |
private static void initClass(ClassDoc c, ClassInfo cl) {
MethodDoc[] annotationElements;
if (c instanceof AnnotationTypeDoc) {
annotationElements = ((AnnotationTypeDoc) c).elements();
} else {
annotationElements = new MethodDoc[0];
}
cl.init(Converter.obtainType(c), Converter.convertClasses(c.interfaces()), Converter.convertTypes(c.interfaceTypes()), Converter.convertClasses(c.innerClasses()), Converter.convertMethods(c.constructors(false)), Converter.convertMethods(c.methods(false)), Converter.convertMethods(annotationElements), Converter.convertFields(c.fields(false)), Converter.convertFields(c.enumConstants()), Converter.obtainPackage(c.containingPackage()), Converter.obtainClass(c.containingClass()), Converter.obtainClass(c.superclass()), Converter.obtainType(c.superclassType()), Converter.convertAnnotationInstances(c.annotations()));
cl.setHiddenMethods(Converter.getHiddenMethods(c.methods(false)));
cl.setNonWrittenConstructors(Converter.convertNonWrittenConstructors(c.constructors(false)));
cl.init3(Converter.convertTypes(c.typeParameters()), Converter.convertClasses(c.innerClasses(false)));
}Example 67
| Project: xchain-master File: NamespaceDoclet.java View source code |
/**
* Add all the attributes for the given class to the given StringBuffer.
*
* @param doc The StringBuffer to append to.
* @param command The command to inspect.
*/
private static void appendAttributes(StringBuffer doc, ClassDoc command) {
// Get attributes from interfaces.
for (ClassDoc parentClassDoc : command.interfaces()) {
appendAttributes(doc, parentClassDoc);
}
// Get attributes from super class.
if (command.superclass() != null) {
appendAttributes(doc, command.superclass());
}
for (MethodDoc methodDoc : command.methods()) {
if (isAttribute(methodDoc)) {
AnnotationDesc annoDesc = getAnnotation(methodDoc.annotations(), Attribute.class);
doc.append(createIndent(5)).append("<tr>");
doc.append("<td>").append(getAttributeName(annoDesc)).append("</td>");
doc.append("<td>").append(methodDoc.commentText()).append("</td>");
String attributeType = getAttributeType(annoDesc);
doc.append("<td><a href=\"./attributetypes.html#").append(attributeType).append("\">").append(attributeType).append("</a></td>");
doc.append("<td>").append(getAttributeDefaultValue(annoDesc)).append("</td>");
doc.append("<td>").append(methodDoc.returnType().typeName()).append("</td>");
doc.append("</tr>\n");
}
}
}Example 68
| Project: bazooka-wo-xmldoclet-master File: XMLDoclet.java View source code |
/** * Transforms an array of methods and an array of constructor methods into XML and adds those to the host node. * * @param methods The methods. * @param constructors The constructors. * @param node The node to add the XML to. */ private static XMLNode toMethods(MethodDoc[] methods) { if (methods.length < 1) return null; // Create the <methods> node XMLNode node = new XMLNode("methods"); // Add the <method> nodes for (MethodDoc method : methods) { XMLNode methodNode = new XMLNode("method"); updateExecutableMemberNode(method, methodNode); methodNode.attribute("type", method.returnType().typeName()); methodNode.attribute("fulltype", method.returnType().toString()); methodNode.attribute("dimension", method.returnType().dimension()); methodNode.attribute("abstract", method.isAbstract()); methodNode.attribute("varargs", method.isVarArgs()); MethodDoc overrides = method.overriddenMethod(); if (overrides != null) { methodNode.attribute("overrides", overrides.toString()); } Tag[] returnTags = method.tags("@return"); if (returnTags.length > 0) { XMLNode returnNode = new XMLNode("returns"); returnNode.text(toComment(returnTags[0])); methodNode.child(returnNode); } // standard block tags methodNode.child(toStandardTags(method)); // Deprecated toDeprecated(method, methodNode); node.child(methodNode); } return node; }
Example 69
| Project: dtf-master File: DTFDoclet.java View source code |
public static boolean start(RootDoc root) throws Exception {
ClassDoc[] classes = root.classes();
ArrayList<String> packagenames = new ArrayList<String>();
HashMap<String, ArrayList<ClassDoc>> packages = new HashMap<String, ArrayList<ClassDoc>>();
ArrayList<String> fgroupnames = new ArrayList<String>();
HashMap<String, ArrayList<DTFDoc>> fgroups = new HashMap<String, ArrayList<DTFDoc>>();
String[][] options = root.options();
String destination = null;
String xsd = null;
for (int i = 0; i < options.length; i++) {
if (options[i][0].equals("-d")) {
destination = options[i][1];
}
if (options[i][0].equals("-dtfxsd")) {
xsd = options[i][1];
}
}
if (destination == null) {
throw new IllegalArgumentException("-d option needs to be specified");
}
if (xsd == null) {
throw new IllegalArgumentException("-dtfxsd option needs to be specified");
}
String tagdir = destination + File.separatorChar + TAGS_DIRECOTRY;
File dir = new File(tagdir);
if (!dir.exists() && !dir.mkdirs()) {
throw new DTFException("Unable to create directory [" + tagdir + "]");
}
String featuredir = destination + File.separatorChar + FEATURES_DIRECTORY;
dir = new File(featuredir);
if (!dir.exists() && !dir.mkdirs()) {
throw new DTFException("Unable to create directory [" + featuredir + "]");
}
PrintStream psIndex = createFile(destination + File.separatorChar + "index.html");
psIndex.println("<html>");
psIndex.println(" <head>");
psIndex.println(" <link rel='stylesheet' " + "href='main.css' " + "type='text/css'>");
psIndex.println(" </head>");
psIndex.println(" <body id='body'>");
psIndex.println(" <h1>DTF Documentation</h1>");
ArrayList<String> tnames = new ArrayList<String>();
ArrayList<String> fnames = new ArrayList<String>();
/*
* 1st phase
*
* Filter out non DTF related JavaDocs and also gather the list of
* packages that contain different DTF Actions. Create a TOC for the
* whole document.
*/
for (int i = 0; i < classes.length; ++i) {
ClassDoc classdoc = classes[i];
/*
* Identify which ones have DTF XML tags
*/
if (classdoc.tags(DTF_TAG).length != 0) {
String classname = classdoc.qualifiedName();
String packagename = classname.substring(0, classname.lastIndexOf("."));
tnames.add(classname.replace(packagename + ".", "").toLowerCase());
if (!packages.containsKey(packagename)) {
packages.put(packagename, new ArrayList<ClassDoc>());
packagenames.add(packagename);
}
packages.get(packagename).add(classdoc);
}
MethodDoc[] methoddocs = classes[i].methods();
for (int m = 0; m < methoddocs.length; m++) {
if (methoddocs[m].tags(DTF_FEATURE).length != 0) {
String fgroup = methoddocs[m].tags(DTF_FEATURE_GROUP)[0].text();
if (!fgroups.containsKey(fgroup)) {
fgroups.put(fgroup, new ArrayList<DTFDoc>());
fgroupnames.add(fgroup);
}
DTFDoc dtfdoc = new DTFDoc();
dtfdoc.name = methoddocs[m].tags(DTF_FEATURE)[0].text();
dtfdoc.descriptions = methoddocs[m].tags(DTF_FEATURE_DESC);
dtfdoc.examples = methoddocs[m].tags(DTF_EXAMPLE);
fnames.add(dtfdoc.name.trim().toLowerCase());
fgroups.get(fgroup).add(dtfdoc);
}
}
/*
* Find the documented features through out the code as well
*/
if (classdoc.tags(DTF_FEATURE).length != 0) {
String fgroup = classdoc.tags(DTF_FEATURE_GROUP)[0].text();
if (!fgroups.containsKey(fgroup)) {
fgroups.put(fgroup, new ArrayList<DTFDoc>());
fgroupnames.add(fgroup);
}
DTFDoc dtfdoc = new DTFDoc();
dtfdoc.name = classdoc.tags(DTF_FEATURE)[0].text();
dtfdoc.descriptions = classdoc.tags(DTF_FEATURE_DESC);
dtfdoc.examples = classdoc.tags(DTF_EXAMPLE);
dtfdoc.qname = classdoc.qualifiedName();
fnames.add(dtfdoc.name.trim().toLowerCase());
fgroups.get(fgroup).add(dtfdoc);
}
}
/*
* Sorting makes it easier to find what you want in the documentation
*/
Collections.sort(packagenames);
Collections.sort(fgroupnames);
Iterator<String> iter = fgroupnames.iterator();
psIndex.println("<div id='features'>");
psIndex.println(" <div id='features_title'>Features</div>");
int counttags = 0;
while (iter.hasNext()) {
if (counttags == 0) {
psIndex.println("<div class='feature_row'>");
}
psIndex.println("<div class='feature_div'>");
String feature = (String) iter.next();
psIndex.println("<div class='feature_name'>" + feature + "</div>");
psIndex.println("<div id='collapsible_" + feature + "' class='feature_elems'" + "style='display: block;'>");
ArrayList<DTFDoc> features = fgroups.get(feature);
for (int i = 0; i < features.size(); i++) {
DTFDoc dtfdoc = features.get(i);
psIndex.println("<a class='feature_elem' href='" + FEATURES_DIRECTORY + "/" + dtfdoc.name.toLowerCase() + ".html'>" + dtfdoc.name + "</a>");
}
psIndex.println("</div>");
psIndex.println("</div>");
counttags++;
if (counttags == 4) {
psIndex.println("</div>");
counttags = 0;
}
}
if (counttags > 0) {
psIndex.println("</div>");
}
psIndex.println("</div>");
/*
* Link to the root element of the DTF XML as a starting point for the
* testcase writing.
*/
Collections.sort(packagenames);
iter = packagenames.iterator();
psIndex.println("<div id='tags'>");
psIndex.println("<div id='tags_title'>Tags</div>");
counttags = 0;
while (iter.hasNext()) {
String pname = (String) iter.next();
ArrayList<ClassDoc> tags = packages.get(pname);
String aux = pname.substring(pname.lastIndexOf(".actions.") + "actions.".length() + 1);
aux = aux.replaceAll("\\.", " ");
aux = StringUtil.capitalize(aux);
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < tags.size(); i++) {
ClassDoc classdoc = (ClassDoc) tags.get(i);
if (classdoc.tags(DTF_SKIP_INDEX).length == 0) {
String tagname = classdoc.name().toLowerCase();
buffer.append("<a class='tag_elem' href='" + TAGS_DIRECOTRY + "/" + tagname + ".html'>" + tagname + "</a> ");
}
}
if (buffer.length() != 0) {
if (counttags == 0) {
psIndex.println("<div class='tag_row'>");
}
psIndex.println("<div class='tag_div'>");
psIndex.println("<div class='tag_name' " + "onclick=\"togglediv('collapsible_" + aux + "');\">" + aux + "</div>");
psIndex.println("<div id='collapsible_" + aux + "' " + "class='tag_elems' " + "style='display: block;'>");
psIndex.print(buffer.toString());
psIndex.println("</div>");
psIndex.println("</div>");
counttags++;
if (counttags == 5) {
psIndex.println("</div>");
counttags = 0;
}
}
}
if (counttags > 0) {
psIndex.println("</div>");
}
psIndex.println("</div>");
/*
* 1st phase
*
* Tag documentation generation that will generate a separate HTML file
* for each of the DTF actions that are documented with DTF javadoc
* tags.
*/
iter = packagenames.iterator();
FileInputStream fis;
try {
fis = new FileInputStream(xsd);
} catch (FileNotFoundException e) {
throw new Exception("Error accessing XSD.", e);
}
XSDHandler dtfXSD = new XSDHandler(fis);
while (iter.hasNext()) {
String pname = (String) iter.next();
ArrayList tags = (ArrayList) packages.get(pname);
info("Package " + pname);
for (int i = 0; i < tags.size(); i++) {
ClassDoc classdoc = (ClassDoc) tags.get(i);
String tagname = classdoc.name().toLowerCase();
PrintStream ps = createFile(tagdir + File.separatorChar + tagname + ".html");
info("Tag " + tagname);
ps.println("<html>");
ps.println(" <head>");
ps.println(" <link rel='stylesheet' " + "href='../main.css' " + "type='text/css'>");
ps.println(" <title>" + classdoc.name() + "</title>");
ps.println(" </head>");
ps.println(" <body id='body'>");
ps.println("<div id='nav'>");
ps.println("<a href='../index.html'>Home</a></div>");
// Hiding the class name in the tooltip of the title :)
ps.println("<div id='tag_title' title='" + classdoc.qualifiedName() + "'>" + classdoc.name() + "</div>");
/*
* Description
*/
ps.println("<div id='tag_description'>");
Tag[] descriptions = classdoc.tags(DTF_TAG_DESC);
if (descriptions.length != 0) {
for (int d = 0; d < descriptions.length; d++) {
ps.print(treatTag(descriptions[d], tnames, fnames));
}
}
ps.println("</div>");
/*
* Child tags
*/
String children = dtfXSD.generateChildrenString(tagname);
if (children != null && children.trim().length() > 0) {
Pattern pattern = Pattern.compile("([a-zA-Z_]*)");
Matcher matcher = pattern.matcher(children);
StringBuffer result = new StringBuffer();
int laststart = 0;
while (matcher.find()) {
String match = matcher.group();
int start = matcher.start();
int end = matcher.end();
match = match.toLowerCase();
if (match.trim().length() > 0) {
result.append(children.substring(laststart, start));
result.append("<a href='" + match + ".html'>" + match + "</a>");
laststart = end;
}
}
result.append(children.substring(laststart));
ps.print("<div class='tag_children_label'>Children Tags</div>");
ps.print("<div class='tag_children'>");
ps.print(result.toString());
ps.print("</div>");
}
/*
* Events
*/
Tag[] events = classdoc.tags(DTF_EVENT);
Tag[] eventsAttrs = classdoc.tags(DTF_EVENT_ATTR);
Tag[] eventsDesc = classdoc.tags(DTF_EVENT_ATTR_DESC);
if (eventsAttrs.length != eventsDesc.length) {
// XXX: throw an exception
}
if (eventsAttrs.length != 0) {
HashMap<String, HashMap<String, String>> eventMap = new HashMap<String, HashMap<String, String>>();
/*
* Construct all the relations between events and their
* attributes.
*/
for (int a = 0; a < events.length; a++) {
String[] eventNames = events[a].text().trim().split(" ");
for (int e = 0; e < eventNames.length; e++) {
if (!eventMap.containsKey(eventNames[e])) {
eventMap.put(eventNames[e], new HashMap<String, String>());
}
String attrName = eventsAttrs[a].text();
String attrDesc = treatTag(eventsDesc[a], tnames, fnames);
((HashMap) eventMap.get(eventNames[e])).put(attrName, attrDesc);
}
}
ps.print("<div class='tag_events_label'>Events</div>");
Iterator<Entry<String, HashMap<String, String>>> eventIter = eventMap.entrySet().iterator();
ps.print("<div class='tag_events'>");
while (eventIter.hasNext()) {
Entry<String, HashMap<String, String>> entry = eventIter.next();
HashMap<String, String> attribs = entry.getValue();
ps.print("<div class='tag_event'>");
ps.print("<div class='tag_event_name'>" + entry.getKey() + " Event</div>");
Iterator<Entry<String, String>> attribIter = attribs.entrySet().iterator();
while (attribIter.hasNext()) {
Entry<String, String> attrib = attribIter.next();
ps.print("<div class='tag_event_attribute'>");
ps.print("<div class='tag_event_attribute_name'>" + attrib.getKey() + "</div>");
ps.print("<div class='tag_event_attribute_value'>" + attrib.getValue() + "</div>");
ps.print("</div>");
}
ps.print("</div>");
}
ps.print("</div>");
}
/*
* Attributes
*/
HashMap attrs = new HashMap();
ClassDoc aux = classdoc;
while (aux != null) {
FieldDoc[] fieldDocs = aux.fields();
for (int f = 0; f < fieldDocs.length; f++) {
attrs.put(fieldDocs[f].name(), fieldDocs[f]);
}
aux = aux.superclass();
}
ArrayList<String> attributes = dtfXSD.getAttributes(tagname);
ArrayList<String> required = dtfXSD.getRequiredAttributes(tagname);
ArrayList<String> optional = dtfXSD.getOptionalAttributes(tagname);
if (attributes != null) {
boolean someopt = false;
StringBuffer opt = new StringBuffer();
boolean somereq = false;
StringBuffer req = new StringBuffer();
opt.append("<div id='optional_attributes_label'>Optional Attributes</div>");
opt.append("<div id='optional_attributes'>");
req.append("<div id='required_attributes_label'>Required Attributes</div>");
req.append("<div id='required_attributes'>");
Iterator<String> keys = attributes.iterator();
while (keys.hasNext()) {
String aName = keys.next();
StringBuffer which = null;
if (required.contains(aName)) {
which = req;
somereq = true;
} else if (optional.contains(aName)) {
which = opt;
someopt = true;
}
if (which != null) {
which.append("<div class='attribute'>");
which.append("<div class='attribute_name'>" + aName + "</div>");
FieldDoc doc = (FieldDoc) attrs.get(aName);
if (doc != null) {
Tag[] descs = doc.tags(DTF_ATTR_DESC);
if (descs.length != 0) {
which.append("<div class='attribute_desc'>" + treatTag(descs[0], tnames, fnames) + "</div>");
}
}
which.append("</div>");
}
}
if (somereq) {
ps.print(req + "</div>");
}
if (someopt) {
ps.print(opt + "</div>");
}
}
/*
* Examples
*/
Tag[] examples = classdoc.tags(DTF_TAG_EXAMPLE);
if (examples.length != 0) {
ps.print("<div class='tag_examples_label'>Usage Examples</div>");
ps.print("<div class='tag_examples'>");
for (int e = 0; e < examples.length; e++) {
Tag example = examples[e];
try {
String text = example.text().trim();
if (text.length() != 0) {
ps.print("<div class='tag_example_container'>");
ps.print("<div class='tag_example_title'>Example #" + (e + 1) + "</div>");
ps.print("<div class='tag_example'>" + treatXML(text) + "</div>");
ps.print("</div>");
}
} catch (Exception exc) {
throw new Exception("Error handling example #" + (e + 1) + " of tag " + tagname, exc);
}
}
ps.print("</div>");
}
ps.print("</body></html>");
ps.close();
}
}
/*
* 2nd phase for Features
*
*/
iter = fgroupnames.iterator();
while (iter.hasNext()) {
String pname = (String) iter.next();
ArrayList<DTFDoc> tags = fgroups.get(pname);
info(pname);
for (int i = 0; i < tags.size(); i++) {
DTFDoc dtfdoc = tags.get(i);
PrintStream ps = createFile(featuredir + File.separatorChar + dtfdoc.name.toLowerCase() + ".html");
info("Feature [" + dtfdoc.name + "]");
ps.println("<html>");
ps.println(" <head>");
ps.println(" <link rel='stylesheet' " + "href='../main.css' " + "type='text/css'>");
ps.println(" <title>" + dtfdoc.name + "</title>");
ps.println(" </head>");
ps.println(" <body id='body'>");
ps.println("<div id='nav'>");
ps.println("<a href='../index.html'>Home</a></div>");
// Hiding the class name in the tooltip of the title :)
ps.println("<div class='feature_title' title='" + dtfdoc.qname + "'>" + dtfdoc.name + "</div>");
/*
* Description
*/
ps.print("<div class='feature_description'>");
Tag[] descriptions = dtfdoc.descriptions;
if (descriptions.length != 0) {
for (int d = 0; d < descriptions.length; d++) {
ps.print(treatTag(descriptions[d], tnames, fnames));
}
}
ps.print("</div>");
/*
* Examples
*/
Tag[] examples = dtfdoc.examples;
if (examples.length != 0) {
ps.print("<div class='feature_examples_label'>Usage Examples</div>");
ps.print("<div class='feature_examples'>");
for (int e = 0; e < examples.length; e++) {
Tag example = examples[e];
try {
String text = example.text().trim();
if (text.length() != 0) {
ps.print("<div class='feature_example_container'>");
ps.print("<div class='feature_example_title'>Example #" + (e + 1) + "</div>");
ps.print("<div class='feature_example'>" + treatXML(text) + "</div>");
ps.print("</div>");
}
} catch (Exception exc) {
throw new Exception("Error handling example #" + (e + 1) + " of tag " + dtfdoc.name, exc);
}
}
ps.print("</div>");
}
ps.print("</body></html>");
ps.close();
}
}
psIndex.print("</td></tr></table>");
psIndex.print("</body></html>");
psIndex.close();
return true;
}Example 70
| Project: gradle-ikvm-plugin-master File: IKVMDocLet.java View source code |
/**
* Prints the member documentation.
*
* @param pw the writer to print the documentation to
* @param programElementDoc the member to document
*/
private static void print(PrintWriter pw, ProgramElementDoc programElementDoc) {
/*
* Implementation of proposed @exclude tag: http://java.sun.com/j2se/javadoc/proposed-tags.html
*/
if (programElementDoc.tags("@exclude").length > 0) {
return;
}
printIndent(pw, 2);
pw.print("<member name=\"");
printReference(pw, programElementDoc, true);
pw.println("\">");
printIndent(pw, 3);
pw.print("<summary>");
if (OUTPUT_DEPRECATED) {
printTags(pw, programElementDoc, "DEPRECATED:", "@deprecated");
}
printComment(pw, programElementDoc, programElementDoc.inlineTags());
if (OUTPUT_AUTHOR) {
printTags(pw, programElementDoc, "Author:", "@author");
}
if (OUTPUT_VERSION) {
printTags(pw, programElementDoc, "Version:", "@version");
}
if (OUTPUT_SINCE) {
printTags(pw, programElementDoc, "Since:", "@since");
}
printTags(pw, programElementDoc, "Serial:", "@serial");
printTags(pw, programElementDoc, "Serial Field:", "@serialField");
printTags(pw, programElementDoc, "Serial Data:", "@serialData");
pw.println("</summary>");
if (programElementDoc instanceof ExecutableMemberDoc) {
ExecutableMemberDoc executableMemberDoc = (ExecutableMemberDoc) programElementDoc;
printParamTags(pw, executableMemberDoc);
printReturnTag(pw, executableMemberDoc);
printThrowsTags(pw, executableMemberDoc);
}
printSeeTags(pw, programElementDoc);
printIndent(pw, 2);
pw.println("</member>");
// Document class members
if (programElementDoc instanceof ClassDoc) {
ClassDoc classDoc = (ClassDoc) programElementDoc;
FieldDoc[] fields = classDoc.fields();
for (FieldDoc fieldDoc : fields) {
print(pw, fieldDoc);
}
ConstructorDoc[] constructors = classDoc.constructors();
for (ConstructorDoc constructorDoc : constructors) {
print(pw, constructorDoc);
}
MethodDoc[] methods = classDoc.methods();
for (MethodDoc methodDoc : methods) {
print(pw, methodDoc);
}
}
}Example 71
| Project: sx10-master File: X10ClassDoc.java View source code |
public MemberDoc getMemberDoc(String name) {
for (X10FieldDoc doc : fields.values()) {
if (doc.name().equals(name))
return doc;
}
String shortname = name;
String signature = "()";
int index = name.indexOf("(");
if (index != -1) {
shortname = name.substring(0, name.indexOf("("));
signature = name.substring(index);
signature = makeQualifiedParams(signature);
}
index = shortname.indexOf("[");
if (index != -1) {
shortname = shortname.substring(0, index);
}
for (X10ConstructorDoc doc : constructors.values()) {
if (doc.name().equals(shortname) && doc.signature().equals(signature)) {
return doc;
}
}
for (MethodDoc doc : methods.values()) {
String n = doc.name();
String s = doc.signature();
if (doc.name().equals(shortname) && doc.signature().equals(signature)) {
return doc;
}
}
return null;
}Example 72
| Project: easytest-codegen-master File: TestingStrategy.java View source code |
/**
*
* Checks if method that is encapsulated in method doc is testable
* It mainly checks if method is not abstract, protected, private, annotated, enum const
* It is a public method
*
* @param doc the class doc
* @param naming naming strategy object, used to find out test class name
*/
public boolean isTestableMethod(MethodDoc doc) {
boolean returnValue;
returnValue = (doc != null);
returnValue = returnValue && !doc.isAbstract();
returnValue = returnValue && !doc.isProtected();
returnValue = returnValue && !doc.isPrivate();
returnValue = returnValue && !doc.isAnnotationTypeElement();
returnValue = returnValue && !doc.isEnumConstant();
returnValue = returnValue && doc.isPublic();
return returnValue;
}Example 73
| Project: texdoclet-master File: TeXDoclet.java View source code |
/**
* Enumerates the members of a section of the document and formats them
* using Tex statements.
*/
static void printMember(ExecutableMemberDoc mem, ExecutableMemberDoc copiedTo) {
PackageDoc pac = copiedTo == null ? mem.containingPackage() : copiedTo.containingPackage();
if (mem instanceof MethodDoc) {
MethodDoc method = (MethodDoc) mem;
if (method.commentText() == "" && method.seeTags().length == 0 && method.throwsTags().length == 0 && method.paramTags().length == 0) {
// No javadoc available for this method. Recurse through
// superclasses
// and implemented interfaces to find javadoc of overridden
// methods.
boolean found = false;
ClassDoc doc = method.overriddenClass();
if (doc != null) {
for (int i = 0; !found && i < doc.methods().length; ++i) {
if (doc.methods()[i].name().equals(mem.name()) && doc.methods()[i].signature().equals(mem.signature())) {
printMember(doc.methods()[i], copiedTo == null ? mem : copiedTo);
found = true;
}
}
}
doc = method.containingClass();
for (int j = 0; !found && j < doc.interfaces().length; j++) {
ClassDoc inf = doc.interfaces()[j];
for (int i = 0; !found && i < inf.methods().length; ++i) {
if (inf.methods()[i].name().equals(mem.name()) && inf.methods()[i].signature().equals(mem.signature())) {
printMember(inf.methods()[i], copiedTo == null ? mem : copiedTo);
found = true;
}
}
}
if (found) {
return;
}
}
}
ParamTag[] params = mem.paramTags();
// Some index and hyperref stuff
// os.println("\\item{\\vskip -1.9ex " );
os.println("\\item{ ");
os.println("\\index{" + HTMLtoLaTeXBackEnd.fixText(mem.name() + mem.flatSignature()) + "}");
if (hyperref) {
if (copiedTo == null) {
os.print("\\hypertarget{" + refName(makeRefKey(mem.qualifiedName() + mem.signature())) + "}{");
} else {
os.print("\\hypertarget{" + refName(makeRefKey(copiedTo.qualifiedName() + copiedTo.signature())) + "}{");
}
}
os.print(BOLD + " " + HTMLtoLaTeXBackEnd.fixText(mem.name()) + "}\\\\");
if (hyperref) {
os.print("}");
}
os.println();
// Print signature
os.println("\\begin{lstlisting}[frame=" + methodDeclarationFrame + "]");
if (!mem.containingClass().isInterface()) {
os.print(mem.modifiers() + " ");
}
if (mem instanceof MethodDoc) {
os.print(packageRelativIdentifier(pac, ((MethodDoc) mem).returnType().toString()) + " ");
}
os.print(mem.name() + "(");
Parameter[] parms = mem.parameters();
int p = 0;
String qparmstr = "";
String parmstr = "";
for (; p < parms.length; ++p) {
if (p > 0) {
os.print(",");
}
Type t = parms[p].type();
os.print(packageRelativIdentifier(pac, t.qualifiedTypeName()));
os.print(t.dimension());
if (parms[p].name().equals("") == false) {
os.print(" " + parms[p].name());
}
if (qparmstr.length() != 0) {
qparmstr += ",";
}
qparmstr += t.qualifiedTypeName() + t.dimension();
if (parmstr.length() != 0) {
parmstr += ",";
}
parmstr += t.typeName() + t.dimension();
}
os.print(")");
// Thrown exceptions
ClassDoc[] thrownExceptions = mem.thrownExceptions();
if (thrownExceptions != null && thrownExceptions.length > 0) {
os.print(" throws " + thrownExceptions[0].qualifiedName());
for (int e = 1; e < thrownExceptions.length; e++) {
os.print(", " + thrownExceptions[e].qualifiedName());
}
}
os.println("\\end{lstlisting} %end signature");
boolean yet = false;
// Description
if (mem.inlineTags().length > 0) {
if (!yet) {
os.println("\\begin{itemize}");
yet = true;
}
os.println("\\item{");
if (copiedTo == null) {
os.println(BOLD + " Description}\n");
} else {
os.print(BOLD + " Description copied from ");
String classname = mem.containingClass().qualifiedName();
if (hyperref) {
os.print("\\hyperlink{" + refName(makeRefKey(classname)) + "}{");
}
os.print(packageRelativIdentifier(pac, classname));
if (hyperref) {
os.print("}");
}
os.print("{\\small ");
os.print("\\refdefined{" + refName(makeRefKey(classname)) + "}");
os.println("} }\n");
}
printTags(mem.containingPackage(), mem.inlineTags());
os.println("\n}");
}
// Parameter tags
if (params.length > 0) {
if (!yet) {
os.println("\\begin{itemize}");
yet = true;
}
os.println("\\item{");
os.println(BOLD + " Parameters}");
os.println(" \\begin{itemize}");
for (int j = 0; j < params.length; ++j) {
os.println(" \\item{");
os.print(TRUETYPE + HTMLtoLaTeXBackEnd.fixText(params[j].parameterName()) + "}" + " -- ");
printTags(mem.containingPackage(), params[j].inlineTags());
os.println("}");
}
os.println(" \\end{itemize}");
os.println("}%end item");
}
// Return tag
if (mem instanceof MethodDoc) {
Tag[] ret = mem.tags("return");
if (ret.length > 0) {
if (!yet) {
os.println("\\begin{itemize}");
yet = true;
}
os.println("\\item{" + BOLD + " Returns} -- ");
for (int j = 0; j < ret.length; ++j) {
printTags(mem.containingPackage(), ret[j].inlineTags());
os.println(" ");
}
os.println("}%end item");
}
}
// Throws or Exceptions tag
if (mem instanceof ExecutableMemberDoc) {
ThrowsTag[] excp = (mem).throwsTags();
if (excp.length > 0) {
if (!yet) {
os.println("\\begin{itemize}");
yet = true;
}
os.println("\\item{" + BOLD + " Throws}");
os.println(" \\begin{itemize}");
for (int j = 0; j < excp.length; ++j) {
String ename = excp[j].exceptionName();
ClassDoc cdoc = excp[j].exception();
if (cdoc != null) {
ename = cdoc.qualifiedName();
}
os.print(" \\item{\\vskip -.6ex " + TRUETYPE + HTMLtoLaTeXBackEnd.fixText(ename) + "} -- ");
printTags(mem.containingPackage(), excp[j].inlineTags());
os.println("}");
}
os.println(" \\end{itemize}");
os.println("}%end item");
}
}
// See tags
SeeTag[] sees = mem.seeTags();
if (sees.length > 0) {
if (!yet) {
os.println("\\begin{itemize}");
yet = true;
}
os.println("\\item{" + BOLD + " See also}");
os.println(" \\begin{itemize}");
for (int j = 0; j < sees.length; ++j) {
os.print("\\item{ ");
printSeesTag(sees[j], pac);
os.println("}");
}
os.println(" \\end{itemize}");
os.println("}%end item");
}
if (yet) {
os.println("\\end{itemize}");
}
os.println("}%end item");
}