MCPcopy Create free account
hub / github.com/LFYSec/MScan / ClassType

Class ClassType

src/main/java/pascal/taie/language/type/ClassType.java:29–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27import pascal.taie.util.Hashes;
28
29public class ClassType implements ReferenceType {
30
31 private final JClassLoader loader;
32
33 private final String name;
34
35 /**
36 * The cache of {@link ClassType#getJClass()}.
37 */
38 private transient JClass jclass;
39
40 public ClassType(JClassLoader loader, String name) {
41 this.loader = loader;
42 this.name = name;
43 }
44
45 @Override
46 public String getName() {
47 return name;
48 }
49
50 public JClass getJClass() {
51 if (jclass == null) {
52 jclass = loader.loadClass(name);
53 }
54 return jclass;
55 }
56
57 @Override
58 public boolean equals(Object o) {
59 if (this == o) {
60 return true;
61 }
62 if (o == null || getClass() != o.getClass()) {
63 return false;
64 }
65 ClassType classType = (ClassType) o;
66 return loader.equals(classType.loader)
67 && name.equals(classType.name);
68 }
69
70 @Override
71 public int hashCode() {
72 return Hashes.hash(loader, name);
73 }
74
75 @Override
76 public String toString() {
77 return name;
78 }
79}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected