Package aQute.bnd.osgi
Class PluginsContainer.PluginsSpliterator<T>
- java.lang.Object
-
- java.util.Spliterators.AbstractSpliterator<T>
-
- aQute.bnd.osgi.PluginsContainer.PluginsSpliterator<T>
-
- All Implemented Interfaces:
java.util.function.Consumer<java.lang.Object>
,java.util.Spliterator<T>
- Enclosing class:
- PluginsContainer
final class PluginsContainer.PluginsSpliterator<T> extends java.util.Spliterators.AbstractSpliterator<T> implements java.util.function.Consumer<java.lang.Object>
A spliterator of plugins of the specified type ordered by the processor hierarchy.The supplied plugins may have duplicates if the same plugin is added into different processors in the hierarchy.
We supply the parent's plugins after this container's plugins so that there is a hierarchical ordering where this container's plugins come before the parent's plugins. Then
PluginsContainer.getPlugin(Class)
will select a matching plugin from this container, if it exists, versus one from the parent.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface java.util.Spliterator
java.util.Spliterator.OfDouble, java.util.Spliterator.OfInt, java.util.Spliterator.OfLong, java.util.Spliterator.OfPrimitive<T extends java.lang.Object,T_CONS extends java.lang.Object,T_SPLITR extends java.util.Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
-
-
Constructor Summary
Constructors Constructor Description PluginsSpliterator(java.lang.Class<T> type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(java.lang.Object plugin)
void
forEachRemaining(java.util.function.Consumer<? super T> action)
private java.util.Spliterator<T>
parent()
Defer creating the parent spliterator since we may not need it if the stream operation short circuits such as findFirst.boolean
tryAdvance(java.util.function.Consumer<? super T> action)
-
Methods inherited from class java.util.Spliterators.AbstractSpliterator
characteristics, estimateSize, trySplit
-
-
-
-
Constructor Detail
-
PluginsSpliterator
PluginsSpliterator(java.lang.Class<T> type)
-
-
Method Detail
-
parent
private java.util.Spliterator<T> parent()
Defer creating the parent spliterator since we may not need it if the stream operation short circuits such as findFirst.
-
tryAdvance
public boolean tryAdvance(java.util.function.Consumer<? super T> action)
- Specified by:
tryAdvance
in interfacejava.util.Spliterator<T>
-
forEachRemaining
public void forEachRemaining(java.util.function.Consumer<? super T> action)
- Specified by:
forEachRemaining
in interfacejava.util.Spliterator<T>
-
accept
public void accept(java.lang.Object plugin)
- Specified by:
accept
in interfacejava.util.function.Consumer<T>
-
-