diff --git a/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java b/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java index cf9c56c59774..526952ca80cd 100644 --- a/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java +++ b/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorizationProvider.java @@ -96,6 +96,11 @@ public static VectorizationProvider getInstance() { Holder.INSTANCE, "call to getInstance() from subclass of VectorizationProvider"); } + /** Returns the name of the {@code VectorizationProvider}'s implementation that's being used. */ + public static String getImplementationName() { + return Objects.requireNonNull(Holder.INSTANCE).getName(); + } + VectorizationProvider() { // no instance/subclass except from this package } @@ -224,6 +229,10 @@ private static void ensureCaller() { } } + public String getName() { + return this.getClass().getSimpleName(); + } + /** This static holder class prevents classloading deadlock. */ private static final class Holder { private Holder() {} diff --git a/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java b/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java index 7c7a3453e43e..d3187c7ce6f3 100644 --- a/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java +++ b/lucene/core/src/test/org/apache/lucene/internal/vectorization/TestVectorizationProvider.java @@ -24,6 +24,10 @@ public void testCallerOfGetter() { expectThrows(UnsupportedOperationException.class, TestVectorizationProvider::illegalCaller); } + public void testGetProviderName() { + assertEquals("DefaultVectorizationProvider", VectorizationProvider.getImplementationName()); + } + private static void illegalCaller() { VectorizationProvider.getInstance(); }