+ /**
+ * Constructs the object.
+ *
+ * @param params operation parameters
+ * @param config configuration for this operation
+ * @param propertyNames names of properties required by this operation
+ * @param targetEntityIds Target Entity information
+ */
+ protected SoOperation(ControlLoopOperationParams params, HttpPollingConfig config, List<String> propertyNames,
+ Map<String, String> targetEntityIds) {
+ super(params, config, SoResponse.class, propertyNames);
+
+ verifyNotNull("Target entity Ids information", targetEntityIds);
+
+ this.modelCustomizationId = targetEntityIds
+ .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID);
+ this.modelInvariantId = targetEntityIds
+ .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_INVARIANT_ID);
+ this.modelVersionId = targetEntityIds
+ .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION_ID);
+ this.modelVersion = targetEntityIds
+ .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_VERSION);
+ this.modelName = targetEntityIds
+ .get(ControlLoopOperationParams.PARAMS_ENTITY_MODEL_NAME);
+
+ verifyNotNull("Target information", params.getTargetType());