Skip to content

Commit

Permalink
minor
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Nov 6, 2016
1 parent 884e2e5 commit 9a79a6b
Showing 1 changed file with 19 additions and 10 deletions.
Expand Up @@ -17,11 +17,13 @@
package com.github.javaparser.symbolsolver.javaparsermodel.declarations; package com.github.javaparser.symbolsolver.javaparsermodel.declarations;


import com.github.javaparser.ast.Node; import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.NodeList;
import com.github.javaparser.ast.body.BodyDeclaration; import com.github.javaparser.ast.body.BodyDeclaration;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.VariableDeclarator; import com.github.javaparser.ast.body.VariableDeclarator;
import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.symbolsolver.core.resolution.Context; import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory; import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
import com.github.javaparser.symbolsolver.javaparsermodel.UnsolvedSymbolException; import com.github.javaparser.symbolsolver.javaparsermodel.UnsolvedSymbolException;
import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration; import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration;
Expand Down Expand Up @@ -216,20 +218,12 @@ public List<ReferenceType> getAncestors() {
List<ReferenceType> ancestors = new ArrayList<>(); List<ReferenceType> ancestors = new ArrayList<>();
if (wrappedNode.getExtends() != null) { if (wrappedNode.getExtends() != null) {
for (ClassOrInterfaceType extended : wrappedNode.getExtends()) { for (ClassOrInterfaceType extended : wrappedNode.getExtends()) {
SymbolReference<TypeDeclaration> ancestor = solveType(extended.getName(), typeSolver); ancestors.add(toReferenceType(extended));
if (!ancestor.isSolved()) {
throw new UnsolvedSymbolException(extended.getName());
}
ancestors.add(new ReferenceTypeImpl((ReferenceTypeDeclaration) ancestor.getCorrespondingDeclaration(), typeSolver));
} }
} }
if (wrappedNode.getImplements() != null) { if (wrappedNode.getImplements() != null) {
for (ClassOrInterfaceType implemented : wrappedNode.getImplements()) { for (ClassOrInterfaceType implemented : wrappedNode.getImplements()) {
SymbolReference<TypeDeclaration> ancestor = solveType(implemented.getName(), typeSolver); ancestors.add(toReferenceType(implemented));
if (!ancestor.isSolved()) {
throw new UnsolvedSymbolException(implemented.getName());
}
ancestors.add(new ReferenceTypeImpl((ReferenceTypeDeclaration) ancestor.getCorrespondingDeclaration(), typeSolver));
} }
} }
return ancestors; return ancestors;
Expand Down Expand Up @@ -259,4 +253,19 @@ public ClassOrInterfaceDeclaration getWrappedNode() {
public AccessLevel accessLevel() { public AccessLevel accessLevel() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }

///
/// Private methods
///

private ReferenceType toReferenceType(ClassOrInterfaceType classOrInterfaceType) {
SymbolReference<TypeDeclaration> ref = solveType(classOrInterfaceType.getName(), typeSolver);
if (!ref.isSolved()) {
throw new UnsolvedSymbolException(classOrInterfaceType.getName());
}
List<Type> superClassTypeParameters = classOrInterfaceType.getTypeArguments().orElse(new NodeList<>())
.stream().map(ta -> JavaParserFacade.get(typeSolver).convert(ta, ta))
.collect(Collectors.toList());
return new ReferenceTypeImpl(ref.getCorrespondingDeclaration().asReferenceType(), superClassTypeParameters, typeSolver);
}
} }

0 comments on commit 9a79a6b

Please sign in to comment.