Author: agiraudet Date: 2013-04-29 12:50:09 +0200 (Mon, 29 Apr 2013) New Revision: 601 Url: http://nuiton.org/projects/sandbox/repository/revisions/601 Log: ajout d'un exemple concret de la syntaxe uml4.yaml : diagram1.yaml diagram1.png Added: testEugeneUML-YAML/testsnakeyaml/diagram1.png testEugeneUML-YAML/testsnakeyaml/diagram1.yaml Modified: testEugeneUML-YAML/testsnakeyaml/src/main/java/testsnakeyaml.java testEugeneUML-YAML/testsnakeyaml/uml4.yaml Added: testEugeneUML-YAML/testsnakeyaml/diagram1.png =================================================================== (Binary files differ) Property changes on: testEugeneUML-YAML/testsnakeyaml/diagram1.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: testEugeneUML-YAML/testsnakeyaml/diagram1.yaml =================================================================== --- testEugeneUML-YAML/testsnakeyaml/diagram1.yaml (rev 0) +++ testEugeneUML-YAML/testsnakeyaml/diagram1.yaml 2013-04-29 10:50:09 UTC (rev 601) @@ -0,0 +1,54 @@ +%YAML 1.1 +--- +# syntaxe uml/yaml version 4 + +# http://yaml.org/ +# http://laurent-audibert.developpez.com/Cours-UML/html/Cours-UML014.html +# astuce : utiliser la coloration syntaxique sh/bash +# attention a l'indentation ! + +# exemple +# objectif de la syntaxe : proche de l'ObjectModel + +# en-tête du document + +interface Interface1: + - operation1() + +class Classe1: + - interfaces: + - Interface1 + - Classe2 + - Classe4 + +class Classe2: + - interfaces: + - Interface1 + - Classe1 + - Classe4 composite [0..*] + +association Classe3: + - participants: + - Classe1 + - Classe2 + - Integer entier + +class Classe4: + - superclasses: + - Classe1 + - Classe2 + - Classe5 [1..*] [label1] + +class Classe5: + - String chaine + - Classe4 [0..*] [label1] + - tagvalues: + key1: value1 + key2: value2 + - coments: + - comment1 + - comment2 + +# regle1 : si un label et une seule multiplicité sont présents, alors l'association est bidirectionnelle +# regle2 : si un label et deux multiplicités sont présents, alors l'association et unidirectionnelle (le label est alors indicatif) +# regle3 : si on veut préciser un label pour une relation unidirectionnelle, il faut préciser les deux multiplicités de la relation Modified: testEugeneUML-YAML/testsnakeyaml/src/main/java/testsnakeyaml.java =================================================================== --- testEugeneUML-YAML/testsnakeyaml/src/main/java/testsnakeyaml.java 2013-04-25 20:22:15 UTC (rev 600) +++ testEugeneUML-YAML/testsnakeyaml/src/main/java/testsnakeyaml.java 2013-04-29 10:50:09 UTC (rev 601) @@ -13,6 +13,11 @@ // http://www.google.fr/search?q=filetype%3Ayaml public class testsnakeyaml { + + class toto{ //inner class + + } + private Yaml yaml; private Object data; @@ -66,7 +71,7 @@ } public static void main (String[] args) throws IOException { - new testsnakeyaml("uml2.yaml").afficher(); - //new testsnakeyaml("uml2.yaml").toString(); + //new testsnakeyaml("uml4.yaml").afficher(); + System.out.println(new testsnakeyaml("uml4.yaml").toString()); } } Modified: testEugeneUML-YAML/testsnakeyaml/uml4.yaml =================================================================== --- testEugeneUML-YAML/testsnakeyaml/uml4.yaml 2013-04-25 20:22:15 UTC (rev 600) +++ testEugeneUML-YAML/testsnakeyaml/uml4.yaml 2013-04-29 10:50:09 UTC (rev 601) @@ -3,58 +3,52 @@ # syntaxe uml/yaml version 4 # http://yaml.org/ +# http://laurent-audibert.developpez.com/Cours-UML/html/Cours-UML014.html # astuce : utiliser la coloration syntaxique sh/bash # attention a l'indentation ! # exemple # objectif de la syntaxe : proche de l'ObjectModel -# association bidirectionnelle : c'est le mal -# visibilité optionnelle +# en-tête du document -class Classe1 <<entity>>: - - String chaine - - Integer entier - - String toString() - - Integer operation1(String input) -# "nom de l'attribut" "multiplicité" {type de lien} "multiplicité" "classe cible" -# exemple syntaxe modsl: -# 0->1(PollCommentVisibility); -# etudier navigabilité : si lien pas navigable, inutile de referencer l'autre classe (fait lors du traitement) -# types de relations : uni-directionnel, bi-directionnel, composition, agregation -# unidirectionnel - - attribut1 --> 1..3 Classe1 - - attribut1 -> 1..3 Classe1 -# bidirectionnel - - attribut2 --- Classe1 - - attribut2 -- Classe1 -# composition - - attribut3 <*>- - - attribut3 *- - - attribut3 <*>-> - - attribut3 *-> -# agregation - - attribut2 <o>- - - attribut2 o- - - attribut2 <o>-> - - attribut2 o-> +interface Interface1: + - operation1() -interface Interface1 <<entity>>: - - Integer entier - - String toString() +class Classe1: + - interfaces: + - Interface1 + - Classe2 + - Classe4 -enumeration Enumeration1 <<entity>>: - - Integer entier - - String toString() +class Classe2: + - interfaces: + - Interface1 + - Classe1 + - Classe4 composite [0..*] -# associationClass ou association -association AssociationClasse1: - - int attribut - - String toString() -# puis les classes cibles - - Classe1 - - Classe2 - - Classe3 +association Classe3: + - participants: + - Classe1 + - Classe2 + - Integer entier -class Classe2 extends Classe1 implements Interface1 - - . \ No newline at end of file +class Classe4: + - superclasses: + - Classe1 + - Classe2 + - Classe5 [1..*] [label1] + +class Classe5: + - String chaine + - Classe4 [0..*] [label1] + - tagvalues: + key1: value1 + key2: value2 + - coments: + - comment1 + - comment2 + +# regle1 : si un label et une seule multiplicité sont présents, alors l'association est bidirectionnelle +# regle2 : si un label et deux multiplicités sont présents, alors l'association et unidirectionnelle (le label est alors indicatif) +# regle3 : si on veut préciser un label pour une relation unidirectionnelle, il faut préciser les deux multiplicités de la relation