You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/08/23 01:07:06 UTC

[groovy] branch master updated: generate uml inline (and make it pdf compatible)

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new 2c013fd  generate uml inline (and make it pdf compatible)
2c013fd is described below

commit 2c013fd6cbdab971d29fe8aac07aef1ea71850e2
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sun Aug 23 11:06:56 2020 +1000

    generate uml inline (and make it pdf compatible)
---
 gradle/asciidoctor.gradle                          |   2 +-
 src/spec/doc/assets/img/CompositeClasses.gif       | Bin 5334 -> 0 bytes
 src/spec/doc/assets/img/CompositeComponents.gif    | Bin 3930 -> 0 bytes
 .../doc/fragment_design-pattern-composite.adoc     |  36 +++++++++++++++++++--
 4 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/gradle/asciidoctor.gradle b/gradle/asciidoctor.gradle
index 623d841..7959ec7 100644
--- a/gradle/asciidoctor.gradle
+++ b/gradle/asciidoctor.gradle
@@ -77,7 +77,7 @@ asciidoctorj {
         }
     }
     modules {
-//        diagram.version('2.0.2')
+        diagram.version('2.0.2')
         pdf.version('1.5.3')
     }
 }
diff --git a/src/spec/doc/assets/img/CompositeClasses.gif b/src/spec/doc/assets/img/CompositeClasses.gif
deleted file mode 100644
index 8ce2c9b..0000000
Binary files a/src/spec/doc/assets/img/CompositeClasses.gif and /dev/null differ
diff --git a/src/spec/doc/assets/img/CompositeComponents.gif b/src/spec/doc/assets/img/CompositeComponents.gif
deleted file mode 100644
index 2611360..0000000
Binary files a/src/spec/doc/assets/img/CompositeComponents.gif and /dev/null differ
diff --git a/src/spec/doc/fragment_design-pattern-composite.adoc b/src/spec/doc/fragment_design-pattern-composite.adoc
index 24e33ca..ca6e259 100644
--- a/src/spec/doc/fragment_design-pattern-composite.adoc
+++ b/src/spec/doc/fragment_design-pattern-composite.adoc
@@ -27,13 +27,45 @@ The https://en.wikipedia.org/wiki/Composite_pattern[Composite Pattern] allows yo
 
 Consider this usage of the composite pattern where we want to call `toString()` on either `Leaf` or `Composite` objects.
 
-image::assets/img/CompositeClasses.gif[]
+[plantuml, CompositeClasses, png]
+....
+skinparam linetype ortho
+class Component {
+    +toString()
+}
+class Leaf {
+    +toString()
+}
+class Composite {
+    +toString()
+}
+object componentClient
+hide fields
+Composite "1" *-- "*" Component : children
+componentClient ..r..> "uses" Component
+Component <|-- Leaf
+Component <|-- Composite
+....
 
 In Java, the `Component` class is essential as it provides the type used for both leaf and composite nodes. In Groovy, because of duck-typing, we don't need it for that purpose, however, it can still serve as a useful place to place common behaviour between the leaf and composite nodes.
 
 For our purposes, we will assemble the following hierarchy of components.
 
-image::assets/img/CompositeComponents.gif[]
+[plantuml, CompositeComponents, png]
+....
+object root
+object "leaf A" as leafA
+object "comp B" as compB
+object "leaf C" as leafC
+object "leaf B1" as leafB1
+object "leaf B2" as leafB2
+
+root -- leafA
+root -- compB
+root -- leafC
+compB -- leafB1
+compB -- leafB2
+....
 
 Here is the code: