diff --git a/DEV3.4/TP4/stub/0Bad/Base.class b/DEV3.4/TP4/stub/0Bad/Base.class
new file mode 100644
index 0000000..729c95a
Binary files /dev/null and b/DEV3.4/TP4/stub/0Bad/Base.class differ
diff --git a/DEV3.4/TP4/stub/0Bad/Base.java b/DEV3.4/TP4/stub/0Bad/Base.java
new file mode 100644
index 0000000..5e6a4cf
--- /dev/null
+++ b/DEV3.4/TP4/stub/0Bad/Base.java
@@ -0,0 +1,4 @@
+// juste un type énuméré pour nommer les bases
+public enum Base {
+ A,C,G,T
+}
diff --git a/DEV3.4/TP4/stub/0Bad/Exemple.class b/DEV3.4/TP4/stub/0Bad/Exemple.class
new file mode 100644
index 0000000..1e92419
Binary files /dev/null and b/DEV3.4/TP4/stub/0Bad/Exemple.class differ
diff --git a/DEV3.4/TP4/stub/0Bad/Exemple.java b/DEV3.4/TP4/stub/0Bad/Exemple.java
new file mode 100644
index 0000000..ae72d5c
--- /dev/null
+++ b/DEV3.4/TP4/stub/0Bad/Exemple.java
@@ -0,0 +1,31 @@
+// Fichier Exemple pour le premier exercice sur l'ADN
+
+public class Exemple{
+ public static void main(String[] args) {
+ // codon GCT code l'analine https://en.wikipedia.org/wiki/DNA_codon_table
+ // stop codon TAG, voir https://en.wikipedia.org/wiki/Stop_codon
+
+ System.out.println("construction du brin GCTTAG");
+ MonMaillon l = new MonMaillon(Base.G);
+ l = new MonMaillon(Base.A,l);
+ l = new MonMaillon(Base.T,l);
+ l = new MonMaillon(Base.T,l);
+ l = new MonMaillon(Base.C,l);
+ l = new MonMaillon(Base.G,l);
+
+ MonBrin b = new MonBrin(l);
+
+ System.out.println("l'affichage par défaut du brin ne va pas vous plaire");
+ System.out.println(b.toString());
+
+
+ System.out.println("On peut afficher en avançant");
+ System.out.println("Il faut s'en inspirer pour implémenter l'interface iterator de Java.util");
+ MonMaillon actuel = b.getDebut();//NB: c'est comme l ci-dessus
+
+ while (actuel != null){
+ System.out.println(actuel.getBase());
+ actuel = actuel.getSuiteMaillon();
+ }
+ }
+}
diff --git a/DEV3.4/TP4/stub/0Bad/MonBrin.class b/DEV3.4/TP4/stub/0Bad/MonBrin.class
new file mode 100644
index 0000000..78df7e0
Binary files /dev/null and b/DEV3.4/TP4/stub/0Bad/MonBrin.class differ
diff --git a/DEV3.4/TP4/stub/0Bad/MonBrin.java b/DEV3.4/TP4/stub/0Bad/MonBrin.java
new file mode 100644
index 0000000..278cd61
--- /dev/null
+++ b/DEV3.4/TP4/stub/0Bad/MonBrin.java
@@ -0,0 +1,29 @@
+/**
+ MonBrin code un brin d'ADN sous forme de liste simplement chaînée.
+
+ Plusieurs instances de MonMaillon reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
+
+ On n'utilise pas java.util et on recode tout.
+
+ Cette version a un problème : la navigation n'est pas raisonnable
+*/
+public class MonBrin {
+
+ private MonMaillon debut;
+ //Le constructeur fabrique un brin à partir du premier maillon p;
+ public MonBrin(MonMaillon p){
+ this.debut = p;
+ }
+
+ public MonMaillon getDebut(){
+ return this.debut;
+ }
+
+ /** et pour naviguer?
+ On pourrait implémenter l'interface iterator de java.util ici
+ **/
+
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/0Bad/MonMaillon.class b/DEV3.4/TP4/stub/0Bad/MonMaillon.class
new file mode 100644
index 0000000..a34e2ca
Binary files /dev/null and b/DEV3.4/TP4/stub/0Bad/MonMaillon.class differ
diff --git a/DEV3.4/TP4/stub/0Bad/MonMaillon.java b/DEV3.4/TP4/stub/0Bad/MonMaillon.java
new file mode 100644
index 0000000..1c2347f
--- /dev/null
+++ b/DEV3.4/TP4/stub/0Bad/MonMaillon.java
@@ -0,0 +1,33 @@
+/**
+ MonMaillon code un maillon d'un brin d'ADN.
+ plusieurs instances reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
+ On n'utilise pas java.util et on recode tout.
+
+*/
+public class MonMaillon {
+
+ private Base b;
+ private MonMaillon suivant;
+ //Le constructeur de base retourne un brin à une base;
+ public MonMaillon(Base b){
+ this.b = b;
+ this.suivant = null;
+ }
+
+ // Le constructeur évolué ajoute une base à un brin.
+ public MonMaillon(Base b, MonMaillon l){
+ this.b = b;
+ this.suivant = l;
+ }
+
+ public Base getBase(){
+ return this.b;
+ }
+
+ public MonMaillon getSuiteMaillon(){
+ return this.suivant;
+ }
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/1Iterable/Base.class b/DEV3.4/TP4/stub/1Iterable/Base.class
new file mode 100644
index 0000000..729c95a
Binary files /dev/null and b/DEV3.4/TP4/stub/1Iterable/Base.class differ
diff --git a/DEV3.4/TP4/stub/1Iterable/Base.java b/DEV3.4/TP4/stub/1Iterable/Base.java
new file mode 100644
index 0000000..5e6a4cf
--- /dev/null
+++ b/DEV3.4/TP4/stub/1Iterable/Base.java
@@ -0,0 +1,4 @@
+// juste un type énuméré pour nommer les bases
+public enum Base {
+ A,C,G,T
+}
diff --git a/DEV3.4/TP4/stub/1Iterable/Exemple.class b/DEV3.4/TP4/stub/1Iterable/Exemple.class
new file mode 100644
index 0000000..9e48e56
Binary files /dev/null and b/DEV3.4/TP4/stub/1Iterable/Exemple.class differ
diff --git a/DEV3.4/TP4/stub/1Iterable/Exemple.java b/DEV3.4/TP4/stub/1Iterable/Exemple.java
new file mode 100644
index 0000000..94a55a7
--- /dev/null
+++ b/DEV3.4/TP4/stub/1Iterable/Exemple.java
@@ -0,0 +1,34 @@
+// Fichier Exemple pour le second exercice sur l'ADN
+
+public class Exemple{
+ public static void main(String[] args) {
+ // codon GCT code l'analine https://en.wikipedia.org/wiki/DNA_codon_table
+ // stop codon TAG, voir https://en.wikipedia.org/wiki/Stop_codon
+
+ System.out.println("construction du brin GCTTAG");
+ MonMaillon l = new MonMaillon(Base.G);
+ l = new MonMaillon(Base.A,l);
+ l = new MonMaillon(Base.T,l);
+ l = new MonMaillon(Base.T,l);
+ l = new MonMaillon(Base.C,l);
+ l = new MonMaillon(Base.G,l);
+
+ MonBrin b = new MonBrin(l);
+
+ System.out.println("l'affichage par défaut du brin ne va pas vous plaire");
+ System.out.println(b.toString());
+
+ System.out.println("On peut maintenant afficher en itérant avec un while comme ceci");
+
+ while (b.hasNext()){
+ System.out.println(b.next());
+ }
+
+ // ajouter du code ici pour gérer les questions en plus
+ // (simulation de plusieurs navigations successives)
+
+
+ // (simulation de plusieurs navigations simultanées)
+ }
+
+}
diff --git a/DEV3.4/TP4/stub/1Iterable/MonBrin.class b/DEV3.4/TP4/stub/1Iterable/MonBrin.class
new file mode 100644
index 0000000..b69f223
Binary files /dev/null and b/DEV3.4/TP4/stub/1Iterable/MonBrin.class differ
diff --git a/DEV3.4/TP4/stub/1Iterable/MonBrin.java b/DEV3.4/TP4/stub/1Iterable/MonBrin.java
new file mode 100644
index 0000000..f808b74
--- /dev/null
+++ b/DEV3.4/TP4/stub/1Iterable/MonBrin.java
@@ -0,0 +1,59 @@
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+/**
+ MonBrin code un brin d'ADN sous forme de liste simplement chaînée.
+
+ Plusieurs instances de MonMaillon reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
+
+ On n'utilise pas java.util et on recode tout.
+
+ Cette version a un problème : la navigation n'est pas raisonnable
+*/
+public class MonBrin implements Iterator{
+
+ public MonMaillon debut;
+ public MonMaillon index;
+ //Le constructeur fabrique un brin à partir du premier maillon p;
+ public MonBrin(MonMaillon p){
+ this.debut = p;
+ this.index = p;
+ }
+
+ public MonMaillon getDebut(){
+ return this.debut;
+ }
+
+ public MonMaillon getIndex(){
+ return this.index;
+ }
+
+ // rappel : on met @Override pour dire au compilateur qu'on veut surcharger (en particulier c'est le cas quand on implémente une interface)
+ // ce n'est pas nécessaire dans ce cas mais ça permet d'avoir des messages d'alerte si on se trompe (typo dans le nom de la méthode ...)
+ // voir https://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why
+ @Override
+ public boolean hasNext(){
+ if (this.index.suivant==null){
+ return false;
+ }
+ else{
+ return true;
+ }
+ }
+
+ @Override
+ public Base next() {
+ if (this.hasNext()){
+ this.index = this.index.suivant;
+ return this.index.b;
+ }
+ else{
+ throw new NoSuchElementException();
+ }
+
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP4/stub/1Iterable/MonMaillon.class b/DEV3.4/TP4/stub/1Iterable/MonMaillon.class
new file mode 100644
index 0000000..4334c4e
Binary files /dev/null and b/DEV3.4/TP4/stub/1Iterable/MonMaillon.class differ
diff --git a/DEV3.4/TP4/stub/1Iterable/MonMaillon.java b/DEV3.4/TP4/stub/1Iterable/MonMaillon.java
new file mode 100644
index 0000000..b6cf51a
--- /dev/null
+++ b/DEV3.4/TP4/stub/1Iterable/MonMaillon.java
@@ -0,0 +1,33 @@
+/**
+ MonMaillon code un maillon d'un brin d'ADN.
+ plusieurs instances reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
+ On n'utilise pas java.util et on recode tout.
+
+*/
+public class MonMaillon {
+
+ public Base b;
+ public MonMaillon suivant;
+ //Le constructeur de base retourne un brin à une base;
+ public MonMaillon(Base b){
+ this.b = b;
+ this.suivant = null;
+ }
+
+ // Le constructeur évolué ajoute une base à un brin.
+ public MonMaillon(Base b, MonMaillon l){
+ this.b = b;
+ this.suivant = l;
+ }
+
+ public Base getBase(){
+ return this.b;
+ }
+
+ public MonMaillon getSuiteMaillon(){
+ return this.suivant;
+ }
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/2Iterator/Base.java b/DEV3.4/TP4/stub/2Iterator/Base.java
new file mode 100644
index 0000000..5e6a4cf
--- /dev/null
+++ b/DEV3.4/TP4/stub/2Iterator/Base.java
@@ -0,0 +1,4 @@
+// juste un type énuméré pour nommer les bases
+public enum Base {
+ A,C,G,T
+}
diff --git a/DEV3.4/TP4/stub/2Iterator/Exemple.java b/DEV3.4/TP4/stub/2Iterator/Exemple.java
new file mode 100644
index 0000000..b48d0a7
--- /dev/null
+++ b/DEV3.4/TP4/stub/2Iterator/Exemple.java
@@ -0,0 +1,35 @@
+// Fichier Exemple pour le dernier exercice sur l'ADN (Iterable)
+
+public class Exemple{
+
+ public static void main(String[] args) {
+
+ // codon GCT code l'analine https://en.wikipedia.org/wiki/DNA_codon_table
+ // stop codon TAG, voir https://en.wikipedia.org/wiki/Stop_codon
+
+ System.out.println("construction du brin GCTTAG");
+ MonMaillon l = new MonMaillon(Base.G);
+ l = new MonMaillon(Base.A,l);
+ l = new MonMaillon(Base.T,l);
+ l = new MonMaillon(Base.T,l);
+ l = new MonMaillon(Base.C,l);
+ l = new MonMaillon(Base.G,l);
+
+ MonBrin m = new MonBrin(l);
+
+ System.out.println("l'affichage par défaut du brin ne va pas vous plaire");
+ System.out.println(m.toString());
+
+ System.out.println("On peut afficher en itérant avec forEach (une méthode proposée par Iterable, regardez la doc)");
+ m.forEach(b -> System.out.println(b));
+
+ System.out.println("On a découplé la navigation de la structuration en implémentant iterable plutôt que iterator. On peut maintenant naviguer 2 fois facilement, c'est vraiment trop fort.");
+ m.forEach(b -> System.out.println(b));
+
+ System.out.println("On peut même utiliser les boucles avancées de Java 8 et notre code en devient presque pythonesque");
+ for(Base b: m){
+ System.out.println(b);
+ }
+ }
+
+}
diff --git a/DEV3.4/TP4/stub/2Iterator/MonBrin.java b/DEV3.4/TP4/stub/2Iterator/MonBrin.java
new file mode 100644
index 0000000..b6782cc
--- /dev/null
+++ b/DEV3.4/TP4/stub/2Iterator/MonBrin.java
@@ -0,0 +1,37 @@
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+/**
+ MonBrin code un brin d'ADN sous forme de liste simplement chaînée.
+
+ Plusieurs instances de MonMaillon reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
+
+ On n'utilise pas java.util et on recode tout.
+
+ Cette version est correcte : la structuration et la navigation sont dans 2 classes séparées.
+La classe MonBrin implémente Iterable au sens où elle peut générer à la demande un objet Iterator.
+
+NB : Notez que j'implémente Iterable plutôt que Iterable qui n'était pas tout à fait propre
+c'est un peu technique et c'est lié aux types génériques.
+ Il y a des détails ici
+https://stackoverflow.com/questions/20790770/why-cant-i-assign-a-raw-type-to-a-parameterized-type-java?rq=1
+*/
+public class MonBrin implements Iterable{
+
+
+ public MonBrin(MonMaillon p){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public MonMaillon getDebut(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ /** Pour naviguer?
+ On implémente l'interface iterator de java.util ici
+ L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navigation fonctionne.
+ **/
+ @Override
+ public Iterator iterator() {
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+}
diff --git a/DEV3.4/TP4/stub/2Iterator/MonBrinIterator.java b/DEV3.4/TP4/stub/2Iterator/MonBrinIterator.java
new file mode 100644
index 0000000..a2a85e7
--- /dev/null
+++ b/DEV3.4/TP4/stub/2Iterator/MonBrinIterator.java
@@ -0,0 +1,32 @@
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+MonBrinIterator
+
+gère la navigation dans un Brin d'ADN
+
+*/
+public class MonBrinIterator implements Iterator {
+
+ public MonBrinIterator(MonMaillon m){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ /** Pour naviguer?
+ On implémente l'interface iterable de java.util ici
+ L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navogation fonctionne.
+ **/
+ @Override
+ public boolean hasNext(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ @Override
+ public Base next() {
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/2Iterator/MonMaillon.java b/DEV3.4/TP4/stub/2Iterator/MonMaillon.java
new file mode 100644
index 0000000..d5e4c66
--- /dev/null
+++ b/DEV3.4/TP4/stub/2Iterator/MonMaillon.java
@@ -0,0 +1,29 @@
+/**
+ MonMaillon code un maillon d'un brin d'ADN.
+ plusieurs instances reliées convenablement forment une structure de liste simplement chaînée contenant pour chaque maillon le nom de la base.
+ On n'utilise pas java.util et on recode tout.
+
+*/
+public class MonMaillon {
+
+ //Le constructeur de base retourne un brin à une base;
+ public MonMaillon(Base b){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ // Le constructeur évolué ajoute une base à un brin.
+ public MonMaillon(Base b, MonMaillon l){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public Base getBase(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public MonMaillon getSuiteMaillon(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/Base.java b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/Base.java
new file mode 100644
index 0000000..5e6a4cf
--- /dev/null
+++ b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/Base.java
@@ -0,0 +1,4 @@
+// juste un type énuméré pour nommer les bases
+public enum Base {
+ A,C,G,T
+}
diff --git a/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/Exemple.java b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/Exemple.java
new file mode 100644
index 0000000..b4afd21
--- /dev/null
+++ b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/Exemple.java
@@ -0,0 +1,58 @@
+// Fichier Exemple pour le dernier exercice sur l'ADN (Iterable)
+
+public class Exemple{
+
+ public static void main(String[] args) {
+
+ // codon GCT code l'analine https://en.wikipedia.org/wiki/DNA_codon_table
+ // codon CAT code Histidine
+ // codon CGT code Arginine
+ // codon GCC code Analine
+ // stop codon TAG, voir https://en.wikipedia.org/wiki/Stop_codon
+
+ System.out.println("construction du brin CGT CAT CGT GCC CAT GCT TAG");
+ MonBrin l = new MonBrin(Base.G);
+ l = new MonBrin(Base.A,l);
+ l = new MonBrin(Base.T,l);
+ //
+ l = new MonBrin(Base.T,l);
+ l = new MonBrin(Base.C,l);
+ l = new MonBrin(Base.G,l);
+ //
+ l = new MonBrin(Base.T,l);
+ l = new MonBrin(Base.A,l);
+ l = new MonBrin(Base.C,l);
+ //
+ l = new MonBrin(Base.C,l);
+ l = new MonBrin(Base.C,l);
+ l = new MonBrin(Base.G,l);
+ //
+ l = new MonBrin(Base.T,l);
+ l = new MonBrin(Base.G,l);
+ l = new MonBrin(Base.C,l);
+ //
+ l = new MonBrin(Base.T,l);
+ l = new MonBrin(Base.A,l);
+ l = new MonBrin(Base.C,l);
+ //
+ l = new MonBrin(Base.T,l);
+ l = new MonBrin(Base.G,l);
+ l = new MonBrin(Base.C,l);
+ //
+
+ System.out.println("l'affichage par défaut ne va toujours pas vous plaire");
+ System.out.println(l.toString());
+
+ System.out.println("On peut afficher en itérant avec forEach (une méthode proposée par Iterable, regardez la doc)");
+ l.forEach(b -> System.out.println(b));
+
+ System.out.println("On a découplé la navigation de la structuration en implémentant iterable plutôt que iterator. On peut maintenant naviguer 2 fois facilement, c'est vraiment trop fort.");
+ l.forEach(b -> System.out.println(b));
+
+ System.out.println("On peut même utiliser les boucles avancées de Java 8 et notre code en devient presque pythonesque");
+ for(Base b: l){
+ System.out.println(b);
+ }
+ }
+
+}
diff --git a/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/MonBrin.java b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/MonBrin.java
new file mode 100644
index 0000000..6cd0ad1
--- /dev/null
+++ b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/MonBrin.java
@@ -0,0 +1,83 @@
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+MonBrin code un brin d'ADN sous forme de tableaux. Dynamiquement, la taille du tableau est augmentée en cas de besoin (la taille est initialement 3*4 elle est multipliée ensuite pour être toujours de la forme 3*2^n).
+On utilise System.arraycopy et java.util.Arrays.copyOfRange pour faire ça efficacement.
+voir
+https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#arraycopy-java.lang.Object-int-java.lang.Object-int-int-
+https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#copyOfRange-T:A-int-int-
+
+Cette version est correcte : la structuration et la navigation sont dans 2 classes séparées.
+La classe MonBrin implémente Iterable au sens où elle peut générer à la demande un objet Iterator.
+
+NB : Notez que j'implémente Iterable plutôt que Iterable qui n'était pas tout à fait propre
+c'est un peu technique et c'est lié aux types génériques.
+ Il y a des détails ici
+https://stackoverflow.com/questions/20790770/why-cant-i-assign-a-raw-type-to-a-parameterized-type-java?rq=1
+*/
+
+public class MonBrin implements Iterable {
+
+ /**
+ C'est le constructeur de base (pun intended) qui construit un brin à une base
+
+ @param b : la base
+
+ Ici je pourrais mettre un commentaire plus long sur le fonctionement détaillé de mon super constructeur.
+
+ */
+ public MonBrin(Base b){
+
+ }
+
+ /**
+ C'est le constructeur évolué qui construit un brin en ajoutant la base donnée en argument devant le brin donné en argument.
+
+ @param b : la base qui va aller devant
+ @param l : le brin qui sera à la suite
+
+ NB. Ce constructeur est un peu obsolète avec la nouvelle structure interne.
+ On devrait en ajouter un qui prend en paramètre un tableau de bases.
+ */
+ public MonBrin(Base b, MonBrin l){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public Base getBase(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public int length(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public int limit(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public int capacity(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public Base getBase(int i){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ public Base[] getBases(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ /** Pour naviguer?
+ On implémente l'interface iterator de java.util ici
+ L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navigation fonctionne.
+ **/
+ @Override
+ public Iterator iterator() {
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/MonBrinIterator.java b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/MonBrinIterator.java
new file mode 100644
index 0000000..363d355
--- /dev/null
+++ b/DEV3.4/TP4/stub/3IteratorDifferentInnerStructure/MonBrinIterator.java
@@ -0,0 +1,33 @@
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+MonBrinIterator
+
+gère la navigation dans un Brin d'ADN
+
+*/
+public class MonBrinIterator implements Iterator {
+
+ //Le constructeur de base retourne un brin à une base;
+ public MonBrinIterator(MonBrin brin){
+ }
+
+ /** Pour naviguer?
+ On implémente l'interface iterable de java.util ici
+ L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navigation fonctionne.
+ **/
+
+ @Override
+ public boolean hasNext(){
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+ @Override
+ public Base next() {
+ throw new UnsupportedOperationException("cette méthode n'est pas implémentée");
+ }
+
+}
+
+
diff --git a/DEV3.4/TP4/stub/explication.txt b/DEV3.4/TP4/stub/explication.txt
new file mode 100644
index 0000000..9254e46
--- /dev/null
+++ b/DEV3.4/TP4/stub/explication.txt
@@ -0,0 +1,20 @@
+Les biologistes sont des gens étranges pour lesquels les string n'ont que 4 lettres : A,C,G ou T.
+Ils ne connaissent pas les String, ils parlent d'ADN.
+
+
+Le Brin est une succession de Maillons.
+Il suffit de connaître le premier maillon pour définir un brin d'ADN.
+
+ +----------+
+ | maillon |
+ | | _____ next __> autre Maillon
+ | |
+ +----+-----+
+ |
+ | val
+ \|/
+ +----------+
+ | Base |
+ | A |
+ | |
+ +----+-----+
diff --git a/DEV3.4/TP4/stubTPADN.tar.gz b/DEV3.4/TP4/stubTPADN.tar.gz
new file mode 100644
index 0000000..d5ee521
Binary files /dev/null and b/DEV3.4/TP4/stubTPADN.tar.gz differ
diff --git a/DEV3.4/TP5/stub/exo3/Chef.class b/DEV3.4/TP5/stub/exo3/Chef.class
new file mode 100644
index 0000000..91527ab
Binary files /dev/null and b/DEV3.4/TP5/stub/exo3/Chef.class differ
diff --git a/DEV3.4/TP5/stub/exo3/Chef.java b/DEV3.4/TP5/stub/exo3/Chef.java
new file mode 100644
index 0000000..687c8ab
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo3/Chef.java
@@ -0,0 +1,62 @@
+import java.util.*;
+
+/** feuille du motif composite */
+public class Chef extends Person {
+
+ ArrayList subalternes;
+
+
+ public boolean addSubalterne(Person p){
+ return this.subalternes.add(p);
+ }
+
+
+
+ /** constructeur
+ *
+ * @param n fun factor
+ *
+ */
+ public Chef(int n){
+ super(n);
+ this.subalternes = new ArrayList(100);
+ // d'autres choses peut-être.
+ }
+
+
+ /**
+ * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
+ *
+ * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
+ *
+ */
+ public int bestPartyWithoutMe(){
+ int funParty = 0;
+ for(int i=0;iNB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées.
+ *
+ * @see Travailleur, Chef
+ */
+ //
+ public Person(int n){
+ if (n < 0)
+ throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n);
+ this.funFactor = n;
+ }
+
+ /**
+ *
+ * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
+ */
+ public abstract int bestPartyWithoutMe();
+
+
+ /**
+ *
+ * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
+ */
+ public abstract int bestParty();
+}
+
diff --git a/DEV3.4/TP5/stub/exo3/Travailleur.class b/DEV3.4/TP5/stub/exo3/Travailleur.class
new file mode 100644
index 0000000..163aff0
Binary files /dev/null and b/DEV3.4/TP5/stub/exo3/Travailleur.class differ
diff --git a/DEV3.4/TP5/stub/exo3/Travailleur.java b/DEV3.4/TP5/stub/exo3/Travailleur.java
new file mode 100644
index 0000000..3ecbd57
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo3/Travailleur.java
@@ -0,0 +1,31 @@
+/** feuille du motif composite */
+public class Travailleur extends Person {
+
+ /** constructeur
+ *
+ * @param n fun factor
+ *
+ */
+ public Travailleur(int n){
+ super(n);
+ }
+
+ /**
+ *
+ * @return fête sans le travailleur
+ */
+ public int bestPartyWithoutMe(){
+ return 0;
+ }
+
+ /**
+ * @return fête avec le travailleur
+ */
+ public int bestParty(){
+ return this.getFunFactor();
+ }
+
+
+}
+
+
diff --git a/DEV3.4/TP5/stub/exo4/Chef.java b/DEV3.4/TP5/stub/exo4/Chef.java
new file mode 100644
index 0000000..38ed1b9
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo4/Chef.java
@@ -0,0 +1,48 @@
+import java.util.LinkedHashSet;
+import java.util.Objects;
+
+/** feuille du motif composite */
+public class Chef extends Person {
+
+
+ public boolean addSubalterne(Person p){
+
+ }
+
+
+
+ /** constructeur
+ *
+ * @param n fun factor
+ *
+ */
+ public Chef(int n){
+ super(n);
+ // d'autres choses peut-être.
+ }
+
+
+ /**
+ * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
+ *
+ * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
+ *
+ */
+ public int bestPartyWithoutMe(){
+ // to do
+ }
+
+ /**
+ * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes).
+ * soit c'est la meilleure fête avec moi.
+ *
+ * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
+ *
+ */
+ public int bestParty(){
+ // to do
+ }
+
+}
+
+
diff --git a/DEV3.4/TP5/stub/exo4/Exemple.java b/DEV3.4/TP5/stub/exo4/Exemple.java
new file mode 100644
index 0000000..9a23013
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo4/Exemple.java
@@ -0,0 +1,36 @@
+public class Exemple {
+ public static void main(String[] args) {
+ // bar 2
+ // foo 5
+ // titi 4
+ // tata 4
+ // toto 6
+ // tete 6
+
+ Travailleur titi = new Travailleur(4);
+ Travailleur tata = new Travailleur(4);
+ Travailleur toto = new Travailleur(6);
+
+ Chef foo = new Chef(5);
+ foo.addSubalterne(titi);
+ foo.addSubalterne(tata);
+ foo.addSubalterne(toto);
+ System.out.println(foo.bestParty());
+ System.out.println(foo.bestPartyWithoutMe());
+
+ Travailleur tete = new Travailleur(6);
+ // System.out.println(tete.bestParty());
+ // System.out.println(tete.bestPartyWithoutMe());
+
+ Chef bar = new Chef(2);
+ bar.addSubalterne(foo);
+ bar.addSubalterne(tete);
+ System.out.println(bar.bestParty());
+ //System.out.println(bar.bestPartyWithoutMe());
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP5/stub/exo4/Exemple2.java b/DEV3.4/TP5/stub/exo4/Exemple2.java
new file mode 100644
index 0000000..808a518
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo4/Exemple2.java
@@ -0,0 +1,33 @@
+public class Exemple2 {
+ public static void main(String[] args) {
+ // Exemple inspiré question Thibault B.
+ // 1
+ // 10
+ // 1
+ // 1
+ // 10
+ // 3
+ // 4
+
+ Travailleur a = new Travailleur(3);
+ Travailleur b = new Travailleur(4);
+ Chef c = new Chef(10);
+ c.addSubalterne(a);
+ c.addSubalterne(b);
+ Chef d = new Chef(1);
+ d.addSubalterne(c);
+ Chef e = new Chef(1);
+ e.addSubalterne(d);
+ Chef f = new Chef(10);
+ f.addSubalterne(e);
+ Chef g = new Chef(1);
+ g.addSubalterne(f);
+
+ System.out.println(g.bestParty());
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP5/stub/exo4/Exemple3.java b/DEV3.4/TP5/stub/exo4/Exemple3.java
new file mode 100644
index 0000000..55651c9
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo4/Exemple3.java
@@ -0,0 +1,43 @@
+public class Exemple3 {
+ public static void main(String[] args) {
+
+ Travailleur a = new Travailleur(3);
+ Travailleur b = new Travailleur(4);
+ Chef c = new Chef(10);
+ c.addSubalterne(a);
+ c.addSubalterne(b);
+ Chef d = new Chef(1);
+ d.addSubalterne(c);
+ Chef e = new Chef(1);
+ e.addSubalterne(d);
+ Chef f = new Chef(10);
+ f.addSubalterne(e);
+ Chef g = new Chef(1);
+ g.addSubalterne(f);
+
+ Travailleur titi = new Travailleur(4);
+ Travailleur tata = new Travailleur(4);
+ Travailleur toto = new Travailleur(6);
+ Chef foo = new Chef(5);
+ foo.addSubalterne(titi);
+ foo.addSubalterne(tata);
+ foo.addSubalterne(toto);
+ Chef bar = new Chef(2);
+ bar.addSubalterne(foo);
+ Travailleur tete = new Travailleur(6);
+ bar.addSubalterne(tete);
+
+ Chef x = new Chef(2);
+ x.addSubalterne(g);
+ x.addSubalterne(bar);
+ Chef y = new Chef(39);
+ y.addSubalterne(x);
+
+ System.out.println(y.bestParty());
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP5/stub/exo4/Person.java b/DEV3.4/TP5/stub/exo4/Person.java
new file mode 100644
index 0000000..b4f1951
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo4/Person.java
@@ -0,0 +1,44 @@
+
+/** "Les personnes sont soit des chefs, soit des travailleurs" */
+public abstract class Person{
+ /**
+ * valeur indiquant le niveau de coolitude de la personne
+ */
+ private int funFactor;
+
+ /**
+ * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête.
+ *
+ */
+ public int getFunFactor(){
+ return this.funFactor;
+ }
+
+ /**
+ * constructeur
+ *
+ * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées.
+ *
+ * @see Travailleur, Chef
+ */
+ //
+ public Person(int n){
+ if (n < 0)
+ throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n);
+ this.funFactor = n;
+ }
+
+ /**
+ *
+ * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
+ */
+ public abstract int bestPartyWithoutMe();
+
+
+ /**
+ *
+ * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
+ */
+ public abstract int bestParty();
+}
+
diff --git a/DEV3.4/TP5/stub/exo4/Travailleur.java b/DEV3.4/TP5/stub/exo4/Travailleur.java
new file mode 100644
index 0000000..7df408b
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo4/Travailleur.java
@@ -0,0 +1,31 @@
+/** feuille du motif composite */
+public class Travailleur extends Person {
+
+ /** constructeur
+ *
+ * @param n fun factor
+ *
+ */
+ public Travailleur(int n){
+ super(n);
+ }
+
+ /**
+ *
+ * @return fête sans le travailleur
+ */
+ public int bestPartyWithoutMe(){
+ // return null;
+ }
+
+ /**
+ * @return fête avec le travailleur
+ */
+ public int bestParty(){
+ // return null;
+ }
+
+
+}
+
+
diff --git a/DEV3.4/TP5/stub/exo5/Chef.java b/DEV3.4/TP5/stub/exo5/Chef.java
new file mode 100644
index 0000000..38ed1b9
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo5/Chef.java
@@ -0,0 +1,48 @@
+import java.util.LinkedHashSet;
+import java.util.Objects;
+
+/** feuille du motif composite */
+public class Chef extends Person {
+
+
+ public boolean addSubalterne(Person p){
+
+ }
+
+
+
+ /** constructeur
+ *
+ * @param n fun factor
+ *
+ */
+ public Chef(int n){
+ super(n);
+ // d'autres choses peut-être.
+ }
+
+
+ /**
+ * La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
+ *
+ * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
+ *
+ */
+ public int bestPartyWithoutMe(){
+ // to do
+ }
+
+ /**
+ * La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes).
+ * soit c'est la meilleure fête avec moi.
+ *
+ * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
+ *
+ */
+ public int bestParty(){
+ // to do
+ }
+
+}
+
+
diff --git a/DEV3.4/TP5/stub/exo5/Exemple.java b/DEV3.4/TP5/stub/exo5/Exemple.java
new file mode 100644
index 0000000..9a23013
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo5/Exemple.java
@@ -0,0 +1,36 @@
+public class Exemple {
+ public static void main(String[] args) {
+ // bar 2
+ // foo 5
+ // titi 4
+ // tata 4
+ // toto 6
+ // tete 6
+
+ Travailleur titi = new Travailleur(4);
+ Travailleur tata = new Travailleur(4);
+ Travailleur toto = new Travailleur(6);
+
+ Chef foo = new Chef(5);
+ foo.addSubalterne(titi);
+ foo.addSubalterne(tata);
+ foo.addSubalterne(toto);
+ System.out.println(foo.bestParty());
+ System.out.println(foo.bestPartyWithoutMe());
+
+ Travailleur tete = new Travailleur(6);
+ // System.out.println(tete.bestParty());
+ // System.out.println(tete.bestPartyWithoutMe());
+
+ Chef bar = new Chef(2);
+ bar.addSubalterne(foo);
+ bar.addSubalterne(tete);
+ System.out.println(bar.bestParty());
+ //System.out.println(bar.bestPartyWithoutMe());
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP5/stub/exo5/Exemple2.java b/DEV3.4/TP5/stub/exo5/Exemple2.java
new file mode 100644
index 0000000..808a518
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo5/Exemple2.java
@@ -0,0 +1,33 @@
+public class Exemple2 {
+ public static void main(String[] args) {
+ // Exemple inspiré question Thibault B.
+ // 1
+ // 10
+ // 1
+ // 1
+ // 10
+ // 3
+ // 4
+
+ Travailleur a = new Travailleur(3);
+ Travailleur b = new Travailleur(4);
+ Chef c = new Chef(10);
+ c.addSubalterne(a);
+ c.addSubalterne(b);
+ Chef d = new Chef(1);
+ d.addSubalterne(c);
+ Chef e = new Chef(1);
+ e.addSubalterne(d);
+ Chef f = new Chef(10);
+ f.addSubalterne(e);
+ Chef g = new Chef(1);
+ g.addSubalterne(f);
+
+ System.out.println(g.bestParty());
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP5/stub/exo5/Exemple3.java b/DEV3.4/TP5/stub/exo5/Exemple3.java
new file mode 100644
index 0000000..55651c9
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo5/Exemple3.java
@@ -0,0 +1,43 @@
+public class Exemple3 {
+ public static void main(String[] args) {
+
+ Travailleur a = new Travailleur(3);
+ Travailleur b = new Travailleur(4);
+ Chef c = new Chef(10);
+ c.addSubalterne(a);
+ c.addSubalterne(b);
+ Chef d = new Chef(1);
+ d.addSubalterne(c);
+ Chef e = new Chef(1);
+ e.addSubalterne(d);
+ Chef f = new Chef(10);
+ f.addSubalterne(e);
+ Chef g = new Chef(1);
+ g.addSubalterne(f);
+
+ Travailleur titi = new Travailleur(4);
+ Travailleur tata = new Travailleur(4);
+ Travailleur toto = new Travailleur(6);
+ Chef foo = new Chef(5);
+ foo.addSubalterne(titi);
+ foo.addSubalterne(tata);
+ foo.addSubalterne(toto);
+ Chef bar = new Chef(2);
+ bar.addSubalterne(foo);
+ Travailleur tete = new Travailleur(6);
+ bar.addSubalterne(tete);
+
+ Chef x = new Chef(2);
+ x.addSubalterne(g);
+ x.addSubalterne(bar);
+ Chef y = new Chef(39);
+ y.addSubalterne(x);
+
+ System.out.println(y.bestParty());
+ }
+
+}
+
+
+
+
diff --git a/DEV3.4/TP5/stub/exo5/Person.java b/DEV3.4/TP5/stub/exo5/Person.java
new file mode 100644
index 0000000..b4f1951
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo5/Person.java
@@ -0,0 +1,44 @@
+
+/** "Les personnes sont soit des chefs, soit des travailleurs" */
+public abstract class Person{
+ /**
+ * valeur indiquant le niveau de coolitude de la personne
+ */
+ private int funFactor;
+
+ /**
+ * @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête.
+ *
+ */
+ public int getFunFactor(){
+ return this.funFactor;
+ }
+
+ /**
+ * constructeur
+ *
+ * NB. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées.
+ *
+ * @see Travailleur, Chef
+ */
+ //
+ public Person(int n){
+ if (n < 0)
+ throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n);
+ this.funFactor = n;
+ }
+
+ /**
+ *
+ * @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
+ */
+ public abstract int bestPartyWithoutMe();
+
+
+ /**
+ *
+ * @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
+ */
+ public abstract int bestParty();
+}
+
diff --git a/DEV3.4/TP5/stub/exo5/Travailleur.java b/DEV3.4/TP5/stub/exo5/Travailleur.java
new file mode 100644
index 0000000..7df408b
--- /dev/null
+++ b/DEV3.4/TP5/stub/exo5/Travailleur.java
@@ -0,0 +1,31 @@
+/** feuille du motif composite */
+public class Travailleur extends Person {
+
+ /** constructeur
+ *
+ * @param n fun factor
+ *
+ */
+ public Travailleur(int n){
+ super(n);
+ }
+
+ /**
+ *
+ * @return fête sans le travailleur
+ */
+ public int bestPartyWithoutMe(){
+ // return null;
+ }
+
+ /**
+ * @return fête avec le travailleur
+ */
+ public int bestParty(){
+ // return null;
+ }
+
+
+}
+
+
diff --git a/DEV3.4/TP5/stubTPBamboche.tar.gz b/DEV3.4/TP5/stubTPBamboche.tar.gz
new file mode 100644
index 0000000..4a5fecb
Binary files /dev/null and b/DEV3.4/TP5/stubTPBamboche.tar.gz differ
diff --git a/DEV3.4/TP6/Donjon.class b/DEV3.4/TP6/Donjon.class
new file mode 100644
index 0000000..e726729
Binary files /dev/null and b/DEV3.4/TP6/Donjon.class differ
diff --git a/DEV3.4/TP6/Donjon.java b/DEV3.4/TP6/Donjon.java
new file mode 100644
index 0000000..0bf2c3a
--- /dev/null
+++ b/DEV3.4/TP6/Donjon.java
@@ -0,0 +1,10 @@
+public abstract class Donjon{
+
+ abstract public PieceNPlocal apres (PieceNPlocal p);
+
+ abstract public PieceNPlocal avant (PieceNPlocal p);
+
+ //version bd à ajouter
+
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TP6/DonjonNPlocal.class b/DEV3.4/TP6/DonjonNPlocal.class
new file mode 100644
index 0000000..2d45189
Binary files /dev/null and b/DEV3.4/TP6/DonjonNPlocal.class differ
diff --git a/DEV3.4/TP6/DonjonNPlocal.java b/DEV3.4/TP6/DonjonNPlocal.java
new file mode 100644
index 0000000..a9a753e
--- /dev/null
+++ b/DEV3.4/TP6/DonjonNPlocal.java
@@ -0,0 +1,39 @@
+import java.util.*;
+
+public class DonjonNPlocal extends Donjon{
+
+ private int indexPiecePerso;
+ private ArrayList donjon;
+
+ public DonjonNPlocal (ArrayList pieceDonjon, int positionDepart){
+ this.donjon = (ArrayList) pieceDonjon.clone();
+ this.indexPiecePerso = positionDepart;
+ }
+
+ public PieceNPlocal apres (PieceNPlocal p){
+ if (indexPiecePerso+1>=donjon.size()){
+ return this.donjon.get(0);
+ }
+ else{
+ return this.donjon.get(indexPiecePerso+1);
+ }
+ }
+
+ public PieceNPlocal avant (PieceNPlocal p){
+ if (indexPiecePerso-1<0){
+ return this.donjon.get(this.donjon.size()-1);
+ }
+ else{
+ return this.donjon.get(indexPiecePerso-1);
+ }
+ }
+
+ public void persoAvance(){
+ this.indexPiecePerso++;
+ }
+
+ public void persoRecule(){
+ this.indexPiecePerso--;
+ }
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TP6/Main.class b/DEV3.4/TP6/Main.class
new file mode 100644
index 0000000..8e34f5e
Binary files /dev/null and b/DEV3.4/TP6/Main.class differ
diff --git a/DEV3.4/TP6/Main.java b/DEV3.4/TP6/Main.java
new file mode 100644
index 0000000..a34231a
--- /dev/null
+++ b/DEV3.4/TP6/Main.java
@@ -0,0 +1,33 @@
+import java.util.*;
+
+public class Main{
+
+ public static void main(String[] args) {
+
+ ArrayList pieceDonjon = new ArrayList(5);
+
+ pieceDonjon.add(new PieceNPlocal(23));
+ pieceDonjon.add(new PieceNPlocal(42));
+ pieceDonjon.add(new PieceNPlocal(1));
+ pieceDonjon.add(new PieceNPlocal(18));
+ pieceDonjon.add(new PieceNPlocal(56));
+
+ VuePerso joueur = new VuePerso(pieceDonjon, 2);
+
+ joueur.vueToString();
+ joueur.avance();
+ joueur.vueToString();
+ joueur.avance();
+ joueur.vueToString();
+ joueur.recule();
+ joueur.vueToString();
+ joueur.avance();
+ joueur.avance();
+ joueur.vueToString();
+ joueur.recule();
+ joueur.recule();
+ joueur.recule();
+ joueur.recule();
+ joueur.vueToString();
+ }
+}
\ No newline at end of file
diff --git a/DEV3.4/TP6/Piece.class b/DEV3.4/TP6/Piece.class
new file mode 100644
index 0000000..104649e
Binary files /dev/null and b/DEV3.4/TP6/Piece.class differ
diff --git a/DEV3.4/TP6/Piece.java b/DEV3.4/TP6/Piece.java
new file mode 100644
index 0000000..0d9acc0
--- /dev/null
+++ b/DEV3.4/TP6/Piece.java
@@ -0,0 +1,7 @@
+public abstract class Piece{
+
+ protected int contenu;
+
+ abstract public int getContenu();
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TP6/PieceNPlocal.class b/DEV3.4/TP6/PieceNPlocal.class
new file mode 100644
index 0000000..5a74fc1
Binary files /dev/null and b/DEV3.4/TP6/PieceNPlocal.class differ
diff --git a/DEV3.4/TP6/PieceNPlocal.java b/DEV3.4/TP6/PieceNPlocal.java
new file mode 100644
index 0000000..fd2bf06
--- /dev/null
+++ b/DEV3.4/TP6/PieceNPlocal.java
@@ -0,0 +1,11 @@
+public class PieceNPlocal extends Piece{
+
+ public PieceNPlocal(int x){
+ this.contenu = x;
+ }
+
+ public int getContenu(){
+ return this.contenu;
+ }
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TP6/VuePerso.class b/DEV3.4/TP6/VuePerso.class
new file mode 100644
index 0000000..901bbaa
Binary files /dev/null and b/DEV3.4/TP6/VuePerso.class differ
diff --git a/DEV3.4/TP6/VuePerso.java b/DEV3.4/TP6/VuePerso.java
new file mode 100644
index 0000000..5c20ed8
--- /dev/null
+++ b/DEV3.4/TP6/VuePerso.java
@@ -0,0 +1,36 @@
+import java.util.*;
+
+public class VuePerso{
+
+ private PieceNPlocal pieceici;
+ private PieceNPlocal pieceavant;
+ private PieceNPlocal pieceapres;
+ private DonjonNPlocal donjonJoueur;
+
+ public VuePerso(ArrayList pieceDonjon, int positionDepart){
+ this.donjonJoueur = new DonjonNPlocal(pieceDonjon, positionDepart);
+ this.pieceici = pieceDonjon.get(positionDepart);
+ this.pieceapres = this.donjonJoueur.apres(pieceici);
+ this.pieceavant = this.donjonJoueur.avant(pieceici);
+ }
+
+ public void vueToString(){
+ System.out.println("Contenu piece actuelle: "+this.pieceici.getContenu());
+ }
+
+ public void avance(){
+ this.pieceavant = this.pieceici;
+ this.pieceici = donjonJoueur.apres(pieceici);
+ this.donjonJoueur.persoAvance();
+ this.pieceapres = donjonJoueur.apres(pieceapres);
+
+ }
+
+ public void recule(){
+ this.pieceapres = this.pieceici;
+ this.pieceici = donjonJoueur.avant(pieceici);
+ this.donjonJoueur.persoRecule();
+ this.pieceavant = donjonJoueur.avant(pieceavant);
+ }
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TPnote/Model/Billet.java b/DEV3.4/TPnote/Model/Billet.java
new file mode 100644
index 0000000..95dfc4b
--- /dev/null
+++ b/DEV3.4/TPnote/Model/Billet.java
@@ -0,0 +1,21 @@
+
+import java.util.*;
+
+/**
+ *
+ */
+public class Billet {
+
+ /**
+ * Les valeurs que peut prendre le billet
+ */
+ Denomination valeur;
+
+ /**
+ * Constructeur
+ */
+ public Billet(Denomination v){
+ this.valeur = v;
+ }
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TPnote/Model/Denomination.java b/DEV3.4/TPnote/Model/Denomination.java
new file mode 100644
index 0000000..46add52
--- /dev/null
+++ b/DEV3.4/TPnote/Model/Denomination.java
@@ -0,0 +1,9 @@
+
+/**
+ *
+ */
+public enum Denomination {
+ UN,
+ CINQ,
+ DIX
+}
\ No newline at end of file
diff --git a/DEV3.4/TPnote/Model/Individu.java b/DEV3.4/TPnote/Model/Individu.java
new file mode 100644
index 0000000..8039f57
--- /dev/null
+++ b/DEV3.4/TPnote/Model/Individu.java
@@ -0,0 +1,92 @@
+
+import java.util.*;
+
+/**
+ *
+ */
+public class Individu {
+
+ /**
+ * argent que l'individu possède
+ */
+ private ArrayList monnaie;
+
+ /**
+ * nom de l'individu
+ */
+ private String nom;
+
+ /**
+ * Constructeur
+ */
+ public Individu() {
+ this.monnaie = new ArrayList();
+ }
+
+ /**
+ * Constructeur en prenant en comptye que l'individu possède déjà de l'argent
+ */
+ public Individu(ArrayList argentPosséder) {
+ this.monnaie = argentPosséder.clone();
+ }
+
+ /**
+ * Billet b: le billet a ajouté
+ * Ajoute le billet à l'argent de l'individu
+ */
+ public void add(Billet b){
+ monnaie.add(b);
+ }
+
+ /**
+ * Billet b: le billet a vérifier
+ * Vérifie si l'individu possède ce billet
+ * return: true/false
+ */
+ public Boolean possède(Billet b){
+ if(this.monnaie.contains(b)){
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Billet b: le billet a retirer
+ * Retire le billet si l'individu possède ce billet
+ * return: true/false
+ */
+ public Boolean delete(Billet b){
+ if(this.possède(b)){
+ monnaie.remove(b);
+ return true;
+ }else{
+ System.out.println("L'utilisateur ne possède pas ce type de billet")
+ return false;
+ }
+ }
+
+ /**
+ *
+ */
+ public void mv(Individu payer, Denomination d){
+ //a coder
+ }
+
+ /**
+ *
+ */
+ public void payer (Individu payer, ArrayList argentDonné){
+ Iterator iterateurArgent = argentDonné.iterator();
+ Boolean aDeQuoiPayer;
+ while(iterateurArgent.hasNext()){
+ Billet argent = iterateurArgent.next();
+ aDeQuoiPayer = this.monnaie.delete(argent);
+ if(aDeQuoiPayer){
+ payer.monnaie.add(argent);
+ }
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/DEV3.4/TPnote/Model/Main.java b/DEV3.4/TPnote/Model/Main.java
new file mode 100644
index 0000000..78f720f
--- /dev/null
+++ b/DEV3.4/TPnote/Model/Main.java
@@ -0,0 +1,7 @@
+public class Main{
+
+ public static void main(String[] args) {
+
+
+ }
+}
\ No newline at end of file
diff --git a/DEV3.4/TPnote/TPnote.mdj b/DEV3.4/TPnote/TPnote.mdj
new file mode 100644
index 0000000..a9e9e8e
--- /dev/null
+++ b/DEV3.4/TPnote/TPnote.mdj
@@ -0,0 +1,1380 @@
+{
+ "_type": "Project",
+ "_id": "AAAAAAFF+h6SjaM2Hec=",
+ "name": "Untitled",
+ "ownedElements": [
+ {
+ "_type": "UMLModel",
+ "_id": "AAAAAAFF+qBWK6M3Z8Y=",
+ "_parent": {
+ "$ref": "AAAAAAFF+h6SjaM2Hec="
+ },
+ "name": "Model",
+ "ownedElements": [
+ {
+ "_type": "UMLClassDiagram",
+ "_id": "AAAAAAFF+qBtyKM79qY=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Main",
+ "defaultDiagram": true,
+ "ownedViews": [
+ {
+ "_type": "UMLClassView",
+ "_id": "AAAAAAGMPzPgHBwT5U4=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGMPzPgHBwUL4U=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzPgHRwVMl8=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwUL4U="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "height": 13
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzPgHRwWhnI=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwUL4U="
+ },
+ "font": "Arial;13;1",
+ "left": 501,
+ "top": 255,
+ "width": 41.919921875,
+ "height": 13,
+ "text": "Billet"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzPgHRwXnhY=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwUL4U="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzPgHRwYaI8=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwUL4U="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 496,
+ "top": 248,
+ "width": 51.919921875,
+ "height": 25,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGMPzPgHRwVMl8="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGMPzPgHRwWhnI="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGMPzPgHRwXnhY="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGMPzPgHRwYaI8="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGMPzPgHhwZ+sg=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "font": "Arial;13;0",
+ "left": 496,
+ "top": 273,
+ "width": 51.919921875,
+ "height": 10
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGMPzPgHhwal4g=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "font": "Arial;13;0",
+ "left": 496,
+ "top": 283,
+ "width": 51.919921875,
+ "height": 10
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGMPzPgHhwbGKg=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGMPzPgHxwc+AU=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 496,
+ "top": 248,
+ "width": 51.919921875,
+ "height": 45,
+ "nameCompartment": {
+ "$ref": "AAAAAAGMPzPgHBwUL4U="
+ },
+ "attributeCompartment": {
+ "$ref": "AAAAAAGMPzPgHhwZ+sg="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGMPzPgHhwal4g="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGMPzPgHhwbGKg="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGMPzPgHxwc+AU="
+ }
+ },
+ {
+ "_type": "UMLClassView",
+ "_id": "AAAAAAGMPzQ2hhyHhMo=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGMPzQ2hhyIUFw=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyHhMo="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzQ2hhyJNyc=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyIUFw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -80,
+ "top": -160,
+ "height": 13
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzQ2hxyKQZQ=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyIUFw="
+ },
+ "font": "Arial;13;1",
+ "left": 661,
+ "top": 279,
+ "width": 70.8017578125,
+ "height": 13,
+ "text": "Individu"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzQ2hxyL7v8=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyIUFw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -80,
+ "top": -160,
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzQ2hxyMaAY=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyIUFw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -80,
+ "top": -160,
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 656,
+ "top": 272,
+ "width": 80.8017578125,
+ "height": 25,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGMPzQ2hhyJNyc="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGMPzQ2hxyKQZQ="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGMPzQ2hxyL7v8="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGMPzQ2hxyMaAY="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGMPzQ2hxyNM0s=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyHhMo="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "subViews": [
+ {
+ "_type": "UMLAttributeView",
+ "_id": "AAAAAAGMPzRKxByyCP0=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hxyNM0s="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzRKtRyvLeg="
+ },
+ "font": "Arial;13;0",
+ "left": 661,
+ "top": 302,
+ "width": 70.8017578125,
+ "height": 13,
+ "text": "-nom: String",
+ "horizontalAlignment": 0
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 656,
+ "top": 297,
+ "width": 80.8017578125,
+ "height": 23
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGMPzQ2hxyO5DI=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyHhMo="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "font": "Arial;13;0",
+ "left": 656,
+ "top": 320,
+ "width": 80.8017578125,
+ "height": 10
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGMPzQ2hxyPYnI=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyHhMo="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -40,
+ "top": -80,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGMPzQ2hxyQ4sM=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hhyHhMo="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -40,
+ "top": -80,
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 656,
+ "top": 272,
+ "width": 80.8017578125,
+ "height": 58,
+ "nameCompartment": {
+ "$ref": "AAAAAAGMPzQ2hhyIUFw="
+ },
+ "attributeCompartment": {
+ "$ref": "AAAAAAGMPzQ2hxyNM0s="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGMPzQ2hxyO5DI="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGMPzQ2hxyPYnI="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGMPzQ2hxyQ4sM="
+ }
+ },
+ {
+ "_type": "UMLAssociationView",
+ "_id": "AAAAAAGMPzSHKhy7kbs=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy3gdQ="
+ },
+ "subViews": [
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKhy8OPY=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy3gdQ="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 603,
+ "top": 263,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxy94iA=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy3gdQ="
+ },
+ "visible": null,
+ "font": "Arial;13;0",
+ "left": 605,
+ "top": 248,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxy+zsE=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy3gdQ="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 598,
+ "top": 292,
+ "height": 13,
+ "alpha": -1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxy/PS0=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy4NIA="
+ },
+ "font": "Arial;13;0",
+ "left": 550,
+ "top": 258,
+ "width": 53.47900390625,
+ "height": 13,
+ "alpha": 0.5235987755982988,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "edgePosition": 2,
+ "text": "-possède"
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxzA+N4=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy4NIA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 580,
+ "top": 245,
+ "height": 13,
+ "alpha": 0.7853981633974483,
+ "distance": 40,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "edgePosition": 2
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxzBI/c=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy4NIA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 567,
+ "top": 284,
+ "height": 13,
+ "alpha": -0.5235987755982988,
+ "distance": 25,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "edgePosition": 2
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxzCaQs=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy5d1o="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 631,
+ "top": 267,
+ "height": 13,
+ "alpha": -0.5235987755982988,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ }
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxzDcVo=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy5d1o="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 631,
+ "top": 254,
+ "height": 13,
+ "alpha": -0.7853981633974483,
+ "distance": 40,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ }
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzSHKxzEdkU=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy5d1o="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 631,
+ "top": 295,
+ "height": 13,
+ "alpha": 0.5235987755982988,
+ "distance": 25,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ }
+ },
+ {
+ "_type": "UMLQualifierCompartmentView",
+ "_id": "AAAAAAGMPzSHLBzFMEc=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy4NIA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLQualifierCompartmentView",
+ "_id": "AAAAAAGMPzSHLBzGftw=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKhy7kbs="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzSHKBy5d1o="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "head": {
+ "$ref": "AAAAAAGMPzQ2hhyHhMo="
+ },
+ "tail": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "lineStyle": 1,
+ "points": "548:275;655:293",
+ "showVisibility": true,
+ "nameLabel": {
+ "$ref": "AAAAAAGMPzSHKhy8OPY="
+ },
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGMPzSHKxy94iA="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGMPzSHKxy+zsE="
+ },
+ "showEndOrder": "hide",
+ "tailRoleNameLabel": {
+ "$ref": "AAAAAAGMPzSHKxy/PS0="
+ },
+ "tailPropertyLabel": {
+ "$ref": "AAAAAAGMPzSHKxzA+N4="
+ },
+ "tailMultiplicityLabel": {
+ "$ref": "AAAAAAGMPzSHKxzBI/c="
+ },
+ "headRoleNameLabel": {
+ "$ref": "AAAAAAGMPzSHKxzCaQs="
+ },
+ "headPropertyLabel": {
+ "$ref": "AAAAAAGMPzSHKxzDcVo="
+ },
+ "headMultiplicityLabel": {
+ "$ref": "AAAAAAGMPzSHKxzEdkU="
+ },
+ "tailQualifiersCompartment": {
+ "$ref": "AAAAAAGMPzSHLBzFMEc="
+ },
+ "headQualifiersCompartment": {
+ "$ref": "AAAAAAGMPzSHLBzGftw="
+ }
+ },
+ {
+ "_type": "UMLEnumerationView",
+ "_id": "AAAAAAGMPzV2Hx8MXsQ=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGMPzV2Hx8NLc0=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzV2IB8OvXc=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8NLc0="
+ },
+ "font": "Arial;13;0",
+ "left": 341,
+ "top": 373,
+ "width": 86.72802734375,
+ "height": 13,
+ "text": "«enumeration»"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzV2IB8PYLM=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8NLc0="
+ },
+ "font": "Arial;13;1",
+ "left": 341,
+ "top": 388,
+ "width": 86.72802734375,
+ "height": 13,
+ "text": "Denomination"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzV2IB8QJh0=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8NLc0="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -80,
+ "top": -272,
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGMPzV2IB8RTao=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8NLc0="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -80,
+ "top": -272,
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 336,
+ "top": 368,
+ "width": 96.72802734375,
+ "height": 38,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGMPzV2IB8OvXc="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGMPzV2IB8PYLM="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGMPzV2IB8QJh0="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGMPzV2IB8RTao="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGMPzV2IB8SQ4o=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -40,
+ "top": -136,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGMPzV2IB8TaY0=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -40,
+ "top": -136,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGMPzV2IB8UKbU=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -40,
+ "top": -136,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGMPzV2IB8VbVg=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -40,
+ "top": -136,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLEnumerationLiteralCompartmentView",
+ "_id": "AAAAAAGMPzV2IB8WVIw=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "subViews": [
+ {
+ "_type": "UMLEnumerationLiteralView",
+ "_id": "AAAAAAGMPzWUdR9f+8w=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2IB8WVIw="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzWUZB9ZStQ="
+ },
+ "font": "Arial;13;0",
+ "left": 341,
+ "top": 411,
+ "width": 86.72802734375,
+ "height": 13,
+ "text": "UN",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLEnumerationLiteralView",
+ "_id": "AAAAAAGMPzWo+R+v/k0=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2IB8WVIw="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzWo8x+pWkM="
+ },
+ "font": "Arial;13;0",
+ "left": 341,
+ "top": 426,
+ "width": 86.72802734375,
+ "height": 13,
+ "text": "CINQ",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLEnumerationLiteralView",
+ "_id": "AAAAAAGMPzYBTiC/7yM=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2IB8WVIw="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzYBQyC5Izk="
+ },
+ "font": "Arial;13;0",
+ "left": 341,
+ "top": 441,
+ "width": 86.72802734375,
+ "height": 13,
+ "text": "DIX",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLEnumerationLiteralView",
+ "_id": "AAAAAAGMPzblmSER/fw=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2IB8WVIw="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzbllCELYNg="
+ },
+ "font": "Arial;13;0",
+ "left": 341,
+ "top": 456,
+ "width": 86.72802734375,
+ "height": 13,
+ "text": "VINGT",
+ "horizontalAlignment": 0
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 336,
+ "top": 406,
+ "width": 96.72802734375,
+ "height": 68
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 336,
+ "top": 368,
+ "width": 96.72802734375,
+ "height": 106,
+ "nameCompartment": {
+ "$ref": "AAAAAAGMPzV2Hx8NLc0="
+ },
+ "suppressAttributes": true,
+ "suppressOperations": true,
+ "attributeCompartment": {
+ "$ref": "AAAAAAGMPzV2IB8SQ4o="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGMPzV2IB8TaY0="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGMPzV2IB8UKbU="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGMPzV2IB8VbVg="
+ },
+ "enumerationLiteralCompartment": {
+ "$ref": "AAAAAAGMPzV2IB8WVIw="
+ }
+ },
+ {
+ "_type": "UMLAssociationView",
+ "_id": "AAAAAAGMPzdgGiI9EDc=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGCI5RjI="
+ },
+ "subViews": [
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGiI+8BU=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGCI5RjI="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 477,
+ "top": 334,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGiI/iB8=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGCI5RjI="
+ },
+ "visible": null,
+ "font": "Arial;13;0",
+ "left": 488,
+ "top": 344,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGiJAS7U=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGCI5RjI="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 454,
+ "top": 313,
+ "height": 13,
+ "alpha": -1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGiJB5Y8=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI6+uA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 493,
+ "top": 316,
+ "height": 13,
+ "alpha": 0.5235987755982988,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "edgePosition": 2
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGiJCWaM=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI6+uA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 501,
+ "top": 326,
+ "height": 13,
+ "alpha": 0.7853981633974483,
+ "distance": 40,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "edgePosition": 2
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGyJD2CQ=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI6+uA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 476,
+ "top": 294,
+ "height": 13,
+ "alpha": -0.5235987755982988,
+ "distance": 25,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "edgePosition": 2
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGyJE0og=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI7QtQ="
+ },
+ "font": "Arial;13;0",
+ "left": 392,
+ "top": 327,
+ "width": 39.736328125,
+ "height": 13,
+ "alpha": -4.973286470790616,
+ "distance": 39.11521443121589,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "text": "-valeur"
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGyJFV/E=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI7QtQ="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 471,
+ "top": 359,
+ "height": 13,
+ "alpha": -0.7853981633974483,
+ "distance": 40,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ }
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGMPzdgGyJGKTw=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI7QtQ="
+ },
+ "font": "Arial;13;0",
+ "left": 424,
+ "top": 343,
+ "width": 7.22998046875,
+ "height": 13,
+ "alpha": -5.25396457231186,
+ "distance": 17.72004514666935,
+ "hostEdge": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "text": "1"
+ },
+ {
+ "_type": "UMLQualifierCompartmentView",
+ "_id": "AAAAAAGMPzdgGyJHPV8=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI6+uA="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLQualifierCompartmentView",
+ "_id": "AAAAAAGMPzdgGyJIuQk=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGiI9EDc="
+ },
+ "model": {
+ "$ref": "AAAAAAGMPzdgGSI7QtQ="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "head": {
+ "$ref": "AAAAAAGMPzV2Hx8MXsQ="
+ },
+ "tail": {
+ "$ref": "AAAAAAGMPzPgHBwT5U4="
+ },
+ "lineStyle": 1,
+ "points": "500:293;432:367",
+ "showVisibility": true,
+ "nameLabel": {
+ "$ref": "AAAAAAGMPzdgGiI+8BU="
+ },
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGMPzdgGiI/iB8="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGMPzdgGiJAS7U="
+ },
+ "showEndOrder": "hide",
+ "tailRoleNameLabel": {
+ "$ref": "AAAAAAGMPzdgGiJB5Y8="
+ },
+ "tailPropertyLabel": {
+ "$ref": "AAAAAAGMPzdgGiJCWaM="
+ },
+ "tailMultiplicityLabel": {
+ "$ref": "AAAAAAGMPzdgGyJD2CQ="
+ },
+ "headRoleNameLabel": {
+ "$ref": "AAAAAAGMPzdgGyJE0og="
+ },
+ "headPropertyLabel": {
+ "$ref": "AAAAAAGMPzdgGyJFV/E="
+ },
+ "headMultiplicityLabel": {
+ "$ref": "AAAAAAGMPzdgGyJGKTw="
+ },
+ "tailQualifiersCompartment": {
+ "$ref": "AAAAAAGMPzdgGyJHPV8="
+ },
+ "headQualifiersCompartment": {
+ "$ref": "AAAAAAGMPzdgGyJIuQk="
+ }
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGMPzPgGBwRz4Q=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Billet",
+ "ownedElements": [
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGMPzSHKBy3gdQ=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGMPzSHKBy4NIA=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKBy3gdQ="
+ },
+ "name": "possède",
+ "reference": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "visibility": "private"
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGMPzSHKBy5d1o=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzSHKBy3gdQ="
+ },
+ "reference": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "aggregation": "composite"
+ }
+ },
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGMPzdgGCI5RjI=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGMPzdgGSI6+uA=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGCI5RjI="
+ },
+ "reference": {
+ "$ref": "AAAAAAGMPzPgGBwRz4Q="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGMPzdgGSI7QtQ=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzdgGCI5RjI="
+ },
+ "name": "valeur",
+ "reference": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "visibility": "private",
+ "navigable": "navigable",
+ "multiplicity": "1"
+ }
+ }
+ ]
+ },
+ {
+ "_type": "UMLInterface",
+ "_id": "AAAAAAGMPzQLlhw7IQE=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Individu",
+ "attributes": [
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGMPzQkFhxmmWo=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQLlhw7IQE="
+ },
+ "name": "Attribute1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGMPzQ2hRyFpnM=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Individu",
+ "attributes": [
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGMPzRKtRyvLeg=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzQ2hRyFpnM="
+ },
+ "name": "nom",
+ "visibility": "private",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGMPzTBxx3aiZ4=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Denomination",
+ "stereotype": "enumeration",
+ "attributes": [
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGMPzUVdR4lEls=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzTBxx3aiZ4="
+ },
+ "name": "UN"
+ },
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGMPzUkKx5Ng8U=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzTBxx3aiZ4="
+ },
+ "name": "DE"
+ }
+ ]
+ },
+ {
+ "_type": "UMLEnumeration",
+ "_id": "AAAAAAGMPzV2Hh8KVjw=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Denomination",
+ "literals": [
+ {
+ "_type": "UMLEnumerationLiteral",
+ "_id": "AAAAAAGMPzWUZB9ZStQ=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "name": "UN"
+ },
+ {
+ "_type": "UMLEnumerationLiteral",
+ "_id": "AAAAAAGMPzWo8x+pWkM=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "name": "CINQ"
+ },
+ {
+ "_type": "UMLEnumerationLiteral",
+ "_id": "AAAAAAGMPzYBQyC5Izk=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "name": "DIX"
+ },
+ {
+ "_type": "UMLEnumerationLiteral",
+ "_id": "AAAAAAGMPzbllCELYNg=",
+ "_parent": {
+ "$ref": "AAAAAAGMPzV2Hh8KVjw="
+ },
+ "name": "VINGT"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/DEV3.4/ex2.mdj b/DEV3.4/ex2.mdj
new file mode 100644
index 0000000..3688dad
--- /dev/null
+++ b/DEV3.4/ex2.mdj
@@ -0,0 +1,1654 @@
+{
+ "_type": "Project",
+ "_id": "AAAAAAFF+h6SjaM2Hec=",
+ "name": "Untitled",
+ "ownedElements": [
+ {
+ "_type": "UMLModel",
+ "_id": "AAAAAAFF+qBWK6M3Z8Y=",
+ "_parent": {
+ "$ref": "AAAAAAFF+h6SjaM2Hec="
+ },
+ "name": "Model",
+ "ownedElements": [
+ {
+ "_type": "UMLClassDiagram",
+ "_id": "AAAAAAFF+qBtyKM79qY=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Main",
+ "defaultDiagram": true,
+ "ownedViews": [
+ {
+ "_type": "UMLClassView",
+ "_id": "AAAAAAGLr1gegA6nTj0=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGLr1gegA6ox7M=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr1gegQ6p6DY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6ox7M="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 205,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "«abstract»"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr1gegQ6q/QE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6ox7M="
+ },
+ "font": "Arial;13;1",
+ "left": 573,
+ "top": 220,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "Joueur"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr1gegQ6rRUc=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6ox7M="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -48,
+ "top": -96,
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr1gegg6sYHY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6ox7M="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -48,
+ "top": -96,
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 568,
+ "top": 200,
+ "width": 115.853515625,
+ "height": 38,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr1gegQ6p6DY="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGLr1gegQ6q/QE="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGLr1gegQ6rRUc="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr1gegg6sYHY="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGLr1gegg6tjtY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "subViews": [
+ {
+ "_type": "UMLAttributeView",
+ "_id": "AAAAAAGLr2JcthAqq74=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6tjtY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2JcrhAn69Q="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 243,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "-nom: String",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLAttributeView",
+ "_id": "AAAAAAGLr2JgQxAwLeo=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6tjtY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2JgPRAt+JE="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 258,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "-nationalité: String",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLAttributeView",
+ "_id": "AAAAAAGLr2JiqxA2MwI=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6tjtY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2JipRAzqCk="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 273,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "-club: String",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLAttributeView",
+ "_id": "AAAAAAGLr1jTHQ7T0Lk=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6tjtY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1jTEw7QzIw="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 288,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "-numéro: int",
+ "horizontalAlignment": 0
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 568,
+ "top": 238,
+ "width": 115.853515625,
+ "height": 68
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGLr1gegg6unUY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "subViews": [
+ {
+ "_type": "UMLOperationView",
+ "_id": "AAAAAAGLr29DfxbZXsY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6unUY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr29DehbW3dM="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 311,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "+getNom(): String",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLOperationView",
+ "_id": "AAAAAAGLr29HBhcwPNI=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6unUY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr29HARctWB8="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 326,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "+getNatio(): String",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLOperationView",
+ "_id": "AAAAAAGLr29U1xgpYdY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6unUY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr29U0RgmHfo="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 341,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "+getClub(): String",
+ "horizontalAlignment": 0
+ },
+ {
+ "_type": "UMLOperationView",
+ "_id": "AAAAAAGLr1oRGg7aH3Y=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegg6unUY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1oRCg7XNME="
+ },
+ "font": "Arial;13;0",
+ "left": 573,
+ "top": 356,
+ "width": 105.853515625,
+ "height": 13,
+ "text": "+getNumero(): int",
+ "horizontalAlignment": 0
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 568,
+ "top": 306,
+ "width": 115.853515625,
+ "height": 68
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGLr1gegw6vjzA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -24,
+ "top": -48,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGLr1gegw6wK6s=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -24,
+ "top": -48,
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 568,
+ "top": 200,
+ "width": 115.853515625,
+ "height": 174,
+ "nameCompartment": {
+ "$ref": "AAAAAAGLr1gegA6ox7M="
+ },
+ "attributeCompartment": {
+ "$ref": "AAAAAAGLr1gegg6tjtY="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGLr1gegg6unUY="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGLr1gegw6vjzA="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGLr1gegw6wK6s="
+ }
+ },
+ {
+ "_type": "UMLClassView",
+ "_id": "AAAAAAGLr2k3gxBdngI=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGLr2k3gxBeoio=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBdngI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2k3gxBfkGw=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBeoio="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 160,
+ "top": -16,
+ "height": 13
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2k3hBBgBqU=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBeoio="
+ },
+ "font": "Arial;13;1",
+ "left": 477,
+ "top": 503,
+ "width": 41.919921875,
+ "height": 13,
+ "text": "Avant"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2k3hBBhEcA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBeoio="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 160,
+ "top": -16,
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2k3hBBiS8E=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBeoio="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 160,
+ "top": -16,
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 472,
+ "top": 496,
+ "width": 51.919921875,
+ "height": 25,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr2k3gxBfkGw="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGLr2k3hBBgBqU="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGLr2k3hBBhEcA="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr2k3hBBiS8E="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGLr2k3hBBj9oU=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBdngI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "font": "Arial;13;0",
+ "left": 472,
+ "top": 521,
+ "width": 51.919921875,
+ "height": 10
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGLr2k3hBBkze8=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBdngI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "font": "Arial;13;0",
+ "left": 472,
+ "top": 531,
+ "width": 51.919921875,
+ "height": 10
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGLr2k3hBBlt9s=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBdngI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 80,
+ "top": -8,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGLr2k3hRBmjWM=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3gxBdngI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 80,
+ "top": -8,
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 472,
+ "top": 496,
+ "width": 51.919921875,
+ "height": 45,
+ "nameCompartment": {
+ "$ref": "AAAAAAGLr2k3gxBeoio="
+ },
+ "attributeCompartment": {
+ "$ref": "AAAAAAGLr2k3hBBj9oU="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGLr2k3hBBkze8="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGLr2k3hBBlt9s="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGLr2k3hRBmjWM="
+ }
+ },
+ {
+ "_type": "UMLClassView",
+ "_id": "AAAAAAGLr2lPMRCHAJs=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGLr2lPMRCIsaE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCHAJs="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lPMRCJm6A=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCIsaE="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 32,
+ "top": -16,
+ "height": 13
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lPMRCKklQ=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCIsaE="
+ },
+ "font": "Arial;13;1",
+ "left": 597,
+ "top": 503,
+ "width": 60.68994140625,
+ "height": 13,
+ "text": "Charnière"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lPMRCLXGE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCIsaE="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 32,
+ "top": -16,
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lPMRCML/8=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCIsaE="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 32,
+ "top": -16,
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 592,
+ "top": 496,
+ "width": 70.68994140625,
+ "height": 25,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr2lPMRCJm6A="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGLr2lPMRCKklQ="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGLr2lPMRCLXGE="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr2lPMRCML/8="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGLr2lPMRCNmgs=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCHAJs="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "font": "Arial;13;0",
+ "left": 592,
+ "top": 521,
+ "width": 70.68994140625,
+ "height": 10
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGLr2lPMRCOO84=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCHAJs="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "font": "Arial;13;0",
+ "left": 592,
+ "top": 531,
+ "width": 70.68994140625,
+ "height": 10
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGLr2lPMRCPs8Y=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCHAJs="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 16,
+ "top": -8,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGLr2lPMRCQnM0=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMRCHAJs="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 16,
+ "top": -8,
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 592,
+ "top": 496,
+ "width": 70.68994140625,
+ "height": 45,
+ "nameCompartment": {
+ "$ref": "AAAAAAGLr2lPMRCIsaE="
+ },
+ "attributeCompartment": {
+ "$ref": "AAAAAAGLr2lPMRCNmgs="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGLr2lPMRCOO84="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGLr2lPMRCPs8Y="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGLr2lPMRCQnM0="
+ }
+ },
+ {
+ "_type": "UMLClassView",
+ "_id": "AAAAAAGLr2lpeRCxNLk=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "subViews": [
+ {
+ "_type": "UMLNameCompartmentView",
+ "_id": "AAAAAAGLr2lpeRCyEo4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCxNLk="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "subViews": [
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lpeRCzDpM=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCyEo4="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -48,
+ "height": 13
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lpeRC0QL0=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCyEo4="
+ },
+ "font": "Arial;13;1",
+ "left": 733,
+ "top": 503,
+ "width": 42.63720703125,
+ "height": 13,
+ "text": "Arrière"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lpeRC1MKk=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCyEo4="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -48,
+ "width": 73.67724609375,
+ "height": 13,
+ "text": "(from Model)"
+ },
+ {
+ "_type": "LabelView",
+ "_id": "AAAAAAGLr2lpeRC2ZG4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCyEo4="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -48,
+ "height": 13,
+ "horizontalAlignment": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "left": 728,
+ "top": 496,
+ "width": 52.63720703125,
+ "height": 25,
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr2lpeRCzDpM="
+ },
+ "nameLabel": {
+ "$ref": "AAAAAAGLr2lpeRC0QL0="
+ },
+ "namespaceLabel": {
+ "$ref": "AAAAAAGLr2lpeRC1MKk="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr2lpeRC2ZG4="
+ }
+ },
+ {
+ "_type": "UMLAttributeCompartmentView",
+ "_id": "AAAAAAGLr2lpehC33nA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCxNLk="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "font": "Arial;13;0",
+ "left": 728,
+ "top": 521,
+ "width": 52.63720703125,
+ "height": 10
+ },
+ {
+ "_type": "UMLOperationCompartmentView",
+ "_id": "AAAAAAGLr2lpehC4pFc=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCxNLk="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "font": "Arial;13;0",
+ "left": 728,
+ "top": 531,
+ "width": 52.63720703125,
+ "height": 10
+ },
+ {
+ "_type": "UMLReceptionCompartmentView",
+ "_id": "AAAAAAGLr2lpehC5eoc=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCxNLk="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -24,
+ "width": 10,
+ "height": 10
+ },
+ {
+ "_type": "UMLTemplateParameterCompartmentView",
+ "_id": "AAAAAAGLr2lpehC64HE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCxNLk="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": -24,
+ "width": 10,
+ "height": 10
+ }
+ ],
+ "font": "Arial;13;0",
+ "containerChangeable": true,
+ "left": 728,
+ "top": 496,
+ "width": 52.63720703125,
+ "height": 45,
+ "nameCompartment": {
+ "$ref": "AAAAAAGLr2lpeRCyEo4="
+ },
+ "attributeCompartment": {
+ "$ref": "AAAAAAGLr2lpehC33nA="
+ },
+ "operationCompartment": {
+ "$ref": "AAAAAAGLr2lpehC4pFc="
+ },
+ "receptionCompartment": {
+ "$ref": "AAAAAAGLr2lpehC5eoc="
+ },
+ "templateParameterCompartment": {
+ "$ref": "AAAAAAGLr2lpehC64HE="
+ }
+ },
+ {
+ "_type": "UMLGeneralizationView",
+ "_id": "AAAAAAGLr31bYCN/tYI=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31bXyN9u5U="
+ },
+ "subViews": [
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31bYCOAhqQ=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31bYCN/tYI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31bXyN9u5U="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 529,
+ "top": 420,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31bYCN/tYI="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31bYCOBEAE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31bYCN/tYI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31bXyN9u5U="
+ },
+ "visible": null,
+ "font": "Arial;13;0",
+ "left": 516,
+ "top": 413,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31bYCN/tYI="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31bYCOC2Pk=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31bYCN/tYI="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31bXyN9u5U="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 556,
+ "top": 435,
+ "height": 13,
+ "alpha": -1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31bYCN/tYI="
+ },
+ "edgePosition": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "head": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "tail": {
+ "$ref": "AAAAAAGLr2k3gxBdngI="
+ },
+ "lineStyle": 1,
+ "points": "510:495;576:374",
+ "showVisibility": true,
+ "nameLabel": {
+ "$ref": "AAAAAAGLr31bYCOAhqQ="
+ },
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr31bYCOBEAE="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr31bYCOC2Pk="
+ }
+ },
+ {
+ "_type": "UMLGeneralizationView",
+ "_id": "AAAAAAGLr31lQCOQpkM=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31lPyOOfmg="
+ },
+ "subViews": [
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31lQCORyTE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31lQCOQpkM="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31lPyOOfmg="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 610,
+ "top": 427,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31lQCOQpkM="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31lQCOSBso=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31lQCOQpkM="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31lPyOOfmg="
+ },
+ "visible": null,
+ "font": "Arial;13;0",
+ "left": 595,
+ "top": 427,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31lQCOQpkM="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31lQCOTB6g=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31lQCOQpkM="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31lPyOOfmg="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 639,
+ "top": 428,
+ "height": 13,
+ "alpha": -1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31lQCOQpkM="
+ },
+ "edgePosition": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "head": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "tail": {
+ "$ref": "AAAAAAGLr2lPMRCHAJs="
+ },
+ "lineStyle": 1,
+ "points": "626:495;625:374",
+ "showVisibility": true,
+ "nameLabel": {
+ "$ref": "AAAAAAGLr31lQCORyTE="
+ },
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr31lQCOSBso="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr31lQCOTB6g="
+ }
+ },
+ {
+ "_type": "UMLGeneralizationView",
+ "_id": "AAAAAAGLr31voCOhMGM=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBtyKM79qY="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31voCOf0aE="
+ },
+ "subViews": [
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31voCOinJw=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31voCOhMGM="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31voCOf0aE="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 693,
+ "top": 435,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31voCOhMGM="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31voCOjthM=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31voCOhMGM="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31voCOf0aE="
+ },
+ "visible": null,
+ "font": "Arial;13;0",
+ "left": 680,
+ "top": 442,
+ "height": 13,
+ "alpha": 1.5707963267948966,
+ "distance": 30,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31voCOhMGM="
+ },
+ "edgePosition": 1
+ },
+ {
+ "_type": "EdgeLabelView",
+ "_id": "AAAAAAGLr31voCOktjY=",
+ "_parent": {
+ "$ref": "AAAAAAGLr31voCOhMGM="
+ },
+ "model": {
+ "$ref": "AAAAAAGLr31voCOf0aE="
+ },
+ "visible": false,
+ "font": "Arial;13;0",
+ "left": 720,
+ "top": 420,
+ "height": 13,
+ "alpha": -1.5707963267948966,
+ "distance": 15,
+ "hostEdge": {
+ "$ref": "AAAAAAGLr31voCOhMGM="
+ },
+ "edgePosition": 1
+ }
+ ],
+ "font": "Arial;13;0",
+ "head": {
+ "$ref": "AAAAAAGLr1gegA6nTj0="
+ },
+ "tail": {
+ "$ref": "AAAAAAGLr2lpeRCxNLk="
+ },
+ "lineStyle": 1,
+ "points": "740:495;674:374",
+ "showVisibility": true,
+ "nameLabel": {
+ "$ref": "AAAAAAGLr31voCOinJw="
+ },
+ "stereotypeLabel": {
+ "$ref": "AAAAAAGLr31voCOjthM="
+ },
+ "propertyLabel": {
+ "$ref": "AAAAAAGLr31voCOktjY="
+ }
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGLr1gefA6lbCc=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Joueur",
+ "ownedElements": [
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr1u4vg8nHgs=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr1u4vw8ozOw=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1u4vg8nHgs="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr1u4vw8phxA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1u4vg8nHgs="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1p2ww7hqKw="
+ },
+ "navigable": "navigable"
+ }
+ }
+ ],
+ "stereotype": "abstract",
+ "attributes": [
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGLr2JcrhAn69Q=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "nom",
+ "visibility": "private",
+ "type": "String"
+ },
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGLr2JgPRAt+JE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "nationalité",
+ "visibility": "private",
+ "type": "String"
+ },
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGLr2JipRAzqCk=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "club",
+ "visibility": "private",
+ "type": "String"
+ },
+ {
+ "_type": "UMLAttribute",
+ "_id": "AAAAAAGLr1jTEw7QzIw=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "numéro",
+ "visibility": "private",
+ "type": "int"
+ }
+ ],
+ "operations": [
+ {
+ "_type": "UMLOperation",
+ "_id": "AAAAAAGLr29DehbW3dM=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "getNom",
+ "parameters": [
+ {
+ "_type": "UMLParameter",
+ "_id": "AAAAAAGLr2+r4BoxpJA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr29DehbW3dM="
+ },
+ "type": "String",
+ "direction": "return"
+ }
+ ]
+ },
+ {
+ "_type": "UMLOperation",
+ "_id": "AAAAAAGLr29HARctWB8=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "getNatio",
+ "parameters": [
+ {
+ "_type": "UMLParameter",
+ "_id": "AAAAAAGLr2/Tfhq7ECA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr29HARctWB8="
+ },
+ "type": "String",
+ "direction": "return"
+ }
+ ]
+ },
+ {
+ "_type": "UMLOperation",
+ "_id": "AAAAAAGLr29U0RgmHfo=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "getClub",
+ "parameters": [
+ {
+ "_type": "UMLParameter",
+ "_id": "AAAAAAGLr2/2RRs80HA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr29U0RgmHfo="
+ },
+ "type": "String",
+ "direction": "return"
+ }
+ ]
+ },
+ {
+ "_type": "UMLOperation",
+ "_id": "AAAAAAGLr1oRCg7XNME=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "name": "getNumero",
+ "parameters": [
+ {
+ "_type": "UMLParameter",
+ "_id": "AAAAAAGLr1o91w7eWYU=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1oRCg7XNME="
+ },
+ "type": "int",
+ "direction": "return"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGLr1p2ww7hqKw=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Ijoueur",
+ "stereotype": "interface",
+ "operations": [
+ {
+ "_type": "UMLOperation",
+ "_id": "AAAAAAGLr1sTew8ZpwE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1p2ww7hqKw="
+ },
+ "name": "getNumero",
+ "parameters": [
+ {
+ "_type": "UMLParameter",
+ "_id": "AAAAAAGLr1tJFg8gh5Y=",
+ "_parent": {
+ "$ref": "AAAAAAGLr1sTew8ZpwE="
+ },
+ "type": "int",
+ "direction": "return"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGLr2k3ghBbubc=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Avant",
+ "ownedElements": [
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr2nd+xDeEgg=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2nd+xDfyL4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2nd+xDeEgg="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2nd+xDgKx4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2nd+xDeEgg="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "navigable": "navigable"
+ }
+ },
+ {
+ "_type": "UMLGeneralization",
+ "_id": "AAAAAAGLr2ogehPDmxA=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ },
+ {
+ "_type": "UMLDependency",
+ "_id": "AAAAAAGLr2p0UhP2VtU=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1p2ww7hqKw="
+ }
+ },
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr2qlAhRCAt4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2qlAhRDXzo=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2qlAhRCAt4="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2qlAhREd78=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2qlAhRCAt4="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "navigable": "navigable"
+ }
+ },
+ {
+ "_type": "UMLGeneralization",
+ "_id": "AAAAAAGLr31bXyN9u5U=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2k3ghBbubc="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGLr2lPMBCFknM=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Charnière",
+ "ownedElements": [
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr2noOBGNQE0=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2noOBGOW8o=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2noOBGNQE0="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2noOBGPBag=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2noOBGNQE0="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "navigable": "navigable"
+ }
+ },
+ {
+ "_type": "UMLGeneralization",
+ "_id": "AAAAAAGLr2oqgRPUDeQ=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ },
+ {
+ "_type": "UMLDependency",
+ "_id": "AAAAAAGLr2qAchQHljk=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1p2ww7hqKw="
+ }
+ },
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr2qwBBTNAMg=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2qwBRTOBS8=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2qwBBTNAMg="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2qwBRTPbJo=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2qwBBTNAMg="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "navigable": "navigable"
+ }
+ },
+ {
+ "_type": "UMLGeneralization",
+ "_id": "AAAAAAGLr31lPyOOfmg=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2lPMBCFknM="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ }
+ ]
+ },
+ {
+ "_type": "UMLClass",
+ "_id": "AAAAAAGLr2lpeRCvAKo=",
+ "_parent": {
+ "$ref": "AAAAAAFF+qBWK6M3Z8Y="
+ },
+ "name": "Arrière",
+ "ownedElements": [
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr2nyehKBEK0=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2nyehKCckE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2nyehKBEK0="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2nyehKDz/E=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2nyehKBEK0="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "navigable": "navigable"
+ }
+ },
+ {
+ "_type": "UMLGeneralization",
+ "_id": "AAAAAAGLr2o8ChPlWKM=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ },
+ {
+ "_type": "UMLDependency",
+ "_id": "AAAAAAGLr2qK1xQYQO4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1p2ww7hqKw="
+ }
+ },
+ {
+ "_type": "UMLAssociation",
+ "_id": "AAAAAAGLr2q88hXTU0I=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "end1": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2q88hXUfaw=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2q88hXTU0I="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ }
+ },
+ "end2": {
+ "_type": "UMLAssociationEnd",
+ "_id": "AAAAAAGLr2q88hXVmv4=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2q88hXTU0I="
+ },
+ "reference": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ },
+ "navigable": "navigable"
+ }
+ },
+ {
+ "_type": "UMLGeneralization",
+ "_id": "AAAAAAGLr31voCOf0aE=",
+ "_parent": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "source": {
+ "$ref": "AAAAAAGLr2lpeRCvAKo="
+ },
+ "target": {
+ "$ref": "AAAAAAGLr1gefA6lbCc="
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file