+ /**
+ * This method adds all loop element specified in input to the current structure.
+ *
+ * @param loopElementModels A set of LoopElementModels
+ * @return Return the current ClampGraphBuilder
+ */
+ public ClampGraphBuilder addAllLoopElementModels(Set<LoopElementModel> loopElementModels) {
+ for (LoopElementModel elem : loopElementModels) {
+ this.addLoopElementModel(elem);
+ }
+ return this;
+ }
+
+ /**
+ * This method adds one loop element specified in input to the current structure.
+ *
+ * @param loopElementModel A LoopElementModels
+ * @return Return the current ClampGraphBuilder
+ */
+ public ClampGraphBuilder addLoopElementModel(LoopElementModel loopElementModel) {
+ if (LoopElementModel.MICRO_SERVICE_TYPE.equals(loopElementModel.getLoopElementType())) {
+ microServices.add(new MicroServicePolicy(loopElementModel.getName(),
+ loopElementModel.getPolicyModels().first(), false, loopElementModel));
+ } else if (LoopElementModel.OPERATIONAL_POLICY_TYPE.equals(loopElementModel.getLoopElementType())) {
+ policies.add(new OperationalPolicy(loopElementModel.getName(), null, null,
+ loopElementModel.getPolicyModels().first(), loopElementModel, null, null));
+ }
+ return this;
+ }
+