@@ -44,10 +44,11 @@ public class ExecutionResult {
44
44
private final Boolean successAll ;
45
45
46
46
/**
47
- * Records an initial execution result where {@code success} is set to true if {@code failure} is not null.
47
+ * Records an initial execution result with {@code complete} true and {@code success} set to true if {@code failure}
48
+ * is not null.
48
49
*/
49
50
public ExecutionResult (Object result , Throwable failure ) {
50
- this (result , failure , false , 0 , false , failure == null , failure == null );
51
+ this (result , failure , false , 0 , true , failure == null , failure == null );
51
52
}
52
53
53
54
private ExecutionResult (Object result , Throwable failure , boolean nonResult , long waitNanos , boolean complete ,
@@ -62,14 +63,14 @@ private ExecutionResult(Object result, Throwable failure, boolean nonResult, lon
62
63
}
63
64
64
65
/**
65
- * Returns a an ExecutionResult with the {@code result} set, {@code completed } true and {@code success} true.
66
+ * Returns a an ExecutionResult with the {@code result} set, {@code complete } true and {@code success} true.
66
67
*/
67
68
public static ExecutionResult success (Object result ) {
68
- return new ExecutionResult (result , null );
69
+ return new ExecutionResult (result , null , false , 0 , true , true , true );
69
70
}
70
71
71
72
/**
72
- * Returns a an ExecutionResult with the {@code failure} set, {@code completed } true and {@code success} false.
73
+ * Returns a an ExecutionResult with the {@code failure} set, {@code complete } true and {@code success} false.
73
74
*/
74
75
public static ExecutionResult failure (Throwable failure ) {
75
76
return new ExecutionResult (null , failure , false , 0 , true , false , false );
@@ -100,8 +101,8 @@ public boolean isSuccess() {
100
101
}
101
102
102
103
/**
103
- * Returns a copy of the ExecutionResult with a non-result, and completed and success set to true. Returns {@code
104
- * this} if {@link #success} and {@link #result} are unchanged.
104
+ * Returns a copy of the ExecutionResult with a non-result, and complete and success set to true. Returns {@code this}
105
+ * if {@link #success} and {@link #result} are unchanged.
105
106
*/
106
107
ExecutionResult withNonResult () {
107
108
return success && this .result == null && nonResult ?
@@ -110,30 +111,38 @@ ExecutionResult withNonResult() {
110
111
}
111
112
112
113
/**
113
- * Returns a copy of the ExecutionResult with the {@code result} value, and completed and success set to true. Returns
114
+ * Returns a copy of the ExecutionResult with the {@code result} value, and complete and success set to true. Returns
114
115
* {@code this} if {@link #success} and {@link #result} are unchanged.
115
116
*/
116
117
public ExecutionResult withResult (Object result ) {
117
118
return success && ((this .result == null && result == null ) || (this .result != null && this .result .equals (result ))) ?
118
119
this :
119
120
new ExecutionResult (result , null , nonResult , waitNanos , true , true , successAll );
120
121
}
122
+
123
+ /**
124
+ * Returns a copy of the ExecutionResult with {@code complete} set to false, else this if nothing has changed.
125
+ */
126
+ ExecutionResult withNotComplete () {
127
+ return !this .complete ?
128
+ this :
129
+ new ExecutionResult (result , failure , nonResult , waitNanos , false , success , successAll );
130
+ }
121
131
122
132
/**
123
- * Returns a copy of the ExecutionResult with the value set to true, else this if nothing has changed .
133
+ * Returns a copy of the ExecutionResult with success value of {code false} .
124
134
*/
125
- public ExecutionResult withComplete () {
126
- return this .complete ? this : new ExecutionResult (result , failure , nonResult , waitNanos , true , success , successAll );
135
+ ExecutionResult withFailure () {
136
+ return ! this .success ? this : new ExecutionResult (result , failure , nonResult , waitNanos , complete , false , false );
127
137
}
128
138
129
139
/**
130
- * Returns a copy of the ExecutionResult with the {@code completed } and {@code success} values.
140
+ * Returns a copy of the ExecutionResult with the {@code complete } and {@code success} values of {@code true} .
131
141
*/
132
- ExecutionResult with ( boolean completed , boolean success ) {
133
- return this .complete == completed && this .success == success ?
142
+ ExecutionResult withSuccess ( ) {
143
+ return this .complete && this .success ?
134
144
this :
135
- new ExecutionResult (result , failure , nonResult , waitNanos , completed , success ,
136
- successAll == null ? success : success && successAll );
145
+ new ExecutionResult (result , failure , nonResult , waitNanos , true , true , successAll );
137
146
}
138
147
139
148
/**
@@ -146,12 +155,12 @@ public ExecutionResult withWaitNanos(long waitNanos) {
146
155
}
147
156
148
157
/**
149
- * Returns a copy of the ExecutionResult with the {@code waitNanos}, {@code completed } and {@code success} values.
158
+ * Returns a copy of the ExecutionResult with the {@code waitNanos}, {@code complete } and {@code success} values.
150
159
*/
151
- public ExecutionResult with (long waitNanos , boolean completed , boolean success ) {
152
- return this .waitNanos == waitNanos && this .complete == completed && this .success == success ?
160
+ public ExecutionResult with (long waitNanos , boolean complete , boolean success ) {
161
+ return this .waitNanos == waitNanos && this .complete == complete && this .success == success ?
153
162
this :
154
- new ExecutionResult (result , failure , nonResult , waitNanos , completed , success ,
163
+ new ExecutionResult (result , failure , nonResult , waitNanos , complete , success ,
155
164
successAll == null ? success : success && successAll );
156
165
}
157
166
0 commit comments