From 46a15cb52d8b30e5acdbfc7c28f06290d44d61bc Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 22 Sep 2010 15:53:38 +0400 Subject: [PATCH] Extensions.findExtension() --- .../com/intellij/openapi/extensions/Extensions.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java b/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java index 83c8a9dbeade..921afea556b2 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java @@ -99,6 +99,16 @@ public class Extensions { return extensionPoint.getExtensions(); } + public static U findExtension(ExtensionPointName extensionPointName, Class extClass) { + for (T t : getExtensions(extensionPointName)) { + if (extClass.isInstance(t)) { + //noinspection unchecked + return (U) t; + } + } + throw new IllegalArgumentException("could not find extension implementation " + extClass); + } + public static void instantiateArea(@NonNls @NotNull String areaClass, AreaInstance areaInstance, AreaInstance parentAreaInstance) { if (!ourAreaClass2Configuration.containsKey(areaClass)) { throw new IllegalArgumentException("Area class is not registered: " + areaClass);