Skip to content

Commit 24d5084

Browse files
committed
minor refactoring
1 parent 67ba5c2 commit 24d5084

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

methodhook/src/main/kotlin/io/github/aleksrychkov/methodhook/plugin/MethodHookAsmClassVisitorFactory.kt

+17-6
Original file line numberDiff line numberDiff line change
@@ -84,32 +84,43 @@ internal abstract class MethodHookAsmClassVisitorFactory :
8484
*/
8585
private fun getConfigForClassData(classData: ClassData): List<Config> = configs()
8686
.asSequence()
87-
.filter { config ->
87+
.filterByPackage(classData)
88+
.filterBySuperClass(classData)
89+
.filterByInterfaces(classData)
90+
.filterByClasses(classData)
91+
.toList()
92+
93+
private fun Sequence<Config>.filterByPackage(classData: ClassData): Sequence<Config> =
94+
this.filter { config ->
8895
if (config.packageId.isAll()) return@filter true
8996

9097
val configPackage = config.packageId.valueOrThrow()
9198
classData.className.startsWith("$configPackage.")
9299
}
93-
.filter { config ->
100+
101+
private fun Sequence<Config>.filterBySuperClass(classData: ClassData): Sequence<Config> =
102+
this.filter { config ->
94103
if (config.superClass.isAll()) return@filter true
95104

96105
val configSuperClass = config.superClass.valueOrThrow()
97106
classData.superClasses.contains(configSuperClass)
98107
}
99-
.filter { config ->
108+
109+
private fun Sequence<Config>.filterByInterfaces(classData: ClassData): Sequence<Config> =
110+
this.filter { config ->
100111
if (config.interfaces.isAll()) return@filter true
101112

102113
val configInterfaces = config.interfaces.valueOrThrow()
103114
classData.interfaces.intersect(configInterfaces.toSet()).isNotEmpty()
104115
}
105-
.filter { config ->
116+
117+
private fun Sequence<Config>.filterByClasses(classData: ClassData): Sequence<Config> =
118+
this.filter { config ->
106119
if (config.clazz.isAll()) return@filter true
107120

108121
val configClass = config.clazz.valueOrThrow()
109122
classData.className == configClass
110123
}
111-
.toList()
112-
113124

114125
/**
115126
* Loads and returns the list of configurations for method hooking.

0 commit comments

Comments
 (0)