Skip to content

Commit

Permalink
removing classes ported to JP
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Sep 28, 2017
1 parent 8b925ed commit c3dc366
Show file tree
Hide file tree
Showing 70 changed files with 108 additions and 3,322 deletions.
Expand Up @@ -26,10 +26,11 @@
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.ast.type.UnknownType;
import com.github.javaparser.ast.type.WildcardType;
import com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.*;
import com.github.javaparser.symbolsolver.model.declarations.*;
import com.github.javaparser.symbolsolver.model.declarations.AnnotationDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.ConstructorDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration;
Expand Down Expand Up @@ -262,14 +263,14 @@ public SymbolReference<MethodDeclaration> solve(MethodCallExpr methodCallExpr, b
return res;
}

public SymbolReference<AnnotationDeclaration> solve(AnnotationExpr annotationExpr) {
public SymbolReference<ResolvedAnnotationDeclaration> solve(AnnotationExpr annotationExpr) {
Context context = JavaParserFactory.getContext(annotationExpr, typeSolver);
SymbolReference<TypeDeclaration> typeDeclarationSymbolReference = context.solveType(annotationExpr.getNameAsString(), typeSolver);
AnnotationDeclaration annotationDeclaration = (AnnotationDeclaration) typeDeclarationSymbolReference.getCorrespondingDeclaration();
ResolvedAnnotationDeclaration annotationDeclaration = (ResolvedAnnotationDeclaration) typeDeclarationSymbolReference.getCorrespondingDeclaration();
if (typeDeclarationSymbolReference.isSolved()) {
return SymbolReference.solved(annotationDeclaration);
} else {
return SymbolReference.unsolved(AnnotationDeclaration.class);
return SymbolReference.unsolved(ResolvedAnnotationDeclaration.class);
}
}

Expand Down Expand Up @@ -506,7 +507,7 @@ public MethodUsage solveMethodAsUsage(MethodCallExpr call) {
return methodUsage.get();
}

public ReferenceTypeDeclaration getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration) {
public ResolvedReferenceTypeDeclaration getTypeDeclaration(ClassOrInterfaceDeclaration classOrInterfaceDeclaration) {
return JavaParserFactory.toTypeDeclaration(classOrInterfaceDeclaration, typeSolver);
}

Expand Down
Expand Up @@ -22,6 +22,7 @@
import com.github.javaparser.ast.expr.*;
import com.github.javaparser.ast.stmt.*;
import com.github.javaparser.ast.type.TypeParameter;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.contexts.*;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserAnnotationDeclaration;
Expand Down Expand Up @@ -115,7 +116,7 @@ public static SymbolDeclarator getSymbolDeclarator(Node node, TypeSolver typeSol
}
}

public static ReferenceTypeDeclaration toTypeDeclaration(Node node, TypeSolver typeSolver) {
public static ResolvedReferenceTypeDeclaration toTypeDeclaration(Node node, TypeSolver typeSolver) {
if (node instanceof ClassOrInterfaceDeclaration) {
if (((ClassOrInterfaceDeclaration) node).isInterface()) {
return new JavaParserInterfaceDeclaration((ClassOrInterfaceDeclaration) node, typeSolver);
Expand Down
Expand Up @@ -12,6 +12,7 @@
import com.github.javaparser.ast.stmt.ReturnStmt;
import com.github.javaparser.ast.stmt.Statement;
import com.github.javaparser.ast.type.UnknownType;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration;
import com.github.javaparser.symbolsolver.logic.FunctionalInterfaceLogic;
Expand Down Expand Up @@ -162,7 +163,7 @@ public Type visit(EnclosedExpr node, Boolean solveLambdas) {
* Java Parser can't differentiate between packages, internal types, and fields.
* All three are lumped together into FieldAccessExpr. We need to differentiate them.
*/
private Type solveDotExpressionType(ReferenceTypeDeclaration parentType, FieldAccessExpr node) {
private Type solveDotExpressionType(ResolvedReferenceTypeDeclaration parentType, FieldAccessExpr node) {
// Fields and internal type declarations cannot have the same name.
// Thus, these checks will always be mutually exclusive.
if (parentType.hasField(node.getName().getId())) {
Expand Down
Expand Up @@ -17,6 +17,7 @@
package com.github.javaparser.symbolsolver.javaparsermodel.contexts;

import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserTypeParameter;
import com.github.javaparser.symbolsolver.model.declarations.*;
Expand Down Expand Up @@ -102,7 +103,7 @@ public SymbolReference<ConstructorDeclaration> solveConstructor(List<Type> argum
/// Private methods
///

private ReferenceTypeDeclaration getDeclaration() {
private ResolvedReferenceTypeDeclaration getDeclaration() {
return JavaParserFacade.get(typeSolver).getTypeDeclaration(this.wrappedNode);
}
}
Expand Up @@ -18,6 +18,7 @@

import com.github.javaparser.ast.body.EnumConstantDeclaration;
import com.github.javaparser.ast.body.EnumDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumConstantDeclaration;
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration;
Expand Down Expand Up @@ -74,7 +75,7 @@ public SymbolReference<com.github.javaparser.symbolsolver.model.declarations.Met
/// Private methods
///

private ReferenceTypeDeclaration getDeclaration() {
private ResolvedReferenceTypeDeclaration getDeclaration() {
return new JavaParserEnumDeclaration(this.wrappedNode, typeSolver);
}
}
Expand Up @@ -3,6 +3,7 @@
import com.github.javaparser.ast.body.BodyDeclaration;
import com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters;
import com.github.javaparser.ast.type.TypeParameter;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
Expand All @@ -27,10 +28,10 @@ public class JavaParserTypeDeclarationAdapter {
private com.github.javaparser.ast.body.TypeDeclaration<?> wrappedNode;
private TypeSolver typeSolver;
private Context context;
private ReferenceTypeDeclaration typeDeclaration;
private ResolvedReferenceTypeDeclaration typeDeclaration;

public JavaParserTypeDeclarationAdapter(com.github.javaparser.ast.body.TypeDeclaration<?> wrappedNode, TypeSolver typeSolver,
ReferenceTypeDeclaration typeDeclaration,
ResolvedReferenceTypeDeclaration typeDeclaration,
Context context) {
this.wrappedNode = wrappedNode;
this.typeSolver = typeSolver;
Expand Down
@@ -1,5 +1,7 @@
package com.github.javaparser.symbolsolver.javaparsermodel.declarations;

import com.github.javaparser.resolution.declarations.ResolvedAnnotationDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.*;
import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
Expand All @@ -15,7 +17,7 @@
/**
* @author Federico Tomassetti
*/
public class JavaParserAnnotationDeclaration extends AbstractTypeDeclaration implements AnnotationDeclaration {
public class JavaParserAnnotationDeclaration extends AbstractTypeDeclaration implements ResolvedAnnotationDeclaration {

private com.github.javaparser.ast.body.AnnotationDeclaration wrappedNode;
private TypeSolver typeSolver;
Expand Down Expand Up @@ -46,7 +48,7 @@ public boolean isAssignableBy(Type type) {
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
throw new UnsupportedOperationException();
}

Expand Down
Expand Up @@ -5,6 +5,7 @@
import com.github.javaparser.ast.AccessSpecifier;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.expr.ObjectCreationExpr;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
Expand Down Expand Up @@ -154,7 +155,7 @@ public boolean isAssignableBy(Type type) {
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
return false;
}

Expand Down
Expand Up @@ -21,6 +21,7 @@
import com.github.javaparser.ast.body.*;
import com.github.javaparser.ast.expr.AnnotationExpr;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
Expand Down Expand Up @@ -230,7 +231,7 @@ public String getQualifiedName() {
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
return javaParserTypeAdapter.isAssignableBy(other);
}

Expand All @@ -240,7 +241,7 @@ public boolean isAssignableBy(Type type) {
}

@Override
public boolean canBeAssignedTo(ReferenceTypeDeclaration other) {
public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) {
// TODO consider generic types
if (this.getQualifiedName().equals(other.getQualifiedName())) {
return true;
Expand All @@ -258,7 +259,7 @@ public boolean canBeAssignedTo(ReferenceTypeDeclaration other) {

if (this.wrappedNode.getImplementedTypes() != null) {
for (ClassOrInterfaceType type : wrappedNode.getImplementedTypes()) {
ReferenceTypeDeclaration ancestor = (ReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
ResolvedReferenceTypeDeclaration ancestor = (ResolvedReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
if (ancestor.canBeAssignedTo(other)) {
return true;
}
Expand Down
Expand Up @@ -21,6 +21,7 @@
import com.github.javaparser.ast.body.BodyDeclaration;
import com.github.javaparser.ast.body.EnumConstantDeclaration;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
Expand Down Expand Up @@ -104,7 +105,7 @@ public boolean hasDirectlyAnnotation(String canonicalName) {
}

@Override
public boolean canBeAssignedTo(ReferenceTypeDeclaration other) {
public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) {
// Enums cannot be extended
if (other.getQualifiedName().equals(this.getQualifiedName())) {
return true;
Expand Down Expand Up @@ -151,7 +152,7 @@ public String getQualifiedName() {
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
return javaParserTypeAdapter.isAssignableBy(other);
}

Expand Down Expand Up @@ -249,7 +250,7 @@ public ValuesMethod(JavaParserEnumDeclaration enumDeclaration, TypeSolver typeSo
}

@Override
public ReferenceTypeDeclaration declaringType() {
public ResolvedReferenceTypeDeclaration declaringType() {
return enumDeclaration;
}

Expand Down
Expand Up @@ -22,6 +22,7 @@
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.expr.AnnotationExpr;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
Expand Down Expand Up @@ -145,7 +146,7 @@ public String getQualifiedName() {
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
return javaParserTypeAdapter.isAssignableBy(other);
}

Expand All @@ -155,14 +156,14 @@ public boolean isAssignableBy(Type type) {
}

@Override
public boolean canBeAssignedTo(ReferenceTypeDeclaration other) {
public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) {
// TODO consider generic types
if (this.getQualifiedName().equals(other.getQualifiedName())) {
return true;
}
if (this.wrappedNode.getExtendedTypes() != null) {
for (ClassOrInterfaceType type : wrappedNode.getExtendedTypes()) {
ReferenceTypeDeclaration ancestor = (ReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
ResolvedReferenceTypeDeclaration ancestor = (ResolvedReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
if (ancestor.canBeAssignedTo(other)) {
return true;
}
Expand All @@ -171,7 +172,7 @@ public boolean canBeAssignedTo(ReferenceTypeDeclaration other) {

if (this.wrappedNode.getImplementedTypes() != null) {
for (ClassOrInterfaceType type : wrappedNode.getImplementedTypes()) {
ReferenceTypeDeclaration ancestor = (ReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
ResolvedReferenceTypeDeclaration ancestor = (ResolvedReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
if (ancestor.canBeAssignedTo(other)) {
return true;
}
Expand Down
Expand Up @@ -19,6 +19,7 @@
import com.github.javaparser.ast.AccessSpecifier;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.expr.ObjectCreationExpr;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.declarations.common.MethodDeclarationCommonLogic;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
Expand Down Expand Up @@ -56,7 +57,7 @@ public String toString() {
}

@Override
public ReferenceTypeDeclaration declaringType() {
public ResolvedReferenceTypeDeclaration declaringType() {
if (getParentNode(wrappedNode) instanceof ObjectCreationExpr) {
ObjectCreationExpr parentNode = (ObjectCreationExpr) getParentNode(wrappedNode);
return new JavaParserAnonymousClassDeclaration(parentNode, typeSolver);
Expand Down
Expand Up @@ -8,6 +8,7 @@
import com.github.javaparser.ast.nodeTypes.NodeWithMembers;
import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName;
import com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory;
import com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration;
Expand Down Expand Up @@ -55,7 +56,7 @@ public String getQualifiedName() {
}
}

public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
List<ReferenceType> ancestorsOfOther = other.getAllAncestors();
ancestorsOfOther.add(new ReferenceTypeImpl(other, typeSolver));
for (ReferenceType ancestorOfOther : ancestorsOfOther) {
Expand All @@ -71,7 +72,7 @@ public boolean isAssignableBy(Type type) {
return true;
}
if (type.isReferenceType()) {
ReferenceTypeDeclaration other = typeSolver.solveType(type.describe());
ResolvedReferenceTypeDeclaration other = typeSolver.solveType(type.describe());
return isAssignableBy(other);
} else {
throw new UnsupportedOperationException();
Expand Down
Expand Up @@ -19,6 +19,7 @@
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.type.ClassOrInterfaceType;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade;
import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration;
Expand Down Expand Up @@ -85,7 +86,7 @@ public String getName() {
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
return isAssignableBy(new ReferenceTypeImpl(other, typeSolver));
}

Expand Down Expand Up @@ -123,7 +124,7 @@ public TypeParametrizable getContainer() {
com.github.javaparser.ast.body.ConstructorDeclaration jpConstructorDeclaration = (com.github.javaparser.ast.body.ConstructorDeclaration) parentNode;
Optional<ClassOrInterfaceDeclaration> jpTypeDeclaration = jpConstructorDeclaration.getAncestorOfType(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.class);
if (jpTypeDeclaration.isPresent()) {
ReferenceTypeDeclaration typeDeclaration = JavaParserFacade.get(typeSolver).getTypeDeclaration(jpTypeDeclaration.get());
ResolvedReferenceTypeDeclaration typeDeclaration = JavaParserFacade.get(typeSolver).getTypeDeclaration(jpTypeDeclaration.get());
if (typeDeclaration.isClass()) {
return new JavaParserConstructorDeclaration(typeDeclaration.asClass(), jpConstructorDeclaration, typeSolver);
}
Expand Down
Expand Up @@ -18,6 +18,7 @@

import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.type.TypeParameter;
import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
import com.github.javaparser.symbolsolver.core.resolution.Context;
import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration;
import com.github.javaparser.symbolsolver.model.declarations.FieldDeclaration;
Expand Down Expand Up @@ -50,7 +51,7 @@ public JavaParserTypeVariableDeclaration(TypeParameter wrappedNode, TypeSolver t
}

@Override
public boolean isAssignableBy(ReferenceTypeDeclaration other) {
public boolean isAssignableBy(ResolvedReferenceTypeDeclaration other) {
return isAssignableBy(new ReferenceTypeImpl(other, typeSolver));
}

Expand Down

0 comments on commit c3dc366

Please sign in to comment.