1
2 package com.puppycrawl.tools.checkstyle.checks.indentation.indentation;
3
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.Map;
7 import java.util.StringJoiner;
8 import java.util.stream.Collector;
9 import java.util.stream.Collectors;
10 import java.util.stream.IntStream;
11 import java.util.stream.Stream;
12
13 public class InputIndentationLambda1 {
14 java.util.logging.Logger LOG = java.util.logging.Logger.getLogger("");
15 interface Printer
16 {
17 void print(String s);
18 }
19
20 class LongTypeName {
21 }
22
23 interface SomeInterface {
24 void someFunction(LongTypeName arg);
25 }
26
27 void function1(Runnable x) {
28 Runnable r1 = () -> {
29 x.run();
30 };
31
32 Runnable r2 = () -> { x.run(); };
33
34 Runnable r3 = () ->
35 x.run();
36
37 Runnable r4 = () -> x.run();
38
39 Printer r5 = s -> LOG.info(s);
40
41 Printer r6 = s -> String.CASE_INSENSITIVE_ORDER
42 .equals(s);
43
44 Runnable r7 = ()
45 ->
46 {
47 };
48
49 Runnable r8 =
50 ()
51 ->
52 {};
53
54 Runnable r9 =
55 ()
56 ->
57 {};
58
59 Object o = new Thread(() -> {
60 x.run();
61 });
62
63 Runnable r01 = () -> {
64 x.run();
65 };
66
67 Runnable r11 =
68 () -> {
69 x.run();
70 };
71
72 Runnable r21 =
73 () -> { x.run(); };
74
75 Runnable r31 =
76 () -> x
77 .run();
78
79 Runnable r41 =
80 () -> x.run();
81
82 Printer r51 =
83 s -> LOG.info(s);
84
85 Printer r61 =
86 s -> String.CASE_INSENSITIVE_ORDER
87 .equals(s);
88
89 Object o1 = new Thread(
90 () -> {
91 x.run();
92 });
93
94 Object o2 = new Thread(() -> {
95 x.run();
96 }).toString();
97
98 SomeInterface i1 = (LongTypeName
99 arg) -> {
100 LOG.info(arg.toString());
101 };
102
103 Printer[] manyRunnable = new Printer[]{
104 s -> LOG.info(s),
105 s -> { LOG.info(s); },
106 s -> LOG
107 .info(s),
108 s -> {
109 LOG.info(s);
110 },
111 };
112 }
113
114 void function3(Runnable x) {
115 function1(() -> {
116 x.run();
117 });
118 }
119
120 class Person {
121 String name;
122 int age;
123 Person(String name, int age) {
124 }
125 }
126
127 class Foo {
128 String name;
129 List<Bar> bars = new ArrayList<>();
130
131 Foo(String name) {
132 this.name = name;
133 }
134 }
135
136 class Bar {
137 String name;
138 Bar(String name) {
139 this.name = name;
140 }
141 }
142
143 public void f() {
144 Stream.of("d2", "a2", "b1", "b3", "c")
145 .map(s -> {
146 LOG.info("map: " + s);
147 return s.toUpperCase(java.util.Locale.getDefault());
148 })
149 .anyMatch(s -> {
150 LOG.info("anyMatch: " + s);
151 return s.startsWith("A");
152 });
153
154 List<Person> persons = null;
155
156 Map<Integer, List<Person>> personsByAge = persons
157 .stream()
158 .collect(Collectors.groupingBy(p -> p.age));
159
160 personsByAge
161 .forEach((age, p) -> LOG.info("age %s: %s\n"));
162
163 Collector<Person, StringJoiner, String> personNameCollector =
164 Collector.of(
165 () -> new StringJoiner(" | "),
166 (j, p) -> j.add(p.name.toUpperCase(java.util.Locale.getDefault())),
167 (j1, j2) -> j1.merge(j2),
168 StringJoiner::toString);
169
170 List<Foo> foos = new ArrayList<>();
171
172 foos.forEach(f ->
173 IntStream
174 .range(1, 4)
175 .forEach(i -> f.bars.add(new Bar("Bar" + i + " <- " + f.name))));
176
177 Stream.of("d2", "a2", "b1", "b3", "c")
178 .filter(s -> {
179 LOG.info(("filter: " + s));
180 return s.startsWith("a");
181 })
182 .map(s -> {
183 LOG.info("map: " + s);
184 return s.toUpperCase(java.util.Locale.getDefault());
185 })
186 .forEach(s ->
187 LOG.info("forEach: " + s));
188
189 IntStream.range(1, 4)
190 .mapToObj(i -> new Foo("Foo" + i))
191 .peek(f -> IntStream.range(1, 4)
192 .mapToObj(i -> new Bar("Bar" + i + " <- " + f.name))
193 .forEach(f.bars::add))
194 .flatMap(f -> f.bars.stream())
195 .forEach(b -> LOG.info(b.name));
196
197 IntStream.range(1, 4)
198 .mapToObj(i -> new Foo("Foo" + i))
199 .peek(f -> IntStream.range(1, 4)
200 .mapToObj(i -> new Bar("Bar" + i + " <- " + f.name))
201 .forEach(f.bars::add))
202 .flatMap(f -> f.bars.stream())
203 .forEach(b -> LOG.info(b.name));
204 }
205
206 Runnable r2r(Runnable x) {
207 return x;
208 }
209
210 void function2(Runnable x) {
211 Runnable r0 = r2r(() -> {
212 int i = 1;
213 });
214
215 Runnable r1 = r2r(() -> {
216 int i = 1;
217 }
218 );
219
220 Runnable r2 = r2r(r2r(() -> {
221 int i = 1;
222 }
223 )
224 );
225 }
226 }