In plugin.xml
der Plug-in org.eclipse.ui.navigator.resources
fand ich die folgende commonFilter
Elementdefinition:Eclipse-PDE :: Die Verwendung von Filter anpassen
<commonFilter
id="org.eclipse.ui.navigator.resources.filters.startsWithDot"
name="%filters.startsWithDot.name"
description="%filters.startsWithDot.description"
activeByDefault="true"
>
<filterExpression>
<and>
<adapt type="org.eclipse.core.resources.IResource">
<test property="org.eclipse.core.resources.name" value=".*"/>
</adapt>
</and>
</filterExpression>
</commonFilter>
Es ist die Verwendung von adapt
, die mir beunruhigt:
- Wie kommt das Element
and
kann als unary Operator auf seinem (einzigen) Subelement verwendet werden? Aus meiner Sicht benötigt der Operator AND zwei Operanden. durch die folgenden answer inspiriert, schaute ich in die Javadoc von
IAdapterManager
und kam zu dem Schluss, dass die Verwendung vonadapt
wiePlatform.getAdapterManager().registerAdapters(pr, IResource.class);
irgendwo, wo
pr
in der Eclipse-Quelle zu etwas übersetzt ist die Instanz eines Adapterfabrik. Ist das korrekt?Was ist
adapt
technisch? Einfach ein XML-Element? (Ich frage, weil ich hier mehr Eclipse-PDE Terminologie vermuten.)
Danke nochmal, Greg! Stimmt es, dass 'adapt' in einen Aufruf von' registerAdapters() 'übersetzt wird? –
Nein, es verwendet 'IAdapterManager.getAdapter', um nach einem bereits registrierten Adapter zu suchen. Es kann auch prüfen, ob die aktuelle Klasse 'IAdaptable' implementiert. 'registerAdapters' wird normalerweise während des Eclipse-Starts von verschiedenen Plugins aufgerufen, um den Adaptermanager über Adapterfabriken zu informieren. –