@Override public String toString() { StringBuilder buf = new StringBuilder(); List<RelationshipView> list = new ArrayList<>(getRelationships()); Collections.sort(list, (rv1, rv2) -> rv1.getOrder().compareTo(rv2.getOrder())); list.forEach(rv -> buf.append(rv.toString() + "\n")); return buf.toString(); }
@Override protected RelationshipView findRelationshipView(@Nonnull RelationshipView sourceRelationshipView) { for (RelationshipView relationshipView : getRelationships()) { if (relationshipView.getRelationship().equals(sourceRelationshipView.getRelationship())) { if ((relationshipView.getDescription() != null && relationshipView.getDescription().equals(sourceRelationshipView.getDescription())) && relationshipView.getOrder().equals(sourceRelationshipView.getOrder())) { return relationshipView; } } } return null; }
private void write(DynamicView view, Writer writer) { try { writer.write("title " + view.getName() + " - " + view.getKey()); writer.write(System.lineSeparator()); writer.write(System.lineSeparator()); Set<RelationshipView> relationships = new TreeSet<>((rv1, rv2) -> rv1.getOrder().compareTo(rv2.getOrder())); relationships.addAll(view.getRelationships()); for (RelationshipView relationshipView : relationships) { Relationship r = relationshipView.getRelationship(); // Thing A->Thing B: Description writer.write(String.format("%s%s%s: %s", r.getSource().getName(), r.getInteractionStyle() == InteractionStyle.Synchronous ? SYNCHRONOUS_INTERACTION : ASYNCHRONOUS_INTERACTION, r.getDestination().getName(), relationshipView.getDescription() )); writer.write(System.lineSeparator()); } writer.write(System.lineSeparator()); } catch (IOException ioe) { ioe.printStackTrace(); } }
.sorted((rv1, rv2) -> (rv1.getOrder().compareTo(rv2.getOrder()))) .forEach(relationship -> { try { view.getViewSet().getConfiguration().getStyles().findRelationshipStyle(relationship.getRelationship()).getColor(), idOf(relationship.getRelationship().getDestination()), relationship.getOrder(), hasValue(relationship.getDescription()) ? relationship.getDescription() : hasValue(relationship.getRelationship().getDescription()) ? relationship.getRelationship().getDescription() : ""
@Test public void test_normalSequence() { workspace = new Workspace("Name", "Description"); model = workspace.getModel(); SoftwareSystem softwareSystem = model.addSoftwareSystem("Software System", "Description"); Container container1 = softwareSystem.addContainer("Container 1", "Description", "Technology"); Container container2 = softwareSystem.addContainer("Container 2", "Description", "Technology"); Container container3 = softwareSystem.addContainer("Container 3", "Description", "Technology"); container1.uses(container2, "Uses"); container1.uses(container3, "Uses"); DynamicView view = workspace.getViews().createDynamicView(softwareSystem, "key", "Description"); view.add(container1, container2); view.add(container1, container3); assertSame(container2, view.getRelationships().stream().filter(r -> r.getOrder().equals("1")).findFirst().get().getRelationship().getDestination()); assertSame(container3, view.getRelationships().stream().filter(r -> r.getOrder().equals("2")).findFirst().get().getRelationship().getDestination()); }
view.add(softwareSystemD, softwareSystemE); assertEquals(1, view.getRelationships().stream().filter(r -> r.getOrder().equals("1")).count()); assertEquals(2, view.getRelationships().stream().filter(r -> r.getOrder().equals("2")).count()); assertEquals(2, view.getRelationships().stream().filter(r -> r.getOrder().equals("3")).count()); assertEquals(1, view.getRelationships().stream().filter(r -> r.getOrder().equals("4")).count());