Package com.structurizr.model
Class DeploymentNode
java.lang.Object
com.structurizr.model.Element
com.structurizr.model.DeploymentElement
com.structurizr.model.DeploymentNode
public final class DeploymentNode extends DeploymentElement
Represents a deployment node, which is something like:
- Physical infrastructure (e.g. a physical server or device)
- Virtualised infrastructure (e.g. IaaS, PaaS, a virtual machine)
- Containerised infrastructure (e.g. a Docker container)
- Database server
- Java EE web/application server
- Microsoft IIS
- etc
-
Constructor Summary
Constructors Constructor Description DeploymentNode() -
Method Summary
Modifier and Type Method Description ContainerInstanceadd(Container container)Adds a container instance to this deployment node, replicating all of the container-container relationships.ContainerInstanceadd(Container container, boolean replicateContainerRelationships)Adds a container instance to this deployment node, optionally replicating all of the container-container relationships.DeploymentNodeaddDeploymentNode(java.lang.String name, java.lang.String description, java.lang.String technology)Adds a child deployment node.DeploymentNodeaddDeploymentNode(java.lang.String name, java.lang.String description, java.lang.String technology, int instances)Adds a child deployment node.DeploymentNodeaddDeploymentNode(java.lang.String name, java.lang.String description, java.lang.String technology, int instances, java.util.Map<java.lang.String,java.lang.String> properties)Adds a child deployment node.PerspectiveaddPerspective(java.lang.String name, java.lang.String description)Adds a perspective to this model item.voidaddProperty(java.lang.String name, java.lang.String value)Adds a name-value pair property to this element.voidaddTags(java.lang.String... tags)java.lang.StringgetCanonicalName()java.util.Set<DeploymentNode>getChildren()Gets the set of child deployment nodes.java.util.Set<ContainerInstance>getContainerInstances()Gets the set of container instances associated with this deployment node.DeploymentNodegetDeploymentNodeWithName(java.lang.String name)Gets the DeploymentNode with the specified name.java.lang.StringgetId()Gets the ID of this item in the model.intgetInstances()ElementgetParent()Gets the parent deployment node.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()java.lang.StringgetTags()Gets the comma separated list of tags.java.util.Set<java.lang.String>getTagsAsSet()java.lang.StringgetTechnology()booleanhasChildren()booleanhasTag(java.lang.String tag)Determines whether this model item has the given tag.booleanremoveTag(java.lang.String tag)Removes the given tag.voidsetInstances(int instances)voidsetTechnology(java.lang.String technology)Relationshipuses(DeploymentNode destination, java.lang.String description, java.lang.String technology)Adds a relationship between this and another deployment node.Relationshipuses(DeploymentNode destination, java.lang.String description, java.lang.String technology, InteractionStyle interactionStyle)Adds a relationship between this and another deployment node.Methods inherited from class com.structurizr.model.Element
getDescription, getEfferentRelationshipWith, getModel, getName, getRelationships, getUrl, hasAfferentRelationships, hasEfferentRelationshipWith, setDescription, setModel, setUrl, toString
-
Constructor Details
-
DeploymentNode
public DeploymentNode()
-
-
Method Details
-
add
Adds a container instance to this deployment node, replicating all of the container-container relationships.- Parameters:
container- the Container to add an instance of- Returns:
- a ContainerInstance object
-
add
Adds a container instance to this deployment node, optionally replicating all of the container-container relationships.- Parameters:
container- the Container to add an instance ofreplicateContainerRelationships- true if the container-container relationships should be replicated between the container instances, false otherwise- Returns:
- a ContainerInstance object
-
addDeploymentNode
public DeploymentNode addDeploymentNode(java.lang.String name, java.lang.String description, java.lang.String technology)Adds a child deployment node.- Parameters:
name- the name of the deployment nodedescription- a short descriptiontechnology- the technology- Returns:
- a DeploymentNode object
-
addDeploymentNode
public DeploymentNode addDeploymentNode(java.lang.String name, java.lang.String description, java.lang.String technology, int instances)Adds a child deployment node.- Parameters:
name- the name of the deployment nodedescription- a short descriptiontechnology- the technologyinstances- the number of instances- Returns:
- a DeploymentNode object
-
addDeploymentNode
public DeploymentNode addDeploymentNode(java.lang.String name, java.lang.String description, java.lang.String technology, int instances, java.util.Map<java.lang.String,java.lang.String> properties)Adds a child deployment node.- Parameters:
name- the name of the deployment nodedescription- a short descriptiontechnology- the technologyinstances- the number of instancesproperties- a Map (String,String) describing name=value properties- Returns:
- a DeploymentNode object
-
getDeploymentNodeWithName
Gets the DeploymentNode with the specified name.- Parameters:
name- the name of the deployment node- Returns:
- the DeploymentNode instance with the specified name (or null if it doesn't exist).
-
uses
public Relationship uses(DeploymentNode destination, java.lang.String description, java.lang.String technology)Adds a relationship between this and another deployment node.- Parameters:
destination- the destination DeploymentNodedescription- a short description of the relationshiptechnology- the technology- Returns:
- a Relationship object
-
uses
public Relationship uses(DeploymentNode destination, java.lang.String description, java.lang.String technology, InteractionStyle interactionStyle)Adds a relationship between this and another deployment node.- Parameters:
destination- the destination DeploymentNodedescription- a short description of the relationshiptechnology- the technologyinteractionStyle- the interation style (Synchronous vs Asynchronous)- Returns:
- a Relationship object
-
getChildren
Gets the set of child deployment nodes.- Returns:
- a Set of DeploymentNode objects
-
hasChildren
public boolean hasChildren() -
getContainerInstances
Gets the set of container instances associated with this deployment node.- Returns:
- a Set of ContainerInstance objects
-
getParent
Gets the parent deployment node. -
getTechnology
public java.lang.String getTechnology() -
setTechnology
public void setTechnology(java.lang.String technology) -
getInstances
public int getInstances() -
setInstances
public void setInstances(int instances) -
getRequiredTags
protected java.util.Set<java.lang.String> getRequiredTags() -
getCanonicalName
public java.lang.String getCanonicalName()- Specified by:
getCanonicalNamein classElement
-
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 propertyvalue- the value of the property
-
getPerspectives
Gets the set of perspectives associated with this model item.- Returns:
- a Set of Perspective objects (empty if there are none)
-
addPerspective
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
-