Committed by
Gerrit Code Review
Refactor: Remove IntentWorker by replacing it with lambda
Change-Id: Ic5d235f9b47711c4f87fbcb2e7af83853248ace5
Showing
2 changed files
with
11 additions
and
55 deletions
1 | /* | 1 | /* |
2 | - * Copyright 2014-2015 Open Networking Laboratory | 2 | + * Copyright 2014-2016 Open Networking Laboratory |
3 | * | 3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
... | @@ -44,7 +44,6 @@ import org.onosproject.net.intent.IntentStoreDelegate; | ... | @@ -44,7 +44,6 @@ import org.onosproject.net.intent.IntentStoreDelegate; |
44 | import org.onosproject.net.intent.Key; | 44 | import org.onosproject.net.intent.Key; |
45 | import org.onosproject.net.intent.impl.phase.FinalIntentProcessPhase; | 45 | import org.onosproject.net.intent.impl.phase.FinalIntentProcessPhase; |
46 | import org.onosproject.net.intent.impl.phase.IntentProcessPhase; | 46 | import org.onosproject.net.intent.impl.phase.IntentProcessPhase; |
47 | -import org.onosproject.net.intent.impl.phase.IntentWorker; | ||
48 | import org.slf4j.Logger; | 47 | import org.slf4j.Logger; |
49 | 48 | ||
50 | import java.util.Collection; | 49 | import java.util.Collection; |
... | @@ -290,7 +289,16 @@ public class IntentManager | ... | @@ -290,7 +289,16 @@ public class IntentManager |
290 | private Future<FinalIntentProcessPhase> submitIntentData(IntentData data) { | 289 | private Future<FinalIntentProcessPhase> submitIntentData(IntentData data) { |
291 | IntentData current = store.getIntentData(data.key()); | 290 | IntentData current = store.getIntentData(data.key()); |
292 | IntentProcessPhase initial = newInitialPhase(processor, data, current); | 291 | IntentProcessPhase initial = newInitialPhase(processor, data, current); |
293 | - return workerExecutor.submit(new IntentWorker(initial)); | 292 | + return workerExecutor.submit(() -> { |
293 | + Optional<IntentProcessPhase> currentPhase = Optional.of(initial); | ||
294 | + IntentProcessPhase previousPhase = initial; | ||
295 | + | ||
296 | + while (currentPhase.isPresent()) { | ||
297 | + previousPhase = currentPhase.get(); | ||
298 | + currentPhase = previousPhase.execute(); | ||
299 | + } | ||
300 | + return (FinalIntentProcessPhase) previousPhase; | ||
301 | + }); | ||
294 | } | 302 | } |
295 | 303 | ||
296 | private class IntentBatchProcess implements Runnable { | 304 | private class IntentBatchProcess implements Runnable { | ... | ... |
1 | -/* | ||
2 | - * Copyright 2015 Open Networking Laboratory | ||
3 | - * | ||
4 | - * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | - * you may not use this file except in compliance with the License. | ||
6 | - * You may obtain a copy of the License at | ||
7 | - * | ||
8 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | - * | ||
10 | - * Unless required by applicable law or agreed to in writing, software | ||
11 | - * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | - * See the License for the specific language governing permissions and | ||
14 | - * limitations under the License. | ||
15 | - */ | ||
16 | -package org.onosproject.net.intent.impl.phase; | ||
17 | - | ||
18 | - | ||
19 | -import java.util.Optional; | ||
20 | -import java.util.concurrent.Callable; | ||
21 | - | ||
22 | -import static com.google.common.base.Preconditions.checkNotNull; | ||
23 | - | ||
24 | -/** | ||
25 | - * Worker to process a submitted intent. {@link #call()} method generates | ||
26 | - */ | ||
27 | -public final class IntentWorker implements Callable<FinalIntentProcessPhase> { | ||
28 | - | ||
29 | - private final IntentProcessPhase initial; | ||
30 | - | ||
31 | - /** | ||
32 | - * Create an instance with the specified arguments. | ||
33 | - * | ||
34 | - * @param initial initial intent process phase | ||
35 | - */ | ||
36 | - public IntentWorker(IntentProcessPhase initial) { | ||
37 | - this.initial = checkNotNull(initial); | ||
38 | - } | ||
39 | - | ||
40 | - @Override | ||
41 | - public FinalIntentProcessPhase call() throws Exception { | ||
42 | - IntentProcessPhase update = initial; | ||
43 | - Optional<IntentProcessPhase> currentPhase = Optional.of(update); | ||
44 | - IntentProcessPhase previousPhase = update; | ||
45 | - | ||
46 | - while (currentPhase.isPresent()) { | ||
47 | - previousPhase = currentPhase.get(); | ||
48 | - currentPhase = previousPhase.execute(); | ||
49 | - } | ||
50 | - return (FinalIntentProcessPhase) previousPhase; | ||
51 | - } | ||
52 | -} |
-
Please register or login to post a comment