1.1 --- a/src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java Wed Nov 14 16:41:51 2012 -0800 1.2 +++ b/src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java Wed Nov 14 17:23:10 2012 -0800 1.3 @@ -25,7 +25,14 @@ 1.4 1.5 package com.sun.tools.javadoc; 1.6 1.7 +import java.io.File; 1.8 +import java.util.Locale; 1.9 + 1.10 import com.sun.javadoc.*; 1.11 +import com.sun.tools.javac.code.Kinds; 1.12 +import com.sun.tools.javac.code.Printer; 1.13 +import com.sun.tools.javac.code.Symbol; 1.14 +import com.sun.tools.javac.code.Type.CapturedType; 1.15 import com.sun.tools.javac.util.*; 1.16 1.17 /** 1.18 @@ -75,9 +82,63 @@ 1.19 container = (ClassDocImpl)holder; 1.20 } 1.21 findReferenced(container); 1.22 + if (showRef) showRef(); 1.23 } 1.24 } 1.25 1.26 + private static final boolean showRef = false; 1.27 + 1.28 + private void showRef() { 1.29 + Symbol sym; 1.30 + if (referencedMember != null) { 1.31 + if (referencedMember instanceof MethodDocImpl) 1.32 + sym = ((MethodDocImpl) referencedMember).sym; 1.33 + else if (referencedMember instanceof FieldDocImpl) 1.34 + sym = ((FieldDocImpl) referencedMember).sym; 1.35 + else 1.36 + sym = ((ConstructorDocImpl) referencedMember).sym; 1.37 + } else if (referencedClass != null) { 1.38 + sym = ((ClassDocImpl) referencedClass).tsym; 1.39 + } else if (referencedPackage != null) { 1.40 + sym = ((PackageDocImpl) referencedPackage).sym; 1.41 + } else 1.42 + return; 1.43 + 1.44 + final JavacMessages messages = JavacMessages.instance(docenv().context); 1.45 + Locale locale = Locale.getDefault(); 1.46 + Printer printer = new Printer() { 1.47 + int count; 1.48 + @Override 1.49 + protected String localize(Locale locale, String key, Object... args) { 1.50 + return messages.getLocalizedString(locale, key, args); 1.51 + } 1.52 + @Override 1.53 + protected String capturedVarId(CapturedType t, Locale locale) { 1.54 + return "CAP#" + (++count); 1.55 + } 1.56 + }; 1.57 + 1.58 + String s = text.replaceAll("\\s+", " "); // normalize white space 1.59 + int sp = s.indexOf(" "); 1.60 + int lparen = s.indexOf("("); 1.61 + int rparen = s.indexOf(")"); 1.62 + String seetext = (sp == -1) ? s 1.63 + : (lparen == -1 || sp < lparen) ? s.substring(0, sp) 1.64 + : s.substring(0, rparen + 1); 1.65 + 1.66 + File file = new File(holder.position().file().getAbsoluteFile().toURI().normalize()); 1.67 + 1.68 + StringBuilder sb = new StringBuilder(); 1.69 + sb.append("+++ ").append(file).append(": ") 1.70 + .append(name()).append(" ").append(seetext).append(": "); 1.71 + sb.append(sym.getKind()).append(" "); 1.72 + if (sym.kind == Kinds.MTH || sym.kind == Kinds.VAR) 1.73 + sb.append(printer.visit(sym.owner, locale)).append("."); 1.74 + sb.append(printer.visit(sym, locale)); 1.75 + 1.76 + System.err.println(sb); 1.77 + } 1.78 + 1.79 /** 1.80 * get the class name part of @see, For instance, 1.81 * if the comment is @see String#startsWith(java.lang.String) .