diff options
author | Jim Hahn <jrh3@att.com> | 2020-07-30 18:05:02 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2020-08-21 09:56:12 -0400 |
commit | 6a37af48d1db199a0f5a9e9c48f7c5f834a90d1b (patch) | |
tree | 5855e16683cecd3e2b150847843152118899779e /controlloop/common/eventmanager | |
parent | 56efff004af2d1be64c67f7c8091cb4553a0e86b (diff) |
Add "special" Operation classes for new usecases
Created place-holder for new "usecases" controller. Note: as of yet,
this is still just a normal java project; it will be turned into a
full-fledged kie-based controller in a later review.
Added some Operation and a few other support classes that will be
needed.
Note: the detmTarget() method and it's various supporting methods,
detmXxx(), found in GetTargetEntityOperation2 were cloned from the
pre-existing ControlLoopOperationManager2 class, and modified to fit the
strategy of the new controller. Likewise for the junit tests of those
methods.
Issue-ID: POLICY-2748
Change-Id: Idffa135a11a56bd6afdd2728706fd40168e80912
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'controlloop/common/eventmanager')
2 files changed, 21 insertions, 8 deletions
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/Step.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/Step.java index 01c64e5bc..ae51c737f 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/Step.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/Step.java @@ -55,12 +55,20 @@ public class Step { private final AtomicReference<Instant> startTime; /** - * {@code True} if this step is for the policy's actual operation, {@code false} if it's a preprocessor step. + * {@code True} if this step is for the policy's actual operation, {@code false} if + * it's a preprocessor step. */ @Getter private final boolean policyStep; /** + * The parent step from which this was constructed, or {@code null} if is was not + * constructed from another step. + */ + @Getter + private final Step parentStep; + + /** * The operation for this step. */ @Getter @@ -73,7 +81,8 @@ public class Step { /** - * Constructs the object. This is used when constructing the step for the policy's actual operation. + * Constructs the object. This is used when constructing the step for the policy's + * actual operation. * * @param params operation parameters * @param startTime start time of the first step for the current policy, initially @@ -83,21 +92,23 @@ public class Step { this.params = params; this.startTime = startTime; this.policyStep = true; + this.parentStep = null; } /** - * Constructs the object using information from another step. This is used when constructing a preprocessing - * step. + * Constructs the object using information from another step. This is used when + * constructing a preprocessing step. * - * @param otherStep step whose information should be used + * @param parentStep parent step whose information should be used * @param actor actor name * @param operation operation name */ - public Step(Step otherStep, String actor, String operation) { - this.params = otherStep.params.toBuilder().actor(actor).operation(operation).retry(null).timeoutSec(null) + public Step(Step parentStep, String actor, String operation) { + this.params = parentStep.params.toBuilder().actor(actor).operation(operation).retry(null).timeoutSec(null) .payload(new LinkedHashMap<>()).build(); - this.startTime = otherStep.startTime; + this.startTime = parentStep.startTime; this.policyStep = false; + this.parentStep = parentStep; } public String getActorName() { diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/StepTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/StepTest.java index 1472adc18..c4121bb38 100644 --- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/StepTest.java +++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/StepTest.java @@ -147,6 +147,7 @@ public class StepTest { public void testConstructor() { assertTrue(step.isPolicyStep()); assertSame(params, step.getParams()); + assertNull(step.getParentStep()); // check that it recorded the startTime by starting and checking it step.init(); @@ -163,6 +164,7 @@ public class StepTest { public void testConstructorWithOtherStep_testInitStartTime_testGetStartTimeRef() { Step step2 = new Step(step, "actorB", "operB"); assertFalse(step2.isPolicyStep()); + assertSame(step, step2.getParentStep()); ControlLoopOperationParams params2 = step2.getParams(); assertEquals("actorB", params2.getActor()); |