Interface DiagramEngine

All Known Implementing Classes:
PlantUmlDiagramEngine

@NullMarked public interface DiagramEngine
Interface for constructing entity and relationship descriptions, as well as generating diagrams, designed to work with a specific diagramming library.
  • Method Summary

    Modifier and Type
    Method
    Description
    constructEntityDescription(String entityName, String dataStoreName, List<AttributeModel> attributeModelList)
    Constructs a description of an entity in the format required by the selected diagramming library.
    constructRelationDescription(String currentEntityType, String refEntityType, RelationType relationType, String dataStoreName)
    Constructs a string representation of a relationship between two entities in a specific format for use with a diagramming library.
    byte[]
    generateDiagram(String entitiesDescription, String relationsDescriptions)
    Generates a diagram in a binary format based on the provided descriptions of entities and their relationships.
    boolean
    Indicates whether diagram generation is permitted under the current configuration.
    boolean
    Checks the availability of the remote diagramming service.
  • Method Details

    • constructEntityDescription

      String constructEntityDescription(String entityName, String dataStoreName, List<AttributeModel> attributeModelList)
      Constructs a description of an entity in the format required by the selected diagramming library.
      Parameters:
      entityName - the name of the entity to be described
      dataStoreName - the name of the data store where the entity resides
      attributeModelList - a list of attributes that define the structure of the entity
      Returns:
      a string representing the description of the entity in the required format
    • constructRelationDescription

      String constructRelationDescription(String currentEntityType, String refEntityType, RelationType relationType, String dataStoreName)
      Constructs a string representation of a relationship between two entities in a specific format for use with a diagramming library.
      Parameters:
      currentEntityType - the type of the current entity involved in the relationship
      refEntityType - the type of the referenced entity involved in the relationship
      relationType - the type of the relationship (e.g., MANY_TO_ONE, ONE_TO_MANY)
      dataStoreName - the name of the data store where the entities reside
      Returns:
      a string describing the relationship between the specified entities in the required format
    • generateDiagram

      byte[] generateDiagram(String entitiesDescription, String relationsDescriptions)
      Generates a diagram in a binary format based on the provided descriptions of entities and their relationships.
      Parameters:
      entitiesDescription - a string containing the descriptions of entities to be included in the diagram
      relationsDescriptions - a string containing the descriptions of relationships between entities
      Returns:
      a byte array representing the generated diagram
    • pingService

      boolean pingService()
      Checks the availability of the remote diagramming service.
      Returns:
      true if the service is accessible, otherwise false.
    • isAvailable

      boolean isAvailable()
      Indicates whether diagram generation is permitted under the current configuration. Unlike pingService(), which checks network reachability, this reflects configuration and security policy. For example, generating diagrams via the public PlantUML server may be disabled when no private server is configured.
      Returns:
      true if diagram generation is allowed, otherwise false.