render interface is incomplete

0 votes
asked Mar 5, 2019 in Bug by anonymous
This simple example renders the circle of the interface one the left incomplete, tested on multiple versions.

for example https://plantuml-editor.kkeisuke.com/, or https://www.planttext.com/

@startuml

class Camera1
class Camera2

Camera ()- Camera1
Camera ()- Camera2

@enduml
commented Mar 6, 2019 by albert (3,520 points)
I see the same problem with the Plantuml webserver (http://www.plantuml.com/plantuml/um) and the latest beta (PlantUML version 1.2019.03beta7)
commented Mar 6, 2019 by zimchaa (1,040 points)
I'm not sure what diagram you're attempting to create? Is it a Component diagram or a Class diagram? Do you have an example? A Component diagram with interfaces would look like this and should work better?

http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuIhEpimhI2nAp5L8piyjoCzBpIi9BgdCILK0IXfnmSKKd1DpKuiI3HKIYnMS3J74ZS3YHbnScNabgKLfYScfK0cmkASX3d6W1cT31Lsm2cSZ80Cav92QbmAq7000
commented Mar 6, 2019 by zimchaa (1,040 points)
Also, the websites, like liveuml, planttext and others all use the same rendering system exposed at the http://www.plantuml.com/plantuml/uml/ site, just providing different interfaces to edit the script

3 Answers

0 votes
answered Mar 6, 2019 by janwilmans (200 points)
in the mean time I found that

@startuml

interface Camera

Camera ^-- Camera1
Camera ^-- Camera2
Camera ^-- Camera3

@enduml

can do this, but that does not 'solve' the render issue.
0 votes
answered Mar 6, 2019 by Jan Wilmans
Also to answer you question: what I wanted was this:

https://pasteboard.co/I4cG7ML.png
commented Mar 12, 2019 by zimchaa (1,040 points)
To recreate that diagram:

@startuml
class Camera1
class Camera2
interface ICam

Camera1 -up-|> ICam
Camera2 -up-|> ICam
@enduml

http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuKhEIImkLd1Ep4qjIZH4uHbnPUQLf1Qb9IQdAdW2XRYueAeKT4iBT6li889GjIXY3gbvAK2p0G00



Note, this is the older style of UML that includes the I or C in the circle in the header.
0 votes
answered Mar 6, 2019 by anonymous
I'm trying to create a class diagram, ()- already means 'interface' I guess the keyword interface is redundant here. example? did I not provide the example?

@startuml

class Camera1
class Camera2

interface Camera ()- Camera1
interface Camera ()- Camera2

@enduml

Anyway

This works OK:

@startuml
Bar()- Foo
@enduml

This has a render error on the left side:

@startuml
Bar1()- Foo
@enduml

And, this has a render error on the left side:

@startuml
Bar12()- Foo
@enduml

etc...
commented Mar 12, 2019 by zimchaa (1,040 points)
I think the slight confusion on my side is that the ()-- lolipop connection is meant more for the Component diagram interfaces. The class diagram 'Interface' keyword renders differently.

e.g.
@startuml
skinparam componentStyle uml2
component Camera1
component Camera2

interface CameraInt1
interface CameraInt2

Camera1 - CameraInt1
Camera2 - CameraInt2
@enduml

http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuIhEpimhI2nAp5L8piyjoCzBpIi9BgdCILK0IXfnmSKKd1DpKuiI3J54ZBYuClDAKelI4fDJeKAUUIM6s0I1Ig6cAEWYAuKQ1194A7L8pKi1EW40

and

@startuml
skinparam componentStyle uml2
class Camera1
class Camera2

interface CameraInt1
interface CameraInt2

Camera1 - CameraInt1
Camera2 - CameraInt2
@enduml

http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuIhEpimhI2nAp5L8piyjoCzBpIi9BgdCILK0IXfn9USa5XShE2VcfXOb6gBmZBYuClDAKelI4fDJeKAUUIM6s0I1Ig4cAEWYAuKQ1194A7L8pKi1MWq0
...