X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Futil%2Fdrawing%2FClampGraphBuilder.java;h=6cf342f2c0fbdf86e903b8c4f4ab54626780dd53;hb=723de7f63f0951d0cfe7a23956cf9d00128809b1;hp=ef4c4e43d8ce82bae2a60e9b2139c1e7777e6a2f;hpb=493298b4191b37df7c752bdcc050c27dd6ea4c52;p=clamp.git diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java index ef4c4e43..6cf342f2 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java @@ -24,49 +24,84 @@ package org.onap.clamp.clds.util.drawing; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -import org.onap.clamp.clds.sdc.controller.installer.MicroService; +import java.util.HashSet; +import java.util.Set; +import org.onap.clamp.loop.template.LoopElementModel; +import org.onap.clamp.policy.microservice.MicroServicePolicy; +import org.onap.clamp.policy.operational.OperationalPolicy; public class ClampGraphBuilder { - private String policy; + private Set policies = new HashSet<>(); private String collector; - private List microServices = new ArrayList<>(); + private Set microServices = new HashSet<>(); + private Set loopElementModels = new HashSet<>(); private final Painter painter; public ClampGraphBuilder(Painter painter) { this.painter = painter; } - public ClampGraphBuilder collector(String c) { - collector = c; + public ClampGraphBuilder collector(String collector) { + this.collector = collector; + return this; + } + + public ClampGraphBuilder addPolicy(OperationalPolicy policy) { + this.policies.add(policy); return this; } - public ClampGraphBuilder policy(String p) { - policy = p; + public ClampGraphBuilder addAllPolicies(Set policies) { + this.policies.addAll(policies); return this; } - public ClampGraphBuilder addMicroService(MicroService ms) { + public ClampGraphBuilder addMicroService(MicroServicePolicy ms) { microServices.add(ms); return this; } - public ClampGraphBuilder addAllMicroServices(List msList) { + public ClampGraphBuilder addAllMicroServices(Set msList) { microServices.addAll(msList); return this; } - public ClampGraph build() { - if (microServices.isEmpty()) { - throw new InvalidStateException("At least one microservice is required"); + /** + * 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 loopElementModels) { + for (LoopElementModel elem : loopElementModels) { + this.addLoopElementModel(elem); } - if (Objects.isNull(policy) || policy.trim().isEmpty()) { - throw new InvalidStateException("Policy element must be present"); + 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,null,loopElementModel,null,null)); + } else if (LoopElementModel.OPERATIONAL_POLICY_TYPE.equals(loopElementModel.getLoopElementType())) { + policies.add(new OperationalPolicy(loopElementModel.getName(), null, null, + loopElementModel.getPolicyModels().first(), loopElementModel, null, null)); } - return new ClampGraph(painter.doPaint(collector, microServices, policy)); + return this; + } + + /** + * Build the SVG. + * + * @return Clamp graph (SVG) + */ + public ClampGraph build() { + return new ClampGraph(painter.doPaint(collector, microServices, policies)); } }