Skip to content
This repository was archived by the owner on Dec 4, 2025. It is now read-only.

Commit aeb764e

Browse files
committed
feat: Support for multiple-level interface inheritance in RPC.
1 parent 1ca056e commit aeb764e

2 files changed

Lines changed: 14 additions & 10 deletions

File tree

src/main/java/com/ly/doc/template/IRpcDocTemplate.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,19 @@ default List<RpcJavaMethod> getParentsClassMethods(ApiConfig apiConfig, JavaClas
132132
return docJavaMethods;
133133
}
134134

135+
default List<RpcJavaMethod> getInterfaceMethods(ApiConfig apiConfig, JavaClass cls) {
136+
List<RpcJavaMethod> docJavaMethods = new ArrayList<>();
137+
for (JavaClass javaInterface : cls.getInterfaces()) {
138+
Map<String, JavaType> actualTypesMap = JavaClassUtil.getActualTypesMap(javaInterface);
139+
List<JavaMethod> interfaceMethodList = javaInterface.getMethods();
140+
for (JavaMethod method : interfaceMethodList) {
141+
docJavaMethods.add(convertToRpcJavaMethod(apiConfig, method, actualTypesMap));
142+
}
143+
docJavaMethods.addAll(getInterfaceMethods(apiConfig, javaInterface));
144+
}
145+
return docJavaMethods;
146+
}
147+
135148
default String replaceTypeName(String type, Map<String, JavaType> actualTypesMap, boolean simple) {
136149
if (Objects.isNull(actualTypesMap)) {
137150
return type;

src/main/java/com/ly/doc/template/RpcDocBuildTemplate.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,16 +126,7 @@ private List<RpcJavaMethod> buildServiceMethod(final JavaClass cls, ApiConfig ap
126126
// add parent class methods
127127
methodDocList.addAll(getParentsClassMethods(apiConfig, cls));
128128
if (cls.isInterface() || cls.isAbstract()) {
129-
List<JavaType> implClasses = cls.getImplements();
130-
for (JavaType type : implClasses) {
131-
JavaClass javaClass = (JavaClass) type;
132-
Map<String, JavaType> actualTypesMap = JavaClassUtil.getActualTypesMap(javaClass);
133-
for (JavaMethod method : javaClass.getMethods()) {
134-
if (!method.isDefault()) {
135-
methodDocList.add(convertToRpcJavaMethod(apiConfig, method, actualTypesMap));
136-
}
137-
}
138-
}
129+
methodDocList.addAll(getInterfaceMethods(apiConfig,cls));
139130
}
140131

141132
int methodOrder = 0;

0 commit comments

Comments
 (0)