More actor clean-up
[policy/models.git] / models-interactions / model-actors / actor.so / src / main / java / org / onap / policy / controlloop / actor / so / SoOperator.java
index 011201f..b8d0e65 100644 (file)
 package org.onap.policy.controlloop.actor.so;
 
 import java.util.Map;
-import java.util.function.BiFunction;
-import lombok.Getter;
 import org.onap.policy.common.parameters.ValidationResult;
-import org.onap.policy.controlloop.actorserviceprovider.Operation;
 import org.onap.policy.controlloop.actorserviceprovider.Util;
+import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperator;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
+import org.onap.policy.controlloop.actorserviceprovider.impl.OperationMaker;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.ParameterValidationRuntimeException;
 
-@Getter
-public abstract class SoOperator extends HttpOperator {
-
-    /**
-     * Path to use for the "get" request. A trailing "/" is added, if it is missing.
-     */
-    private String pathGet;
-
-    /**
-     * Maximum number of "get" requests permitted, after the initial request, to retrieve
-     * the response.
-     */
-    private int maxGets;
-
-    /**
-     * Time, in seconds, to wait between issuing "get" requests.
-     */
-    private int waitSecGet;
-
+/**
+ * SO Operator.
+ */
+public class SoOperator extends HttpOperator {
 
-    public SoOperator(String actorName, String name) {
-        super(actorName, name);
+    public SoOperator(String actorName, String name,
+                    @SuppressWarnings("rawtypes") OperationMaker<HttpConfig, HttpOperation> operationMaker) {
+        super(actorName, name, operationMaker);
     }
 
     @Override
-    protected void doConfigure(Map<String, Object> parameters) {
+    protected HttpConfig makeConfiguration(Map<String, Object> parameters) {
         SoParams params = Util.translate(getFullName(), parameters, SoParams.class);
         ValidationResult result = params.validate(getFullName());
         if (!result.isValid()) {
             throw new ParameterValidationRuntimeException("invalid parameters", result);
         }
 
-        this.pathGet = params.getPathGet() + (params.getPathGet().endsWith("/") ? "" : "/");
-        this.maxGets = params.getMaxGets();
-        this.waitSecGet = params.getWaitSecGet();
-
-        super.doConfigure(params);
-    }
-
-    /**
-     * Makes an operator that will construct operations.
-     *
-     * @param actorName actor name
-     * @param operation operation name
-     * @param operationMaker function to make an operation
-     * @return a new operator
-     */
-    public static SoOperator makeSoOperator(String actorName, String operation,
-                    BiFunction<ControlLoopOperationParams, SoOperator, SoOperation> operationMaker) {
-
-        return new SoOperator(actorName, operation) {
-            @Override
-            public Operation buildOperation(ControlLoopOperationParams params) {
-                return operationMaker.apply(params, this);
-            }
-        };
+        return new SoConfig(getBlockingExecutor(), params, getClientFactory());
     }
 }