3737
3838public class PatchJavadoc {
3939
40- public static String getHTMLContentFromSource (String original , Object member ) {
40+ public static String getHTMLContentFromSource (Object instance , String original , Object member ) {
4141if (original != null ) {
4242return original ;
4343}
@@ -54,7 +54,7 @@ public static String getHTMLContentFromSource(String original, Object member) {
5454String rawJavadoc = docs .get (signature );
5555if (rawJavadoc == null ) return null ;
5656
57- return Reflection .javadoc2HTML ((IMember ) member , (IJavaElement ) member , rawJavadoc );
57+ return Reflection .javadoc2HTML (instance , (IMember ) member , (IJavaElement ) member , rawJavadoc );
5858}
5959}
6060
@@ -85,9 +85,10 @@ static final String getSignature(SourceMethod sourceMethod) {
8585private static class Reflection {
8686private static final Method javadoc2HTML ;
8787private static final Method oldJavadoc2HTML ;
88+ private static final Method reallyOldJavadoc2HTML ;
8889private static final Method lsJavadoc2HTML ;
8990static {
90- Method a = null , b = null , c = null ;
91+ Method a = null , b = null , c = null , d = null ;
9192
9293try {
9394a = Permit .getMethod (JavadocContentAccess2 .class , "javadoc2HTML" , IMember .class , IJavaElement .class , String .class );
@@ -98,30 +99,41 @@ private static class Reflection {
9899try {
99100c = Permit .getMethod (Class .forName ("org.eclipse.jdt.ls.core.internal.javadoc.JavadocContentAccess2" ), "javadoc2HTML" , IMember .class , IJavaElement .class , String .class );
100101} catch (Throwable t ) {}
102+ try {
103+ d = Permit .getMethod (Class .forName ("org.eclipse.jdt.core.manipulation.internal.javadoc.CoreJavadocAccess" ), "javadoc2HTML" , IMember .class , IJavaElement .class , String .class );
104+ } catch (Throwable t ) {}
101105
102- javadoc2HTML = a ;
103- oldJavadoc2HTML = b ;
106+ oldJavadoc2HTML = a ;
107+ reallyOldJavadoc2HTML = b ;
104108lsJavadoc2HTML = c ;
109+ javadoc2HTML = d ;
105110}
106111
107- private static String javadoc2HTML (IMember member , IJavaElement element , String rawJavadoc ) {
112+ private static String javadoc2HTML (Object instance , IMember member , IJavaElement element , String rawJavadoc ) {
108113if (javadoc2HTML != null ) {
109114try {
110- return (String ) javadoc2HTML .invoke (null , member , element , rawJavadoc );
115+ return (String ) javadoc2HTML .invoke (instance , member , element , rawJavadoc );
116+ } catch (Throwable t ) {
117+ return null ;
118+ }
119+ }
120+ if (oldJavadoc2HTML != null ) {
121+ try {
122+ return (String ) oldJavadoc2HTML .invoke (instance , member , element , rawJavadoc );
111123} catch (Throwable t ) {
112124return null ;
113125}
114126}
115127if (lsJavadoc2HTML != null ) {
116128try {
117- return (String ) lsJavadoc2HTML .invoke (null , member , element , rawJavadoc );
129+ return (String ) lsJavadoc2HTML .invoke (instance , member , element , rawJavadoc );
118130} catch (Throwable t ) {
119131return null ;
120132}
121133}
122- if (oldJavadoc2HTML != null ) {
134+ if (reallyOldJavadoc2HTML != null ) {
123135try {
124- return (String ) oldJavadoc2HTML .invoke (null , member , rawJavadoc );
136+ return (String ) reallyOldJavadoc2HTML .invoke (instance , member , rawJavadoc );
125137} catch (Throwable t ) {
126138return null ;
127139}
0 commit comments