|
@@ -4,11 +4,22 @@ import static com.reactnativenavigation.utils.ObjectUtils.equalsNotNull;
|
4
|
4
|
|
5
|
5
|
public abstract class Param<T> {
|
6
|
6
|
protected T value;
|
|
7
|
+ private boolean consumed;
|
7
|
8
|
|
8
|
9
|
Param(T value) {
|
9
|
10
|
this.value = value;
|
10
|
11
|
}
|
11
|
12
|
|
|
13
|
+ public T getAndConsume() {
|
|
14
|
+ T value = get();
|
|
15
|
+ consumed = true;
|
|
16
|
+ return value;
|
|
17
|
+ }
|
|
18
|
+
|
|
19
|
+ public void consume() {
|
|
20
|
+ consumed = true;
|
|
21
|
+ }
|
|
22
|
+
|
12
|
23
|
public T get() {
|
13
|
24
|
if (hasValue()) {
|
14
|
25
|
return value;
|
|
@@ -21,7 +32,7 @@ public abstract class Param<T> {
|
21
|
32
|
}
|
22
|
33
|
|
23
|
34
|
public boolean hasValue() {
|
24
|
|
- return value != null;
|
|
35
|
+ return value != null && !consumed;
|
25
|
36
|
}
|
26
|
37
|
|
27
|
38
|
public boolean canApplyValue() {
|