public class LinkList<L extends Link> extends java.lang.Object implements FilteredLinks<L>
Modifier and Type | Method and Description |
---|---|
FilteredLinks<L> |
filter(java.util.function.Predicate<? super L> predicate) |
void |
forEach(java.util.function.Consumer<? super L> action) |
L |
get(int index) |
java.util.List<L> |
getList() |
boolean |
isEmpty() |
<M extends Message> |
send(java.lang.Class<M> clazz)
send(Class, BiConsumer) without a data injector so no initial function is run
for messages. |
<M extends Message> |
send(java.lang.Class<M> clazz,
java.util.function.BiConsumer<M,L> dataInjector)
Send the specified message to all links in this list.
|
<M extends Message.Boolean> |
send(java.lang.Class<M> clazz,
boolean messageBody)
Send the specified message with single boolean field to all links in this list.
|
<M extends Message.Double> |
send(java.lang.Class<M> clazz,
double messageBody)
Send the specified message with single double field to all links in this list.
|
<M extends Message.Float> |
send(java.lang.Class<M> clazz,
float messageBody)
Send the specified message with single float field to all links in this list.
|
<M extends Message.Integer> |
send(java.lang.Class<M> clazz,
int messageBody)
Send the specified message with single int field to all links in this list.
|
<M extends Message.Long> |
send(java.lang.Class<M> clazz,
long messageBody)
Send the specified message with single long field to all links in this list.
|
<M extends Message.Object<T>,T> |
send(java.lang.Class<M> clazz,
T messageBody)
Send the specified message with single field to all links in this list.
|
int |
size() |
java.util.stream.Stream<L> |
stream() |
public FilteredLinks<L> filter(java.util.function.Predicate<? super L> predicate)
filter
in interface FilteredLinks<L extends Link>
public <M extends Message> void send(java.lang.Class<M> clazz)
send(Class, BiConsumer)
without a data injector so no initial function is run
for messages.send
in interface FilteredLinks<L extends Link>
public <M extends Message> void send(java.lang.Class<M> clazz, java.util.function.BiConsumer<M,L> dataInjector)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message
.dataInjector
- Function run when each message is created which can be used to set its
values using data from the link.public <M extends Message.Boolean> void send(java.lang.Class<M> clazz, boolean messageBody)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message.Boolean
.messageBody
- Value for message body.public <M extends Message.Float> void send(java.lang.Class<M> clazz, float messageBody)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message.Float
.messageBody
- Value for message body.public <M extends Message.Long> void send(java.lang.Class<M> clazz, long messageBody)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message.Long
.messageBody
- Value for message body.public <M extends Message.Double> void send(java.lang.Class<M> clazz, double messageBody)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message.Double
.messageBody
- Value for message body.public <M extends Message.Integer> void send(java.lang.Class<M> clazz, int messageBody)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message.Object
.messageBody
- Value for message body.public <M extends Message.Object<T>,T> void send(java.lang.Class<M> clazz, T messageBody)
send
in interface FilteredLinks<L extends Link>
clazz
- Class of message to send. Must be a message class extending Message.Boolean
.messageBody
- Value for message body.public boolean isEmpty()
isEmpty
in interface FilteredLinks<L extends Link>
Collection.isEmpty()
public java.util.stream.Stream<L> stream()
stream
in interface FilteredLinks<L extends Link>
public void forEach(java.util.function.Consumer<? super L> action)
forEach
in interface FilteredLinks<L extends Link>
public int size()
size
in interface FilteredLinks<L extends Link>
public L get(int index)
get
in interface FilteredLinks<L extends Link>
public java.util.List<L> getList()
getList
in interface FilteredLinks<L extends Link>