Skip to content

Commit

Permalink
Commenting and cleaning
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Aug 17, 2015
1 parent e1171ea commit 234c2e5
Show file tree
Hide file tree
Showing 23 changed files with 237 additions and 143 deletions.
Expand Up @@ -5,11 +5,8 @@
import java.util.List; import java.util.List;


/** /**
* A class declaration. * A class or interface declaration.
* Not an interface declaration.
*/ */
public interface ClassDeclaration extends TypeDeclaration { public interface ClassOrInterfaceDeclaration extends TypeDeclaration {

public List<TypeParameter> getTypeParameters(); public List<TypeParameter> getTypeParameters();

} }
Expand Up @@ -7,5 +7,8 @@ public interface Declaration {
String getName(); String getName();
boolean isField(); boolean isField();
boolean isParameter(); boolean isParameter();
boolean isVariable();
boolean isType(); boolean isType();
boolean isClass();
boolean isInterface();
} }
Expand Up @@ -10,6 +10,10 @@
*/ */
public interface MethodDeclaration extends Declaration, TypeParametrized { public interface MethodDeclaration extends Declaration, TypeParametrized {


/**
* The type in which the method is declared.
* @return
*/
TypeDeclaration declaringType(); TypeDeclaration declaringType();


TypeDeclaration getReturnType(TypeSolver typeSolver); TypeDeclaration getReturnType(TypeSolver typeSolver);
Expand Down
@@ -1,7 +1,37 @@
package me.tomassetti.symbolsolver.model.declarations; package me.tomassetti.symbolsolver.model.declarations;


/** /**
* Created by federico on 02/08/15. * @author Federico Tomassetti
*/ */
public interface ParameterDeclaration extends ValueDeclaration { public interface ParameterDeclaration extends ValueDeclaration {

@Override
default boolean isField() {
return false;
}

@Override
default boolean isParameter() {
return true;
}

@Override
default boolean isVariable() {
return false;
}

@Override
default boolean isType() {
return false;
}

@Override
default boolean isClass() {
return false;
}

@Override
default boolean isInterface() {
return false;
}
} }
Expand Up @@ -12,7 +12,7 @@
import java.util.Optional; import java.util.Optional;


/** /**
* Created by federico on 31/07/15. * @author Federico Tomassetti
*/ */
public interface TypeDeclaration extends Declaration, TypeParametrized { public interface TypeDeclaration extends Declaration, TypeParametrized {
String getQualifiedName(); String getQualifiedName();
Expand All @@ -37,7 +37,6 @@ default SymbolReference<MethodDeclaration> solveMethod(String name, List<TypeUsa


boolean hasField(String name); boolean hasField(String name);



default Optional<MethodUsage> solveMethodAsUsage(String name, List<TypeUsage> parameterTypes, TypeSolver typeSolver, Context invokationContext) { default Optional<MethodUsage> solveMethodAsUsage(String name, List<TypeUsage> parameterTypes, TypeSolver typeSolver, Context invokationContext) {
return getContext().solveMethodAsUsage(name, parameterTypes, typeSolver); return getContext().solveMethodAsUsage(name, parameterTypes, typeSolver);
} }
Expand Down
Expand Up @@ -7,7 +7,7 @@
import java.util.Optional; import java.util.Optional;


/** /**
* Created by federico on 03/08/15. * @author Federico Tomassetti
*/ */
public interface TypeParametrized { public interface TypeParametrized {


Expand Down
Expand Up @@ -4,12 +4,10 @@
import me.tomassetti.symbolsolver.model.usages.TypeUsage; import me.tomassetti.symbolsolver.model.usages.TypeUsage;


/** /**
* Created by federico on 28/07/15. * @author Federico Tomassetti
*/ */
public interface ValueDeclaration extends Declaration { public interface ValueDeclaration extends Declaration {


TypeDeclaration asTypeDeclaration();

TypeDeclaration getType(TypeSolver typeSolver); TypeDeclaration getType(TypeSolver typeSolver);


default TypeUsage getTypeUsage(TypeSolver typeSolver) { default TypeUsage getTypeUsage(TypeSolver typeSolver) {
Expand Down
Expand Up @@ -63,9 +63,24 @@ public boolean isParameter() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }


@Override
public boolean isVariable() {
return false;
}

@Override @Override
public boolean isType() { public boolean isType() {
throw new UnsupportedOperationException(); return true;
}

@Override
public boolean isClass() {
return false;
}

@Override
public boolean isInterface() {
return false;
} }


@Override @Override
Expand Down
Expand Up @@ -6,8 +6,7 @@
import com.github.javaparser.ast.body.*; import com.github.javaparser.ast.body.*;
import me.tomassetti.symbolsolver.model.*; import me.tomassetti.symbolsolver.model.*;
import me.tomassetti.symbolsolver.model.FieldDeclaration; import me.tomassetti.symbolsolver.model.FieldDeclaration;
import me.tomassetti.symbolsolver.model.declarations.ClassDeclaration; import me.tomassetti.symbolsolver.model.declarations.ClassOrInterfaceDeclaration;
import me.tomassetti.symbolsolver.model.declarations.MethodDeclaration;
import me.tomassetti.symbolsolver.model.javaparser.JavaParserFactory; import me.tomassetti.symbolsolver.model.javaparser.JavaParserFactory;
import me.tomassetti.symbolsolver.model.usages.TypeUsage; import me.tomassetti.symbolsolver.model.usages.TypeUsage;


Expand All @@ -18,13 +17,13 @@
/** /**
* Created by federico on 30/07/15. * Created by federico on 30/07/15.
*/ */
public class JavaParserClassDeclaration implements ClassDeclaration { public class JavaParserClassDeclaration implements ClassOrInterfaceDeclaration {


public JavaParserClassDeclaration(ClassOrInterfaceDeclaration wrappedNode) { public JavaParserClassDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration wrappedNode) {
this.wrappedNode = wrappedNode; this.wrappedNode = wrappedNode;
} }


private ClassOrInterfaceDeclaration wrappedNode; private com.github.javaparser.ast.body.ClassOrInterfaceDeclaration wrappedNode;


@Override @Override
public Context getContext() { public Context getContext() {
Expand All @@ -51,11 +50,26 @@ public boolean isParameter() {
return false; return false;
} }


@Override
public boolean isVariable() {
return false;
}

@Override @Override
public boolean isType() { public boolean isType() {
return true; return true;
} }


@Override
public boolean isClass() {
return !wrappedNode.isInterface();
}

@Override
public boolean isInterface() {
return wrappedNode.isInterface();
}

@Override @Override
public String getQualifiedName() { public String getQualifiedName() {
String containerName = containerName("", wrappedNode.getParentNode()); String containerName = containerName("", wrappedNode.getParentNode());
Expand All @@ -67,9 +81,9 @@ public String getQualifiedName() {
} }


private String containerName(String base, Node container) { private String containerName(String base, Node container) {
if (container instanceof ClassOrInterfaceDeclaration) { if (container instanceof com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) {
String b = containerName(base, container.getParentNode()); String b = containerName(base, container.getParentNode());
String cn = ((ClassOrInterfaceDeclaration)container).getName(); String cn = ((com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)container).getName();
if (b.isEmpty()) { if (b.isEmpty()) {
return cn; return cn;
} else { } else {
Expand Down
Expand Up @@ -27,72 +27,48 @@ public JavaParserFieldDeclaration(VariableDeclarator variableDeclarator) {
this.fieldDeclaration = (com.github.javaparser.ast.body.FieldDeclaration)variableDeclarator.getParentNode(); this.fieldDeclaration = (com.github.javaparser.ast.body.FieldDeclaration)variableDeclarator.getParentNode();
} }


@Override
public TypeDeclaration asTypeDeclaration() {
throw new UnsupportedOperationException();
}

@Override @Override
public TypeUsage getTypeUsage(TypeSolver typeSolver) { public TypeUsage getTypeUsage(TypeSolver typeSolver) {
return JavaParserFacade.get(typeSolver).convertToUsage(fieldDeclaration.getType(), fieldDeclaration); return JavaParserFacade.get(typeSolver).convertToUsage(fieldDeclaration.getType(), fieldDeclaration);
/*TypeUsage typeUsage = new TypeUsageOfTypeDeclaration(typeDeclaration);
if (!typeUsage.parameters().isEmpty()) {
throw new UnsupportedOperationException(typeUsage.toString()+" "+fieldDeclaration.getType());
}
return typeUsage;*/
} }


/*private TypeUsage replaceTypeParams(TypeUsage typeUsage){
System.out.println("GOT "+typeUsage);
if (typeUsage.isTypeVariable()) {
System.out.println(" is type variable");
TypeParameter typeParameter = typeUsage.asTypeParameter();
if (typeParameter.declaredOnClass()) {
System.out.println(" declared on class");
System.out.println(" type param name "+typeParameter.getName());
Optional<TypeUsage> typeParam = typeParamByName(typeParameter.getName());
if (typeParam.isPresent()) {
typeUsage = typeParam.get();
}
}
}
for (int i=0; i<typeUsage.parameters().size(); i++) {
TypeUsage replaced = replaceTypeParams(typeUsage.parameters().get(i));
// Identity comparison on purpose
if (replaced != typeUsage.parameters().get(i)) {
typeUsage = typeUsage.replaceParam(i, replaced);
}
}
System.out.println("TRANSFORMED IN "+typeUsage);
return typeUsage;
}*/


@Override @Override
public TypeDeclaration getType(TypeSolver typeSolver) { public TypeDeclaration getType(TypeSolver typeSolver) {
return JavaParserFacade.get(typeSolver).convert(fieldDeclaration.getType(), fieldDeclaration); return JavaParserFacade.get(typeSolver).convert(fieldDeclaration.getType(), fieldDeclaration);
} }


@Override @Override
public String getName() { public String getName() {
throw new UnsupportedOperationException(); return variableDeclarator.getId().getName();
} }


@Override @Override
public boolean isField() { public boolean isField() {
throw new UnsupportedOperationException(); return true;
} }


@Override @Override
public boolean isParameter() { public boolean isParameter() {
throw new UnsupportedOperationException(); return false;
}

@Override
public boolean isVariable() {
return false;
} }


@Override @Override
public boolean isType() { public boolean isType() {
throw new UnsupportedOperationException(); return false;
}

@Override
public boolean isClass() {
return false;
}

@Override
public boolean isInterface() {
return false;
} }
} }
Expand Up @@ -121,11 +121,26 @@ public boolean isParameter() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }


@Override
public boolean isVariable() {
return false;
}

@Override @Override
public boolean isType() { public boolean isType() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }


@Override
public boolean isClass() {
return false;
}

@Override
public boolean isInterface() {
return false;
}

@Override @Override
public List<TypeParameter> getTypeParameters() { public List<TypeParameter> getTypeParameters() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
Expand Down
Expand Up @@ -37,11 +37,6 @@ public boolean isType() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }


@Override
public TypeDeclaration asTypeDeclaration() {
throw new UnsupportedOperationException();
}

@Override @Override
public TypeDeclaration getType(TypeSolver typeSolver) { public TypeDeclaration getType(TypeSolver typeSolver) {
return JavaParserFacade.get(typeSolver).convert(wrappedNode.getType(), wrappedNode); return JavaParserFacade.get(typeSolver).convert(wrappedNode.getType(), wrappedNode);
Expand Down
Expand Up @@ -23,14 +23,15 @@ public class JavaParserSymbolDeclaration implements ValueDeclaration {
private Node wrappedNode; private Node wrappedNode;
private boolean field; private boolean field;
private boolean parameter; private boolean parameter;
private boolean variable;
private TypeSolver typeSolver; private TypeSolver typeSolver;


public static JavaParserSymbolDeclaration field(VariableDeclarator wrappedNode, TypeSolver typeSolver) { public static JavaParserSymbolDeclaration field(VariableDeclarator wrappedNode, TypeSolver typeSolver) {
return new JavaParserSymbolDeclaration(wrappedNode, wrappedNode.getId().getName(), typeSolver, true, false); return new JavaParserSymbolDeclaration(wrappedNode, wrappedNode.getId().getName(), typeSolver, true, false, false);
} }


public static JavaParserSymbolDeclaration parameter(Parameter parameter, TypeSolver typeSolver) { public static JavaParserSymbolDeclaration parameter(Parameter parameter, TypeSolver typeSolver) {
return new JavaParserSymbolDeclaration(parameter, parameter.getId().getName(), typeSolver, false, true); return new JavaParserSymbolDeclaration(parameter, parameter.getId().getName(), typeSolver, false, true, false);
} }


@Override @Override
Expand All @@ -41,10 +42,11 @@ public String toString() {
'}'; '}';
} }


private JavaParserSymbolDeclaration(Node wrappedNode, String name, TypeSolver typeSolver, boolean field, boolean parameter) { private JavaParserSymbolDeclaration(Node wrappedNode, String name, TypeSolver typeSolver, boolean field, boolean parameter, boolean variable) {
this.name = name; this.name = name;
this.wrappedNode = wrappedNode; this.wrappedNode = wrappedNode;
this.field = field; this.field = field;
this.variable = variable;
this.parameter = parameter; this.parameter = parameter;
this.typeSolver = typeSolver; this.typeSolver = typeSolver;
} }
Expand All @@ -64,14 +66,24 @@ public boolean isParameter() {
return parameter; return parameter;
} }


@Override
public boolean isVariable() {
return variable;
}

@Override @Override
public boolean isType() { public boolean isType() {
return false; return false;
} }


@Override @Override
public TypeDeclaration asTypeDeclaration() { public boolean isClass() {
throw new UnsupportedOperationException(); return false;
}

@Override
public boolean isInterface() {
return false;
} }


@Override @Override
Expand Down

0 comments on commit 234c2e5

Please sign in to comment.