File: Issue2370.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 22,840 kB
  • sloc: java: 145,910; xml: 839; sh: 518; makefile: 401; perl: 26
file content (33 lines) | stat: -rw-r--r-- 1,064 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Collection;
import java.util.Optional;
import java.util.stream.Stream;

@SuppressWarnings("")
public class Issue2370 {
    private Stream<Action2370> getAction2370s(final State2370 state) {
        return Stream.of(
                        toStream(state.getOnExit()).flatMap(t -> t.getAction2370s().stream()),
                        toStream(state.getOnSignal()).flatMap(t -> t.getAction2370s().stream()),
                        toStream(state.getOnEnter()).flatMap(t -> t.getAction2370s().stream()))
                .flatMap(actionStream -> actionStream);
    }

    private <T> Stream<T> toStream(final Collection<T> obj) {
        return Optional.ofNullable(obj)
                .map(Stream::of)
                .orElseGet(Stream::empty)
                .flatMap(Collection::stream);
    }
}

interface Action2370 {
    public Collection<Action2370> getAction2370s();
}

interface State2370 {
    public Collection<Action2370> getOnExit();

    public Collection<Action2370> getOnSignal();

    public Collection<Action2370> getOnEnter();
}