Skip to content

Commit 6220326

Browse files
LlamaLad7modmuss50
authored andcommitted
Refactor: Extract AtMemberMappable.
1 parent 467036d commit 6220326

File tree

2 files changed

+60
-35
lines changed

2 files changed

+60
-35
lines changed

src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/AtAnnotationVisitor.java

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,15 @@
1919
package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
2020

2121
import java.util.Objects;
22-
import java.util.Optional;
2322

2423
import org.objectweb.asm.AnnotationVisitor;
2524
import org.objectweb.asm.tree.AnnotationNode;
2625

27-
import net.fabricmc.tinyremapper.api.TrMember;
2826
import net.fabricmc.tinyremapper.extension.mixin.common.IMappable;
29-
import net.fabricmc.tinyremapper.extension.mixin.common.ResolveUtility;
3027
import net.fabricmc.tinyremapper.extension.mixin.common.data.Annotation;
3128
import net.fabricmc.tinyremapper.extension.mixin.common.data.AnnotationElement;
3229
import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
3330
import net.fabricmc.tinyremapper.extension.mixin.common.data.Constant;
34-
import net.fabricmc.tinyremapper.extension.mixin.common.data.Message;
3531
import net.fabricmc.tinyremapper.extension.mixin.soft.data.MemberInfo;
3632

3733
/**
@@ -87,7 +83,7 @@ public void visit(String name, Object value) {
8783
if (this.value.equals("NEW")) {
8884
value = new AtConstructorMappable(data, info).result().toString();
8985
} else {
90-
value = new AtMethodMappable(data, info).result().toString();
86+
value = new AtMemberMappable(data, info).result().toString();
9187
}
9288
}
9389
}
@@ -122,36 +118,6 @@ public void visit(String name, Object value) {
122118
}
123119
}
124120

125-
private static class AtMethodMappable implements IMappable<MemberInfo> {
126-
private final CommonData data;
127-
private final MemberInfo info;
128-
129-
AtMethodMappable(CommonData data, MemberInfo info) {
130-
this.data = Objects.requireNonNull(data);
131-
this.info = Objects.requireNonNull(info);
132-
}
133-
134-
@Override
135-
public MemberInfo result() {
136-
if (!info.isFullyQualified()) {
137-
data.getLogger().warn(Message.NOT_FULLY_QUALIFIED, info);
138-
return info;
139-
}
140-
141-
Optional<TrMember> resolved = data.resolver.resolveMember(info.getOwner(), info.getName(), info.getDesc(), ResolveUtility.FLAG_UNIQUE | ResolveUtility.FLAG_RECURSIVE);
142-
143-
if (resolved.isPresent()) {
144-
String newOwner = data.mapper.asTrRemapper().map(info.getOwner());
145-
String newName = data.mapper.mapName(resolved.get());
146-
String newDesc = data.mapper.mapDesc(resolved.get());
147-
148-
return new MemberInfo(newOwner, newName, info.getQuantifier(), newDesc);
149-
} else {
150-
return info;
151-
}
152-
}
153-
}
154-
155121
private static class AtConstructorMappable implements IMappable<MemberInfo> {
156122
private final CommonData data;
157123
private final MemberInfo info;
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* Copyright (c) 2016, 2018, Player, asie
3+
* Copyright (c) 2025, FabricMC
4+
*
5+
* This program is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU Lesser General Public License as published by
7+
* the Free Software Foundation, either version 3 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU Lesser General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU Lesser General Public License
16+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
19+
package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
20+
21+
import java.util.Objects;
22+
import java.util.Optional;
23+
24+
import net.fabricmc.tinyremapper.api.TrMember;
25+
import net.fabricmc.tinyremapper.extension.mixin.common.IMappable;
26+
import net.fabricmc.tinyremapper.extension.mixin.common.ResolveUtility;
27+
import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
28+
import net.fabricmc.tinyremapper.extension.mixin.common.data.Message;
29+
import net.fabricmc.tinyremapper.extension.mixin.soft.data.MemberInfo;
30+
31+
class AtMemberMappable implements IMappable<MemberInfo> {
32+
private final CommonData data;
33+
private final MemberInfo info;
34+
35+
AtMemberMappable(CommonData data, MemberInfo info) {
36+
this.data = Objects.requireNonNull(data);
37+
this.info = Objects.requireNonNull(info);
38+
}
39+
40+
@Override
41+
public MemberInfo result() {
42+
if (!info.isFullyQualified()) {
43+
data.getLogger().warn(Message.NOT_FULLY_QUALIFIED, info);
44+
return info;
45+
}
46+
47+
Optional<TrMember> resolved = data.resolver.resolveMember(info.getOwner(), info.getName(), info.getDesc(), ResolveUtility.FLAG_UNIQUE | ResolveUtility.FLAG_RECURSIVE);
48+
49+
if (resolved.isPresent()) {
50+
String newOwner = data.mapper.asTrRemapper().map(info.getOwner());
51+
String newName = data.mapper.mapName(resolved.get());
52+
String newDesc = data.mapper.mapDesc(resolved.get());
53+
54+
return new MemberInfo(newOwner, newName, info.getQuantifier(), newDesc);
55+
} else {
56+
return info;
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)