diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java deleted file mode 100644 index 35ff35bb8..000000000 --- a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/resolution/SymbolSolver.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright 2016 Federico Tomassetti - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.github.javaparser.symbolsolver.resolution; - -import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.type.ClassOrInterfaceType; -import com.github.javaparser.symbolsolver.core.resolution.Context; -import com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFactory; -import com.github.javaparser.symbolsolver.javaparsermodel.UnsolvedSymbolException; -import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserClassDeclaration; -import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserEnumDeclaration; -import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserInterfaceDeclaration; -import com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration; -import com.github.javaparser.symbolsolver.model.declarations.MethodDeclaration; -import com.github.javaparser.symbolsolver.model.declarations.ReferenceTypeDeclaration; -import com.github.javaparser.symbolsolver.model.declarations.TypeDeclaration; -import com.github.javaparser.symbolsolver.model.declarations.ValueDeclaration; -import com.github.javaparser.symbolsolver.model.methods.MethodUsage; -import com.github.javaparser.symbolsolver.model.resolution.SymbolReference; -import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; -import com.github.javaparser.symbolsolver.model.resolution.Value; -import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl; -import com.github.javaparser.symbolsolver.model.typesystem.Type; -import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionClassDeclaration; -import com.github.javaparser.symbolsolver.reflectionmodel.ReflectionInterfaceDeclaration; - -import java.util.List; -import java.util.Optional; - -/** - * @author Federico Tomassetti - */ -public class SymbolSolver { - - private TypeSolver typeSolver; - - public SymbolSolver(TypeSolver typeSolver) { - if (typeSolver == null) throw new IllegalArgumentException(); - - this.typeSolver = typeSolver; - } - - public SymbolReference<? extends ValueDeclaration> solveSymbol(String name, Context context) { - return context.solveSymbol(name, typeSolver); - } - - public SymbolReference<? extends ValueDeclaration> solveSymbol(String name, Node node) { - return solveSymbol(name, JavaParserFactory.getContext(node, typeSolver)); - } - - public Optional<Value> solveSymbolAsValue(String name, Context context) { - return context.solveSymbolAsValue(name, typeSolver); - } - - public Optional<Value> solveSymbolAsValue(String name, Node node) { - Context context = JavaParserFactory.getContext(node, typeSolver); - return solveSymbolAsValue(name, context); - } - - public SymbolReference<? extends TypeDeclaration> solveType(String name, Context context) { - return context.solveType(name, typeSolver); - } - - public SymbolReference<? extends TypeDeclaration> solveType(String name, Node node) { - return solveType(name, JavaParserFactory.getContext(node, typeSolver)); - } - - public MethodUsage solveMethod(String methodName, List<Type> argumentsTypes, Context context) { - SymbolReference<MethodDeclaration> decl = context.solveMethod(methodName, argumentsTypes, false, typeSolver); - if (!decl.isSolved()) { - throw new UnsolvedSymbolException(context, methodName); - } - return new MethodUsage(decl.getCorrespondingDeclaration()); - } - - public MethodUsage solveMethod(String methodName, List<Type> argumentsTypes, Node node) { - return solveMethod(methodName, argumentsTypes, JavaParserFactory.getContext(node, typeSolver)); - } - - public TypeDeclaration solveType(com.github.javaparser.ast.type.Type type) { - if (type instanceof ClassOrInterfaceType) { - - // FIXME should call typesolver here! - - String name = ((ClassOrInterfaceType) type).getName().getId(); - SymbolReference<TypeDeclaration> ref = JavaParserFactory.getContext(type, typeSolver).solveType(name, typeSolver); - if (!ref.isSolved()) { - throw new UnsolvedSymbolException(JavaParserFactory.getContext(type, typeSolver), name); - } - return ref.getCorrespondingDeclaration(); - } else { - throw new UnsupportedOperationException(type.getClass().getCanonicalName()); - } - } - - public Type solveTypeUsage(String name, Context context) { - Optional<Type> genericType = context.solveGenericType(name, typeSolver); - if (genericType.isPresent()) { - return genericType.get(); - } - ReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(name); - ReferenceTypeImpl typeUsage = new ReferenceTypeImpl(typeDeclaration, typeSolver); - return typeUsage; - } - - /** - * Solve any possible visible symbols including: fields, internal types, type variables, the type itself or its - * containers. - * <p> - * It should contain its own private fields but not inherited private fields. - */ - public SymbolReference<? extends ValueDeclaration> solveSymbolInType(TypeDeclaration typeDeclaration, String name) { - if (typeDeclaration instanceof JavaParserClassDeclaration) { - Context ctx = ((JavaParserClassDeclaration) typeDeclaration).getContext(); - return ctx.solveSymbol(name, typeSolver); - } - if (typeDeclaration instanceof JavaParserInterfaceDeclaration) { - Context ctx = ((JavaParserInterfaceDeclaration) typeDeclaration).getContext(); - return ctx.solveSymbol(name, typeSolver); - } - if (typeDeclaration instanceof JavaParserEnumDeclaration) { - Context ctx = ((JavaParserEnumDeclaration) typeDeclaration).getContext(); - return ctx.solveSymbol(name, typeSolver); - } - if (typeDeclaration instanceof ReflectionClassDeclaration) { - return ((ReflectionClassDeclaration) typeDeclaration).solveSymbol(name, typeSolver); - } - if (typeDeclaration instanceof ReflectionInterfaceDeclaration) { - return ((ReflectionInterfaceDeclaration) typeDeclaration).solveSymbol(name, typeSolver); - } - if (typeDeclaration instanceof JavassistClassDeclaration) { - return ((JavassistClassDeclaration) typeDeclaration).solveSymbol(name, typeSolver); - } - return SymbolReference.unsolved(ValueDeclaration.class); - } - - /** - * Try to solve a symbol just in the declaration, it does not delegate to the container. - */ - @Deprecated - public SymbolReference<TypeDeclaration> solveTypeInType(TypeDeclaration typeDeclaration, String name) { - if (typeDeclaration instanceof JavaParserClassDeclaration) { - return ((JavaParserClassDeclaration) typeDeclaration).solveType(name, typeSolver); - } - if (typeDeclaration instanceof JavaParserInterfaceDeclaration) { - return ((JavaParserInterfaceDeclaration) typeDeclaration).solveType(name, typeSolver); - } - return SymbolReference.unsolved(ReferenceTypeDeclaration.class); - } -} |