Class Diagramm arrow text overlapping

+2 votes
asked Apr 29, 2016 in Bug by anonymous

Hello everybody,

As the title allready says i have a Problem with the arrow text overlapping.

Is there a way for plantuml to automatically detect that and stop doing it maybe ? :S

Manual alignment of the text might be nice to have but wouldn't really help in my case as i currently try to automate java-bytecode -> plantuml conversion

SSCCE on PlantUML Webserver


@startuml
package com.iluwatar.builder {
  class HeroBuilder {
    - armor : Armor
    - hairColor : HairColor
    - hairType : HairType
    - name : String
    - profession : Profession
    - weapon : Weapon
    + HeroBuilder(profession : Profession, name : String)
    + build() : Hero
    + withArmor(armor : Armor) : HeroBuilder
    + withHairColor(hairColor : HairColor) : HeroBuilder
    + withHairType(hairType : HairType) : HeroBuilder
    + withWeapon(weapon : Weapon) : HeroBuilder
  }
  class Hero {
    - armor : Armor
    - hairColor : HairColor
    - hairType : HairType
    - name : String
    - profession : Profession
    - weapon : Weapon
    - Hero(builder : Hero$HeroBuilder)
    + getArmor() : Armor
    + getHairColor() : HairColor
    + getHairType() : HairType
    + getName() : String
    + getProfession() : Profession
    + getWeapon() : Weapon
    + toString() : String
  }
  class App {
    + App()
    + main(args : String[]) : void {static}
  }
  enum Weapon {
    + AXE {static}
    + BOW {static}
    + DAGGER {static}
    + SWORD {static}
    + WARHAMMER {static}
    + toString() : String
    + valueOf(name : String) : Weapon {static}
    + values() : Weapon[] {static}
  }
  enum HairColor {
    + BLACK {static}
    + BLOND {static}
    + BROWN {static}
    + RED {static}
    + WHITE {static}
    + toString() : String
    + valueOf(name : String) : HairColor {static}
    + values() : HairColor[] {static}
  }
  enum Armor {
    + CHAIN_MAIL {static}
    + CLOTHES {static}
    + LEATHER {static}
    + PLATE_MAIL {static}
    - title : String
    + toString() : String
    + valueOf(name : String) : Armor {static}
    + values() : Armor[] {static}
  }
  enum HairType {
    + BALD {static}
    + CURLY {static}
    + LONG_CURLY {static}
    + LONG_STRAIGHT {static}
    + SHORT {static}
    - title : String
    + toString() : String
    + valueOf(name : String) : HairType {static}
    + values() : HairType[] {static}
  }
  enum Profession {
    + MAGE {static}
    + PRIEST {static}
    + THIEF {static}
    + WARRIOR {static}
    + toString() : String
    + valueOf(name : String) : Profession {static}
    + values() : Profession[] {static}
  }
}
Hero -->  "-profession" Profession
HeroBuilder -->  "-armor" Armor
HeroBuilder -->  "-weapon" Weapon
HeroBuilder -->  "-hairType" HairType
HeroBuilder -->  "-hairColor" HairColor
Hero -->  "-armor" Armor
HeroBuilder -->  "-profession" Profession
Hero -->  "-hairColor" HairColor
Hero -->  "-weapon" Weapon
Hero -->  "-hairType" HairType
HeroBuilder --+ Hero : static
@enduml
 
 
 
~markusmo3

1 Answer

0 votes
answered Apr 29, 2016 by plantuml (294,960 points)
commented Mar 25, 2022 by Iaroslav Postovalov
Is it possible to configure Graphviz layout used by PUML?
...