JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/resolution/types/ResolvedArrayType.java
1/*
2 * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser.
3 * Copyright (C) 2011, 2013-2020 The JavaParser Team.
4 *
5 * This file is part of JavaParser.
6 *
7 * JavaParser can be used either under the terms of
8 * a) the GNU Lesser General Public License as published by
9 *     the Free Software Foundation, either version 3 of the License, or
10 *     (at your option) any later version.
11 * b) the terms of the Apache License
12 *
13 * You should have received a copy of both licenses in LICENCE.LGPL and
14 * LICENCE.APACHE. Please refer to those files for details.
15 *
16 * JavaParser is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License for more details.
20 */
21
22package com.github.javaparser.resolution.types;
23
24import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
25
26import java.util.Map;
27
28/**
29 * Array Type.
30 *
31 * @author Federico Tomassetti
32 */
33public class ResolvedArrayType implements ResolvedType {
34
35    private ResolvedType baseType;
36
37    public ResolvedArrayType(ResolvedType baseType) {
38        this.baseType = baseType;
39    }
40
41    ///
42    /// Object methods
43    ///
44
45    @Override
46    public boolean equals(Object o) {
47        if (this == o) return true;
48        if (o == null || getClass() != o.getClass()) return false;
49
50        ResolvedArrayType that = (ResolvedArrayTypeo;
51
52        if (!baseType.equals(that.baseType)) return false;
53
54        return true;
55    }
56
57    @Override
58    public int hashCode() {
59        return baseType.hashCode();
60    }
61
62    @Override
63    public String toString() {
64        return "ResolvedArrayType{" + baseType + "}";
65    }
66
67    ///
68    /// Type methods
69    ///
70
71    @Override
72    public ResolvedArrayType asArrayType() {
73        return this;
74    }
75
76    @Override
77    public boolean isArray() {
78        return true;
79    }
80
81    @Override
82    public String describe() {
83        return baseType.describe() + "[]";
84    }
85
86    public ResolvedType getComponentType() {
87        return baseType;
88    }
89
90    @Override
91    public boolean isAssignableBy(ResolvedType other) {
92        if (other.isArray()) {
93            if (baseType.isPrimitive() && other.asArrayType().getComponentType().isPrimitive()) {
94              return baseType.equals(other.asArrayType().getComponentType());
95            }
96            return baseType.isAssignableBy(other.asArrayType().getComponentType());
97        } else if (other.isNull()) {
98            return true;
99        }
100        return false;
101    }
102
103    @Override
104    public ResolvedType replaceTypeVariables(ResolvedTypeParameterDeclaration tpToReplaceResolvedType replacedMap<ResolvedTypeParameterDeclarationResolvedTypeinferredTypes) {
105        ResolvedType baseTypeReplaced = baseType.replaceTypeVariables(tpToReplacereplacedinferredTypes);
106        if (baseTypeReplaced == baseType) {
107            return this;
108        } else {
109            return new ResolvedArrayType(baseTypeReplaced);
110        }
111    }
112
113}
114
MembersX
ResolvedArrayType:equals
ResolvedArrayType:isAssignableBy
ResolvedArrayType:baseType
ResolvedArrayType:asArrayType
ResolvedArrayType:hashCode
ResolvedArrayType:ResolvedArrayType
ResolvedArrayType:equals:Block:that
ResolvedArrayType:replaceTypeVariables
ResolvedArrayType:toString
ResolvedArrayType:replaceTypeVariables:Block:baseTypeReplaced
ResolvedArrayType:isArray
ResolvedArrayType:describe
ResolvedArrayType:getComponentType
Members
X