MCPcopy Create free account
hub / github.com/FabricMC/Matcher / ClassInstance

Class ClassInstance

src/main/java/matcher/type/ClassInstance.java:30–1223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28import matcher.type.Signature.ClassSignature;
29
30public final class ClassInstance implements ParentInstance, Matchable<ClassInstance> {
31 /**
32 * Create a shared unknown class.
33 */
34 ClassInstance(String id, ClassEnv env) {
35 this(id, null, env, null, false, false, null);
36
37 assert id.indexOf('[') == -1 : id;
38 }
39
40 /**
41 * Create a known class (class path).
42 */
43 public ClassInstance(String id, URI origin, ClassEnv env, ClassNode asmNode) {
44 this(id, origin, env, asmNode, false, false, null);
45
46 assert id.indexOf('[') == -1 : id;
47 }
48
49 /**
50 * Create an array class.
51 */
52 ClassInstance(String id, ClassInstance elementClass) {
53 this(id, null, elementClass.env, null, elementClass.nameObfuscated, false, elementClass);
54
55 assert id.startsWith("[") : id;
56 assert id.indexOf('[', getArrayDimensions()) == -1 : id;
57 assert !elementClass.isArray();
58
59 elementClass.addArray(this);
60 }
61
62 /**
63 * Create a non-array class.
64 */
65 ClassInstance(String id, URI origin, ClassEnv env, ClassNode asmNode, boolean nameObfuscated) {
66 this(id, origin, env, asmNode, nameObfuscated, true, null);
67
68 assert id.startsWith("L") : id;
69 assert id.indexOf('[') == -1 : id;
70 assert asmNode != null;
71 }
72
73 private ClassInstance(String id, URI origin, ClassEnv env, ClassNode asmNode, boolean nameObfuscated, boolean input, ClassInstance elementClass) {
74 if (id.isEmpty()) throw new IllegalArgumentException("empty id");
75 if (env == null) throw new NullPointerException("null env");
76
77 this.id = id;
78 this.origin = origin;
79 this.env = env;
80 this.asmNodes = asmNode == null ? null : new ClassNode[] { asmNode };
81 this.nameObfuscated = nameObfuscated;
82 this.input = input;
83 this.elementClass = elementClass;
84
85 if (env.isShared()) matchedClass = this;
86 }
87

Callers

nothing calls this directly

Calls 1

newIdentityHashSetMethod · 0.95

Tested by

no test coverage detected