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

发布于 2024-12-12 22:31:47 字数 595 浏览 3 评论 0原文

我想找到在 com.example.plugin 中声明的 org.example.extension.point 的所有扩展。还有比这样做更有效的方法吗

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;

I want to find all extensions of org.example.extension.point declared in com.example.plugin. Is there a more efficient way to do so than doing

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;

?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小ぇ时光︴ 2024-12-19 22:31:47

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

我真的很想知道你为什么想要按特定贡献者过滤。 - 我的意思是,如果您必须“了解”贡献者,为什么要使用扩展点?扩展点的主要目的是使用控制反转;使用扩展点的主要特点是不知道贡献者。无意冒犯,但您可能正在以不适合的方式使用扩展点......

No there are no other (more efficient) ways (is this not simple enough?;). In addition I'd use ice.getContributor().getName() instead of ice.getDeclaringExtension().getNamespaceIdentifier()

I really would like to know why you want to filter by a specific contributor. - I mean if you have to "know" the contributor why are you using the extension point? The main purpose of an extension point is using inversion of control; the main characteristic of using extension points is not knowing the contributor. No offense, but probably you are using extension points in a way they are not intended for...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文