Scalanie wielu strumieni

Moduł dodatkowy wyszukiwania umożliwia dostosowanie widoków, które pomagają użytkownikowi w scalaniu różnych strumieni treści. Jednak w niektórych przypadkach pożądane jest, aby scalanie odbywało się bez udziału użytkownika. Punkt rozszerzenia org.eclipse.compare.streamMergers umożliwia udostępnianie klasy scalającej trzy różne strumienie wejściowe w jeden strumień wyjściowy. Narzędzia scalające strumienie mogą być powiązane z rozszerzeniami plików lub z konkretnymi typami treści. Moduł dodatkowy wyszukiwania definiuje narzędzie scalające strumienie dla scalania trzech strumieni zwykłego tekstu:

   <extension
	point="org.eclipse.compare.streamMergers">
	<streamMerger
		extensions="txt"
		class="org.eclipse.compare.internal.merge.TextStreamMerger"
		id="org.eclipse.compare.internal.merge.TextStreamMerger">
	</streamMerger>
	<contentTypeBinding
		contentTypeId="org.eclipse.core.runtime.text"
		streamMergerId="org.eclipse.compare.internal.merge.TextStreamMerger">
	</contentTypeBinding>
    </extension>

Narzędzie scalające strumienie jest opisane w elemencie streamMerger. Należy określić parametr id (identyfikator) narzędzia scalającego oraz parametr class, czyli klasę, która je implementuje. Do danego narzędzia scalającego mogą zostać przypisane dowolne rozszerzenia plików (extensions).

Aby przypisać typy treści do narzędzia scalającego, należy zastosować element contentTypeBinding.

Narzędzia scalające strumienie muszą implementować interfejs IStreamMerger. Ten prosty interfejs scala treść trzech różnych strumieni wejściowych w jeden strumień wyjściowy. W przypadku niektórych modułów dodatkowych i typów treści implementacja może być dość trudna.

Nowe implementacje interfejsu IStreamMerger można utworzyć dla zarejestrowanych typów przy użyciu metod createStreamMerger klasy CompareUI.