Sho SHIMIZU
Committed by Gerrit Code Review

Remove reference to a field of IntentManager from IntentWorker

Change-Id: I094c4019fbe8af342e2dae2a1c5ad780728cf27a
...@@ -285,7 +285,8 @@ public class IntentManager ...@@ -285,7 +285,8 @@ public class IntentManager
285 } 285 }
286 286
287 private Future<FinalIntentProcessPhase> submitIntentData(IntentData data) { 287 private Future<FinalIntentProcessPhase> submitIntentData(IntentData data) {
288 - return workerExecutor.submit(new IntentWorker(data)); 288 + IntentData current = store.getIntentData(data.key());
289 + return workerExecutor.submit(new IntentWorker(data, current));
289 } 290 }
290 291
291 private class IntentBatchPreprocess implements Runnable { 292 private class IntentBatchPreprocess implements Runnable {
...@@ -366,14 +367,16 @@ public class IntentManager ...@@ -366,14 +367,16 @@ public class IntentManager
366 private final class IntentWorker implements Callable<FinalIntentProcessPhase> { 367 private final class IntentWorker implements Callable<FinalIntentProcessPhase> {
367 368
368 private final IntentData data; 369 private final IntentData data;
370 + private final IntentData current;
369 371
370 - private IntentWorker(IntentData data) { 372 + private IntentWorker(IntentData data, IntentData current) {
371 - this.data = data; 373 + this.data = checkNotNull(data);
374 + this.current = current;
372 } 375 }
373 376
374 @Override 377 @Override
375 public FinalIntentProcessPhase call() throws Exception { 378 public FinalIntentProcessPhase call() throws Exception {
376 - IntentProcessPhase update = createIntentUpdate(data); 379 + IntentProcessPhase update = createIntentUpdate();
377 Optional<IntentProcessPhase> currentPhase = Optional.of(update); 380 Optional<IntentProcessPhase> currentPhase = Optional.of(update);
378 IntentProcessPhase previousPhase = update; 381 IntentProcessPhase previousPhase = update;
379 382
...@@ -384,20 +387,19 @@ public class IntentManager ...@@ -384,20 +387,19 @@ public class IntentManager
384 return (FinalIntentProcessPhase) previousPhase; 387 return (FinalIntentProcessPhase) previousPhase;
385 } 388 }
386 389
387 - private IntentProcessPhase createIntentUpdate(IntentData intentData) { 390 + private IntentProcessPhase createIntentUpdate() {
388 - IntentData current = store.getIntentData(intentData.key()); 391 + switch (data.state()) {
389 - switch (intentData.state()) {
390 case INSTALL_REQ: 392 case INSTALL_REQ:
391 - return new InstallRequest(processor, intentData, Optional.ofNullable(current)); 393 + return new InstallRequest(processor, data, Optional.ofNullable(current));
392 case WITHDRAW_REQ: 394 case WITHDRAW_REQ:
393 if (current == null || isNullOrEmpty(current.installables())) { 395 if (current == null || isNullOrEmpty(current.installables())) {
394 - return new Withdrawn(intentData, WITHDRAWN); 396 + return new Withdrawn(data, WITHDRAWN);
395 } else { 397 } else {
396 - return new WithdrawRequest(processor, intentData, current); 398 + return new WithdrawRequest(processor, data, current);
397 } 399 }
398 default: 400 default:
399 // illegal state 401 // illegal state
400 - return new CompilingFailed(intentData); 402 + return new CompilingFailed(data);
401 } 403 }
402 } 404 }
403 } 405 }
......