Class Relationship

java.lang.Object
com.structurizr.model.Relationship

public final class Relationship
extends java.lang.Object
A relationship between two elements.
  • Method Summary

    Modifier and Type Method Description
    Perspective addPerspective​(java.lang.String name, java.lang.String description)
    Adds a perspective to this model item.
    void addProperty​(java.lang.String name, java.lang.String value)
    Adds a name-value pair property to this element.
    void addTags​(java.lang.String... tags)  
    java.lang.String getDescription()  
    Element getDestination()  
    java.lang.String getDestinationId()
    Gets the ID of the destination element.
    java.lang.String getId()
    Gets the ID of this item in the model.
    InteractionStyle getInteractionStyle()
    Gets the interaction style (synchronous or asynchronous).
    java.lang.String getLinkedRelationshipId()  
    java.util.Set<Perspective> getPerspectives()
    Gets the set of perspectives associated with this model item.
    java.util.Map<java.lang.String,​java.lang.String> getProperties()
    Gets the collection of name-value property pairs associated with this element, as a Map.
    protected java.util.Set<java.lang.String> getRequiredTags()  
    Element getSource()  
    java.lang.String getSourceId()
    Gets the ID of the source element.
    java.lang.String getTags()
    Gets the comma separated list of tags.
    java.util.Set<java.lang.String> getTagsAsSet()  
    java.lang.String getTechnology()
    Gets the technology associated with this relationship (e.g.
    java.lang.String getUrl()
    Gets the URL where more information about this relationship can be found.
    boolean hasTag​(java.lang.String tag)
    Determines whether this model item has the given tag.
    boolean removeTag​(java.lang.String tag)
    Removes the given tag.
    void setUrl​(java.lang.String url)
    Sets the URL where more information about this relationship can be found.
    java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Method Details

    • getSource

      public Element getSource()
    • getSourceId

      public java.lang.String getSourceId()
      Gets the ID of the source element.
      Returns:
      the ID of the source element, as a String
    • getDestination

      public Element getDestination()
    • getDestinationId

      public java.lang.String getDestinationId()
      Gets the ID of the destination element.
      Returns:
      the ID of the destination element, as a String
    • getDescription

      public java.lang.String getDescription()
    • getTechnology

      public java.lang.String getTechnology()
      Gets the technology associated with this relationship (e.g. HTTPS, JDBC, etc).
      Returns:
      the technology as a String, or null if a technology is not specified
    • getInteractionStyle

      public InteractionStyle getInteractionStyle()
      Gets the interaction style (synchronous or asynchronous).
      Returns:
      an InteractionStyle, or null if an interaction style has not been specified
    • getLinkedRelationshipId

      public java.lang.String getLinkedRelationshipId()
    • getRequiredTags

      protected java.util.Set<java.lang.String> getRequiredTags()
    • getUrl

      public java.lang.String getUrl()
      Gets the URL where more information about this relationship can be found.
      Returns:
      a URL as a String
    • setUrl

      public void setUrl​(java.lang.String url)
      Sets the URL where more information about this relationship can be found.
      Parameters:
      url - the URL as a String
      Throws:
      java.lang.IllegalArgumentException - if the URL is not a well-formed URL
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • getId

      public java.lang.String getId()
      Gets the ID of this item in the model.
      Returns:
      the ID, as a String
    • getTags

      public java.lang.String getTags()
      Gets the comma separated list of tags.
      Returns:
      a comma separated list of tags, or an empty string if there are no tags
    • getTagsAsSet

      public java.util.Set<java.lang.String> getTagsAsSet()
    • addTags

      public void addTags​(java.lang.String... tags)
    • removeTag

      public boolean removeTag​(java.lang.String tag)
      Removes the given tag.
      Parameters:
      tag - the tag to remove
      Returns:
      true if the tag was removed; will return false if a non-existent tag is passed, or if an attempt is made to remove required tags, which cannot be removed.
    • hasTag

      public boolean hasTag​(java.lang.String tag)
      Determines whether this model item has the given tag.
      Parameters:
      tag - the tag to check for
      Returns:
      true if tag is present as a tag on this item, or if it is one of the required tags defined by the model in getRequiredTags(), false otherwise
    • getProperties

      public java.util.Map<java.lang.String,​java.lang.String> getProperties()
      Gets the collection of name-value property pairs associated with this element, as a Map.
      Returns:
      a Map (String, String) (empty if there are no properties)
    • addProperty

      public void addProperty​(java.lang.String name, java.lang.String value)
      Adds a name-value pair property to this element.
      Parameters:
      name - the name of the property
      value - the value of the property
    • getPerspectives

      public java.util.Set<Perspective> getPerspectives()
      Gets the set of perspectives associated with this model item.
      Returns:
      a Set of Perspective objects (empty if there are none)
    • addPerspective

      public Perspective addPerspective​(java.lang.String name, java.lang.String description)
      Adds a perspective to this model item.
      Parameters:
      name - the name of the perspective (e.g. "Security", must be unique)
      description - a description of the perspective
      Returns:
      a Perspective object
      Throws:
      java.lang.IllegalArgumentException - if perspective details are not specified, or the named perspective exists already