Remove Target and TargetType
[policy/models.git] / models-interactions / model-actors / actor.appc / src / main / java / org / onap / policy / controlloop / actor / appc / AppcOperation.java
index 3ed2395..70c7082 100644 (file)
@@ -23,9 +23,7 @@ package org.onap.policy.controlloop.actor.appc;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
-import org.apache.commons.lang3.tuple.Pair;
 import org.onap.policy.appc.CommonHeader;
 import org.onap.policy.appc.Request;
 import org.onap.policy.appc.Response;
@@ -35,11 +33,11 @@ import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderInstantAsMillis;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
 import org.onap.policy.controlloop.actorserviceprovider.topic.SelectorKey;
-import org.onap.policy.controlloop.policy.PolicyResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,9 +63,11 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
      *
      * @param params operation parameters
      * @param config configuration for this operation
+     * @param propertyNames names of properties required by this operation
      */
-    public AppcOperation(ControlLoopOperationParams params, BidirectionalTopicConfig config) {
-        super(params, config, Response.class);
+    public AppcOperation(ControlLoopOperationParams params, BidirectionalTopicConfig config,
+                    List<String> propertyNames) {
+        super(params, config, Response.class, propertyNames);
     }
 
     /**
@@ -86,14 +86,11 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
      * @param targetVnf target VNF
      * @return a new request
      */
-    protected Pair<String, Request> makeRequest(int attempt, String targetVnf) {
+    protected Request makeRequest(int attempt, String targetVnf) {
         Request request = new Request();
         request.setCommonHeader(new CommonHeader());
         request.getCommonHeader().setRequestId(params.getRequestId());
-
-        // TODO ok to use UUID, or does it have to be the "attempt"?
-        final String subreq = UUID.randomUUID().toString();
-        request.getCommonHeader().setSubRequestId(subreq);
+        request.getCommonHeader().setSubRequestId(getSubRequestId());
 
         request.setAction(getName());
 
@@ -107,7 +104,7 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
         // add/replace specific values
         request.getPayload().put(VNF_ID_KEY, targetVnf);
 
-        return Pair.of(subreq, request);
+        return request;
     }
 
     /**
@@ -139,7 +136,7 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
      */
     @Override
     protected List<String> getExpectedKeyValues(int attempt, Request request) {
-        return List.of(request.getCommonHeader().getSubRequestId());
+        return List.of(getSubRequestId());
     }
 
     @Override
@@ -175,7 +172,9 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
      * Sets the message to the status description, if available.
      */
     @Override
-    public OperationOutcome setOutcome(OperationOutcome outcome, PolicyResult result, Response response) {
+    public OperationOutcome setOutcome(OperationOutcome outcome, OperationResult result, Response response) {
+        outcome.setResponse(response);
+
         if (response.getStatus() == null || response.getStatus().getDescription() == null) {
             return setOutcome(outcome, result);
         }
@@ -186,7 +185,7 @@ public abstract class AppcOperation extends BidirectionalTopicOperation<Request,
     }
 
     @Override
-    protected Coder makeCoder() {
+    protected Coder getCoder() {
         return coder;
     }
 }