在Eclipse RCP中获取特定插件的配置元素的有效方法

时间:2011-11-01 11:09:49

标签: eclipse-plugin eclipse-rcp

我想查找org.example.extension.point中声明的com.example.plugin的所有扩展名。有没有比做

更有效的方法
List<IConfigurationElement> result = new ArrayList<IConfigurationElement>();
IConfigurationElement[] allConfigElements = 
    Platform.getExtensionRegistry.getConfigurationElementsFor("org.example.extension.point");
for (IConfigurationElement ice : allConfigElements) {
    if (ice.getDeclaringExtension().getNamespaceIdentifier() == "com.example.plugin")
        result.add(ice);
}
return result;

1 个答案:

答案 0 :(得分:2)

没有其他(更有效的)方法(这不够简单吗?;)。另外,我使用ice.getContributor().getName()代替ice.getDeclaringExtension().getNamespaceIdentifier()

我真的很想知道您为什么要按特定的贡献者进行过滤。 - 我的意思是如果你必须“知道”贡献者你为什么使用扩展点?扩展点的主要目的是使用控制反转;使用扩展点的主要特征是不知道贡献者。没有冒犯,但可能你正在以一种他们不打算用于...的方式使用扩展点。