Skip to content
Snippets Groups Projects
Commit dfa0fce6 authored by Daniel Hornung's avatar Daniel Hornung
Browse files

DOC: Plantuml diagrams

parent a46a795b
Branches
Tags
2 merge requests!21Release v0.4.0,!15Document server code structure
Pipeline #8120 passed
...@@ -47,6 +47,7 @@ extensions = [ ...@@ -47,6 +47,7 @@ extensions = [
"recommonmark", # For markdown files. "recommonmark", # For markdown files.
"sphinx.ext.autosectionlabel", # Allow reference sections using its title "sphinx.ext.autosectionlabel", # Allow reference sections using its title
"sphinx_rtd_theme", "sphinx_rtd_theme",
"sphinxcontrib.plantuml", # PlantUML diagrams
] ]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
......
...@@ -30,8 +30,12 @@ Transactions are explained in detail in the :ref:`Transactions and Schedules<tra ...@@ -30,8 +30,12 @@ Transactions are explained in detail in the :ref:`Transactions and Schedules<tra
.. uml:: .. uml::
@startuml @startuml
abstract AbstractCaosDBServerResource abstract AbstractCaosDBServerResource {
class RetrieveEntityResource {abstract} httpGetInChildClass()
{abstract} httpPostInChildClass()
{abstract} ...InChildClass()
}
abstract RetrieveEntityResource
class EntityResource class EntityResource
AbstractCaosDBServerResource <|-- RetrieveEntityResource AbstractCaosDBServerResource <|-- RetrieveEntityResource
RetrieveEntityResource <|-- EntityResource RetrieveEntityResource <|-- EntityResource
...@@ -60,6 +64,43 @@ main packages which handle the backend: ...@@ -60,6 +64,43 @@ main packages which handle the backend:
method. These classes may use specific backend implementations (like for example the MySQL method. These classes may use specific backend implementations (like for example the MySQL
implementations) to interact with the backend database. implementations) to interact with the backend database.
.. uml::
@startuml
together {
abstract BackendTransaction {
HashMap impl // stores all implementations
abstract execute()
}
note left of BackendTransaction::impl
Stores the
implementation
for each
interface."
end note
package ...backend.interfaces {
interface GetIDByNameImpl {
abstract execute(String name, String role, String limit)
}
}
}
together {
package ...backend.transaction {
class GetIDByName extends BackendTransaction {
execute()
}
}
package ...backend.implementation.MySQL {
class MySQLGetIDByName implements GetIDByNameImpl {
execute(String name, String role, String limit)
}
}
}
GetIDByName::execute --r-> MySQLGetIDByName
@enduml
.. _transactions: .. _transactions:
Transactions and Schedules Transactions and Schedules
......
...@@ -2,10 +2,11 @@ FROM debian:buster ...@@ -2,10 +2,11 @@ FROM debian:buster
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y \ apt-get install -y \
git make mariadb-server maven openjdk-11-jdk-headless \ git make mariadb-server maven openjdk-11-jdk-headless \
plantuml \
python3-pip screen libpam0g-dev unzip curl shunit2 \ python3-pip screen libpam0g-dev unzip curl shunit2 \
python3-sphinx \ python3-sphinx \
&& \ && \
pip3 install javasphinx recommonmark sphinx-rtd-theme pip3 install javasphinx recommonmark sphinx-rtd-theme sphinxcontrib-plantuml
# Alternative, if javasphinx fails because python3-sphinx is too recent: # Alternative, if javasphinx fails because python3-sphinx is too recent:
# (`_l` not found): # (`_l` not found):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment