blob: 6d463f06d8e8753a2e4225fe35a9e22215b5f397 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package com.replaymod.gradle.remap.legacy
import org.cadixdev.bombe.type.signature.MethodSignature
import org.cadixdev.lorenz.MappingSet
import org.cadixdev.lorenz.impl.MappingSetModelFactoryImpl
import org.cadixdev.lorenz.impl.model.InnerClassMappingImpl
import org.cadixdev.lorenz.impl.model.TopLevelClassMappingImpl
import org.cadixdev.lorenz.model.ClassMapping
import org.cadixdev.lorenz.model.InnerClassMapping
import org.cadixdev.lorenz.model.MethodMapping
import org.cadixdev.lorenz.model.TopLevelClassMapping
import java.util.*
class LegacyMappingSetModelFactory : MappingSetModelFactoryImpl() {
override fun createTopLevelClassMapping(parent: MappingSet, obfuscatedName: String, deobfuscatedName: String): TopLevelClassMapping {
return object : TopLevelClassMappingImpl(parent, obfuscatedName, deobfuscatedName) {
private fun stripDesc(signature: MethodSignature): MethodSignature {
// actual descriptor isn't included in legacy format
return MethodSignature.of(signature.name, "()V")
}
override fun hasMethodMapping(signature: MethodSignature): Boolean {
return super.hasMethodMapping(signature) || super.hasMethodMapping(stripDesc(signature))
}
override fun getMethodMapping(signature: MethodSignature): Optional<MethodMapping> {
var maybeMapping = super.getMethodMapping(signature)
if (!maybeMapping.isPresent || maybeMapping.get().let { it.signature == it.deobfuscatedSignature }) {
maybeMapping = super.getMethodMapping(stripDesc(signature))
}
return maybeMapping
}
}
}
override fun createInnerClassMapping(
parent: ClassMapping<out ClassMapping<*, *>, *>?,
obfuscatedName: String?,
deobfuscatedName: String?
): InnerClassMapping {
return object : InnerClassMappingImpl(parent, obfuscatedName, deobfuscatedName) {
private fun stripDesc(signature: MethodSignature): MethodSignature {
// actual descriptor isn't included in legacy format
return MethodSignature.of(signature.name, "()V")
}
override fun hasMethodMapping(signature: MethodSignature): Boolean {
return super.hasMethodMapping(signature) || super.hasMethodMapping(stripDesc(signature))
}
override fun getMethodMapping(signature: MethodSignature): Optional<MethodMapping> {
var maybeMapping = super.getMethodMapping(signature)
if (!maybeMapping.isPresent || maybeMapping.get().let { it.signature == it.deobfuscatedSignature }) {
maybeMapping = super.getMethodMapping(stripDesc(signature))
}
return maybeMapping
}
}
}
}
|