From ed8eac595c26719571683cff7f3c9de2cfc28406 Mon Sep 17 00:00:00 2001 From: Luck Date: Thu, 18 Jul 2024 18:13:46 +0100 Subject: Refactor ClassFinder into interface --- .../src/main/java/me/lucko/spark/common/SparkPlugin.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'spark-common/src/main/java/me/lucko/spark/common/SparkPlugin.java') diff --git a/spark-common/src/main/java/me/lucko/spark/common/SparkPlugin.java b/spark-common/src/main/java/me/lucko/spark/common/SparkPlugin.java index a3bdceb..bf745df 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/SparkPlugin.java +++ b/spark-common/src/main/java/me/lucko/spark/common/SparkPlugin.java @@ -33,6 +33,9 @@ import me.lucko.spark.common.sampler.source.ClassSourceLookup; import me.lucko.spark.common.sampler.source.SourceMetadata; import me.lucko.spark.common.tick.TickHook; import me.lucko.spark.common.tick.TickReporter; +import me.lucko.spark.common.util.classfinder.ClassFinder; +import me.lucko.spark.common.util.classfinder.FallbackClassFinder; +import me.lucko.spark.common.util.classfinder.InstrumentationClassFinder; import java.nio.file.Path; import java.util.Collection; @@ -149,6 +152,18 @@ public interface SparkPlugin { return ClassSourceLookup.NO_OP; } + /** + * Creates a class finder for the platform. + * + * @return the class finder + */ + default ClassFinder createClassFinder() { + return ClassFinder.combining( + new InstrumentationClassFinder(this), + FallbackClassFinder.INSTANCE + ); + } + /** * Gets a list of known sources (plugins/mods) on the platform. * -- cgit