aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java')
-rw-r--r--javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java319
1 files changed, 0 insertions, 319 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java b/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java
deleted file mode 100644
index 7c50127bb..000000000
--- a/javaparser-symbol-solver-testing/src/test/resources/javasymbolsolver_0_6_0/src/java-symbol-solver-core/com/github/javaparser/symbolsolver/javaparsermodel/declarations/JavaParserInterfaceDeclaration.java
+++ /dev/null
@@ -1,319 +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.javaparsermodel.declarations;
-
-import com.github.javaparser.ast.Node;
-import com.github.javaparser.ast.body.BodyDeclaration;
-import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
-import com.github.javaparser.ast.body.VariableDeclarator;
-import com.github.javaparser.ast.expr.AnnotationExpr;
-import com.github.javaparser.ast.type.ClassOrInterfaceType;
-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.UnsolvedSymbolException;
-import com.github.javaparser.symbolsolver.logic.AbstractTypeDeclaration;
-import com.github.javaparser.symbolsolver.model.declarations.*;
-import com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
-import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
-import com.github.javaparser.symbolsolver.model.typesystem.LazyType;
-import com.github.javaparser.symbolsolver.model.typesystem.ReferenceType;
-import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
-import com.github.javaparser.symbolsolver.model.typesystem.Type;
-import com.github.javaparser.symbolsolver.resolution.SymbolSolver;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * @author Federico Tomassetti
- */
-public class JavaParserInterfaceDeclaration extends AbstractTypeDeclaration implements InterfaceDeclaration {
-
- private TypeSolver typeSolver;
- private ClassOrInterfaceDeclaration wrappedNode;
- private JavaParserTypeAdapter javaParserTypeAdapter;
-
- public JavaParserInterfaceDeclaration(ClassOrInterfaceDeclaration wrappedNode, TypeSolver typeSolver) {
- if (!wrappedNode.isInterface()) {
- throw new IllegalArgumentException();
- }
- this.wrappedNode = wrappedNode;
- this.typeSolver = typeSolver;
- this.javaParserTypeAdapter = new JavaParserTypeAdapter(wrappedNode, typeSolver);
- }
-
- @Override
- public Set<MethodDeclaration> getDeclaredMethods() {
- Set<MethodDeclaration> methods = new HashSet<>();
- for (BodyDeclaration member : wrappedNode.getMembers()) {
- if (member instanceof com.github.javaparser.ast.body.MethodDeclaration) {
- methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver));
- }
- }
- return methods;
- }
-
- public Context getContext() {
- return JavaParserFactory.getContext(wrappedNode, typeSolver);
- }
-
- public Type getUsage(Node node) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- JavaParserInterfaceDeclaration that = (JavaParserInterfaceDeclaration) o;
-
- if (!wrappedNode.equals(that.wrappedNode)) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return wrappedNode.hashCode();
- }
-
- @Override
- public String getName() {
- return wrappedNode.getName().getId();
- }
-
- @Override
- public InterfaceDeclaration asInterface() {
- return this;
- }
-
- @Override
- public boolean hasDirectlyAnnotation(String canonicalName) {
- for (AnnotationExpr annotationExpr : wrappedNode.getAnnotations()) {
- if (solveType(annotationExpr.getName().getId(), typeSolver).getCorrespondingDeclaration().getQualifiedName().equals(canonicalName)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public boolean isInterface() {
- return true;
- }
-
- @Override
- public List<ReferenceType> getInterfacesExtended() {
- List<ReferenceType> interfaces = new ArrayList<>();
- if (wrappedNode.getImplementedTypes() != null) {
- for (ClassOrInterfaceType t : wrappedNode.getImplementedTypes()) {
- interfaces.add(new ReferenceTypeImpl(solveType(t.getName().getId(), typeSolver).getCorrespondingDeclaration().asInterface(), typeSolver));
- }
- }
- return interfaces;
- }
-
- @Override
- public String getPackageName() {
- return javaParserTypeAdapter.getPackageName();
- }
-
- @Override
- public String getClassName() {
- return javaParserTypeAdapter.getClassName();
- }
-
- @Override
- public String getQualifiedName() {
- return javaParserTypeAdapter.getQualifiedName();
- }
-
- @Override
- public boolean isAssignableBy(ReferenceTypeDeclaration other) {
- return javaParserTypeAdapter.isAssignableBy(other);
- }
-
- @Override
- public boolean isAssignableBy(Type type) {
- return javaParserTypeAdapter.isAssignableBy(type);
- }
-
- @Override
- public boolean canBeAssignedTo(ReferenceTypeDeclaration 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);
- if (ancestor.canBeAssignedTo(other)) {
- return true;
- }
- }
- }
-
- if (this.wrappedNode.getImplementedTypes() != null) {
- for (ClassOrInterfaceType type : wrappedNode.getImplementedTypes()) {
- ReferenceTypeDeclaration ancestor = (ReferenceTypeDeclaration) new SymbolSolver(typeSolver).solveType(type);
- if (ancestor.canBeAssignedTo(other)) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- @Override
- public boolean isTypeParameter() {
- return false;
- }
-
- @Override
- public List<FieldDeclaration> getAllFields() {
- ArrayList<FieldDeclaration> fields = new ArrayList<>();
- for (BodyDeclaration member : wrappedNode.getMembers()) {
- if (member instanceof com.github.javaparser.ast.body.FieldDeclaration) {
- com.github.javaparser.ast.body.FieldDeclaration field = (com.github.javaparser.ast.body.FieldDeclaration) member;
- for (VariableDeclarator vd : field.getVariables()) {
- fields.add(new JavaParserFieldDeclaration(vd, typeSolver));
- }
- }
- }
-
- getAncestors().forEach(a -> {
- if (a.getTypeDeclaration() != this) {
- fields.addAll(a.getTypeDeclaration().getAllFields());
- }
- });
-
- return fields;
- }
-
-
- @Override
- public String toString() {
- return "JavaParserInterfaceDeclaration{" +
- "wrappedNode=" + wrappedNode +
- '}';
- }
-
- @Deprecated
- public SymbolReference<TypeDeclaration> solveType(String name, TypeSolver typeSolver) {
- if (this.wrappedNode.getName().getId().equals(name)) {
- return SymbolReference.solved(this);
- }
- SymbolReference<TypeDeclaration> ref = javaParserTypeAdapter.solveType(name, typeSolver);
- if (ref.isSolved()) {
- return ref;
- }
-
- String prefix = wrappedNode.getName() + ".";
- if (name.startsWith(prefix) && name.length() > prefix.length()) {
- return new JavaParserInterfaceDeclaration(this.wrappedNode, typeSolver).solveType(name.substring(prefix.length()), typeSolver);
- }
-
- return getContext().getParent().solveType(name, typeSolver);
- }
-
- @Override
- public List<ReferenceType> getAncestors() {
- List<ReferenceType> ancestors = new ArrayList<>();
- if (wrappedNode.getExtendedTypes() != null) {
- for (ClassOrInterfaceType extended : wrappedNode.getExtendedTypes()) {
- ancestors.add(toReferenceType(extended));
- }
- }
- if (wrappedNode.getImplementedTypes() != null) {
- for (ClassOrInterfaceType implemented : wrappedNode.getImplementedTypes()) {
- ancestors.add(toReferenceType(implemented));
- }
- }
- return ancestors;
- }
-
- @Override
- public List<TypeParameterDeclaration> getTypeParameters() {
- if (this.wrappedNode.getTypeParameters() == null) {
- return Collections.emptyList();
- } else {
- return this.wrappedNode.getTypeParameters().stream().map(
- (tp) -> new JavaParserTypeParameter(tp, typeSolver)
- ).collect(Collectors.toList());
- }
- }
-
- /**
- * Returns the JavaParser node associated with this JavaParserInterfaceDeclaration.
- *
- * @return A visitable JavaParser node wrapped by this object.
- */
- public ClassOrInterfaceDeclaration getWrappedNode() {
- return wrappedNode;
- }
-
- @Override
- public AccessLevel accessLevel() {
- return Helper.toAccessLevel(wrappedNode.getModifiers());
- }
-
- @Override
- public Set<ReferenceTypeDeclaration> internalTypes() {
- Set<ReferenceTypeDeclaration> res = new HashSet<>();
- for (BodyDeclaration member : this.wrappedNode.getMembers()) {
- if (member instanceof com.github.javaparser.ast.body.TypeDeclaration) {
- res.add(JavaParserFacade.get(typeSolver).getTypeDeclaration((com.github.javaparser.ast.body.TypeDeclaration)member));
- }
- }
- return res;
- }
-
- @Override
- public Optional<ReferenceTypeDeclaration> containerType() {
- return javaParserTypeAdapter.containerType();
- }
-
- ///
- /// Private methods
- ///
-
- private ReferenceType toReferenceType(ClassOrInterfaceType classOrInterfaceType) {
- SymbolReference<? extends TypeDeclaration> ref = null;
- if (classOrInterfaceType.toString().indexOf('.') > -1) {
- ref = typeSolver.tryToSolveType(classOrInterfaceType.toString());
- }
- if (ref == null || !ref.isSolved()) {
- ref = solveType(classOrInterfaceType.toString(), typeSolver);
- }
- if (!ref.isSolved()) {
- ref = solveType(classOrInterfaceType.getName().getId(), typeSolver);
- }
- if (!ref.isSolved()) {
- throw new UnsolvedSymbolException(classOrInterfaceType.getName().getId());
- }
- if (!classOrInterfaceType.getTypeArguments().isPresent()) {
- return new ReferenceTypeImpl(ref.getCorrespondingDeclaration().asReferenceType(), typeSolver);
- }
- List<Type> superClassTypeParameters = classOrInterfaceType.getTypeArguments().get()
- .stream().map(ta -> new LazyType(v -> JavaParserFacade.get(typeSolver).convert(ta, ta)))
- .collect(Collectors.toList());
- return new ReferenceTypeImpl(ref.getCorrespondingDeclaration().asReferenceType(), superClassTypeParameters, typeSolver);
- }
-}