37
37
38
38
public class PatchJavadoc {
39
39
40
- public static String getHTMLContentFromSource (String original , Object member ) {
40
+ public static String getHTMLContentFromSource (Object instance , String original , Object member ) {
41
41
if (original != null ) {
42
42
return original ;
43
43
}
@@ -54,7 +54,7 @@ public static String getHTMLContentFromSource(String original, Object member) {
54
54
String rawJavadoc = docs .get (signature );
55
55
if (rawJavadoc == null ) return null ;
56
56
57
- return Reflection .javadoc2HTML ((IMember ) member , (IJavaElement ) member , rawJavadoc );
57
+ return Reflection .javadoc2HTML (instance , (IMember ) member , (IJavaElement ) member , rawJavadoc );
58
58
}
59
59
}
60
60
@@ -85,9 +85,10 @@ static final String getSignature(SourceMethod sourceMethod) {
85
85
private static class Reflection {
86
86
private static final Method javadoc2HTML ;
87
87
private static final Method oldJavadoc2HTML ;
88
+ private static final Method reallyOldJavadoc2HTML ;
88
89
private static final Method lsJavadoc2HTML ;
89
90
static {
90
- Method a = null , b = null , c = null ;
91
+ Method a = null , b = null , c = null , d = null ;
91
92
92
93
try {
93
94
a = Permit .getMethod (JavadocContentAccess2 .class , "javadoc2HTML" , IMember .class , IJavaElement .class , String .class );
@@ -98,30 +99,41 @@ private static class Reflection {
98
99
try {
99
100
c = Permit .getMethod (Class .forName ("org.eclipse.jdt.ls.core.internal.javadoc.JavadocContentAccess2" ), "javadoc2HTML" , IMember .class , IJavaElement .class , String .class );
100
101
} 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 ) {}
101
105
102
- javadoc2HTML = a ;
103
- oldJavadoc2HTML = b ;
106
+ oldJavadoc2HTML = a ;
107
+ reallyOldJavadoc2HTML = b ;
104
108
lsJavadoc2HTML = c ;
109
+ javadoc2HTML = d ;
105
110
}
106
111
107
- private static String javadoc2HTML (IMember member , IJavaElement element , String rawJavadoc ) {
112
+ private static String javadoc2HTML (Object instance , IMember member , IJavaElement element , String rawJavadoc ) {
108
113
if (javadoc2HTML != null ) {
109
114
try {
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 );
111
123
} catch (Throwable t ) {
112
124
return null ;
113
125
}
114
126
}
115
127
if (lsJavadoc2HTML != null ) {
116
128
try {
117
- return (String ) lsJavadoc2HTML .invoke (null , member , element , rawJavadoc );
129
+ return (String ) lsJavadoc2HTML .invoke (instance , member , element , rawJavadoc );
118
130
} catch (Throwable t ) {
119
131
return null ;
120
132
}
121
133
}
122
- if (oldJavadoc2HTML != null ) {
134
+ if (reallyOldJavadoc2HTML != null ) {
123
135
try {
124
- return (String ) oldJavadoc2HTML .invoke (null , member , rawJavadoc );
136
+ return (String ) reallyOldJavadoc2HTML .invoke (instance , member , rawJavadoc );
125
137
} catch (Throwable t ) {
126
138
return null ;
127
139
}
0 commit comments