import com.att.eelf.configuration.EELFManager;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
+import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
+import org.onap.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
import org.onap.clamp.clds.util.drawing.SvgLoopGenerator;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
import org.onap.clamp.loop.common.AuditEntity;
* @param name The loop name
* @param loopTemplate The loop template from which a new loop instance must be created
*/
- public Loop(String name, LoopTemplate loopTemplate) {
- this(name,"");
+ public Loop(String name, LoopTemplate loopTemplate, ToscaConverterWithDictionarySupport toscaConverter) {
+ this(name, "");
this.setLoopTemplate(loopTemplate);
this.setModelService(loopTemplate.getModelService());
loopTemplate.getLoopElementModelsUsed().forEach(element -> {
if (LoopElementModel.MICRO_SERVICE_TYPE.equals(element.getLoopElementModel().getLoopElementType())) {
- this.addMicroServicePolicy(new MicroServicePolicy(name,
- element.getLoopElementModel().getPolicyModels().first(), false, element.getLoopElementModel()));
- } else if (LoopElementModel.OPERATIONAL_POLICY_TYPE
+ try {
+ this.addMicroServicePolicy((MicroServicePolicy) element.getLoopElementModel()
+ .createPolicyInstance(this, toscaConverter));
+ } catch (IOException e) {
+ logger.error("Exception caught when creating the microservice policy instance of the loop "
+ + "instance", e);
+ }
+ }
+ else if (LoopElementModel.OPERATIONAL_POLICY_TYPE
.equals(element.getLoopElementModel().getLoopElementType())) {
- this.addOperationalPolicy(new OperationalPolicy(name, null, new JsonObject(),
- element.getLoopElementModel().getPolicyModels().first(), element.getLoopElementModel(), null, null));
+ try {
+ this.addOperationalPolicy((OperationalPolicy) element.getLoopElementModel()
+ .createPolicyInstance(this, toscaConverter));
+ } catch (IOException e) {
+ logger.error("Exception caught when creating the operational policy instance of the loop instance",
+ e);
+ }
}
});
}
this.setSvgRepresentation(SvgLoopGenerator.getSvgImage(this));
}
+ /**
+ * This method removes an operational policy to the loop.
+ * It re-computes the Svg as well.
+ *
+ * @param opPolicy the operationalPolicy to add
+ */
+ public void removeOperationalPolicy(OperationalPolicy opPolicy) {
+ operationalPolicies.remove(opPolicy);
+ this.setSvgRepresentation(SvgLoopGenerator.getSvgImage(this));
+ }
+
/**
* This method adds an micro service policy to the loop.
* It re-computes the Svg as well.
if (other.name != null) {
return false;
}
- } else if (!name.equals(other.name)) {
+ }
+ else if (!name.equals(other.name)) {
return false;
}
return true;