Skip to content

Commit

Permalink
handle JavassistInterfaceDeclaration and JavassistEnumDeclaration #1716
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Aug 6, 2018
1 parent c1c9c4f commit be54789
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 24 deletions.
Expand Up @@ -27,6 +27,7 @@
import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration;
import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
import com.github.javaparser.symbolsolver.resolution.MethodResolutionLogic;
import com.github.javaparser.symbolsolver.resolution.SymbolSolver;
import javassist.CtClass;
Expand Down Expand Up @@ -91,26 +92,14 @@ public List<ResolvedReferenceType> getAncestors() {
// Direct ancestors of an enum are java.lang.Enum and interfaces
List<ResolvedReferenceType> ancestors = new ArrayList<>();

try {
CtClass superClass = ctClass.getSuperclass();

if (superClass != null) {
ResolvedType superClassTypeUsage = JavassistFactory.typeUsageFor(superClass, typeSolver);
String superClassName = ctClass.getClassFile().getSuperclass();

if (superClassTypeUsage.isReferenceType()) {
ancestors.add(superClassTypeUsage.asReferenceType());
}
}

for (CtClass interfaze : ctClass.getInterfaces()) {
ResolvedType interfazeTypeUsage = JavassistFactory.typeUsageFor(interfaze, typeSolver);
if (superClassName != null) {
ancestors.add(new ReferenceTypeImpl(typeSolver.solveType(superClassName), typeSolver));
}

if (interfazeTypeUsage.isReferenceType()) {
ancestors.add(interfazeTypeUsage.asReferenceType());
}
}
} catch (NotFoundException e) {
throw new RuntimeException("Ancestor not found for " + ctClass.getName() + ".", e);
for (String interfazeName : ctClass.getClassFile().getInterfaces()) {
ancestors.add(new ReferenceTypeImpl(typeSolver.solveType(interfazeName), typeSolver));
}

return ancestors;
Expand Down
Expand Up @@ -69,12 +69,8 @@ public JavassistInterfaceDeclaration(CtClass ctClass, TypeSolver typeSolver) {

@Override
public List<ResolvedReferenceType> getInterfacesExtended() {
try {
return Arrays.stream(ctClass.getInterfaces()).map(i -> new JavassistInterfaceDeclaration(i, typeSolver))
.map(i -> new ReferenceTypeImpl(i, typeSolver)).collect(Collectors.toList());
} catch (NotFoundException e) {
throw new RuntimeException(e);
}
return Arrays.stream(ctClass.getClassFile().getInterfaces()).map(i -> typeSolver.solveType(i))
.map(i -> new ReferenceTypeImpl(i, typeSolver)).collect(Collectors.toList());
}

@Override
Expand Down

0 comments on commit be54789

Please sign in to comment.