X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Futils%2FComponentUtils.java;h=c20cf92102a2262a7429c8b41fc7fffda3484af2;hb=71637e54f4df136cd53d5ba956285f5be108b798;hp=5a84a5244839cd2b94f1660312005b68273bc2f9;hpb=6f4226494d2b90e24563763ed2805fcca13de11d;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java b/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java index 5a84a524..c20cf921 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java @@ -1,9 +1,11 @@ package org.simantics.plant3d.utils; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.vecmath.Vector3d; @@ -265,6 +267,9 @@ public class ComponentUtils { public PositionType position = PositionType.NEXT; public PositionType insertPosition = PositionType.NEXT; + + // Component name + public String name; // Reducer requires pipe specs public Double diameter; @@ -303,6 +308,14 @@ public class ComponentUtils { this.insertPosition = insertPosition; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public Double getDiameter() { return diameter; } @@ -348,6 +361,9 @@ public class ComponentUtils { public static PipelineComponent addComponent(P3DRootNode root, PipelineComponent component, InsertInstruction inst) throws Exception { PipelineComponent newComponent = ComponentUtils.createComponent(root, inst.typeUri); + if (inst.name != null) + newComponent.setName(inst.name); + PipeControlPoint newPcp = newComponent.getControlPoint(); PipeControlPoint toPcp = component.getControlPoint(); @@ -692,4 +708,14 @@ public class ComponentUtils { PipingRules.splitVariableLengthComponent(branchSplit, component, false); return branchSplit; } + + public static Collection getPipelineComponentNames(P3DRootNode root) { + Collection usedNames = root.getChild().stream() + .filter(n -> n instanceof PipeRun) + .flatMap(n -> ((PipeRun)n).getChild().stream()) + .filter(n -> n instanceof PipelineComponent) + .map(n -> ((PipelineComponent)n).getName()) + .collect(Collectors.toSet()); + return usedNames; + } }