forked from mtumilowicz/java11-lambda-patterns
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCamera.java
More file actions
32 lines (25 loc) · 647 Bytes
/
Camera.java
File metadata and controls
32 lines (25 loc) · 647 Bytes
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
package decorator;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Value;
import java.awt.*;
import java.util.function.Function;
/**
* Created by mtumilowicz on 2018-11-30.
*/
@Value
@RequiredArgsConstructor
class Camera {
@Getter(AccessLevel.NONE)
Function<Color, Color> transformColors;
Camera() {
this.transformColors = Function.identity();
}
Camera withFilter(Function<Color, Color> transform) {
return new Camera(transformColors.andThen(transform));
}
Color snap(Color color) {
return transformColors.apply(color);
}
}