From dce46b4d5e157deb9b8a407dcee207776ed5e18f Mon Sep 17 00:00:00 2001
From: JulietteSCHILLING <juliette.schilling2@etu.univ-lorraine.fr>
Date: Wed, 23 Nov 2022 19:21:53 +0100
Subject: [PATCH] javadoc

---
 .../myhabitat/CreationOuvertureActivity.java  |  31 +++++
 .../com/example/myhabitat/MainActivity.java   |  71 ++++-------
 .../myhabitat/ModeConceptionActivity.java     |  28 +++++
 .../myhabitat/ModeImmersionActivity.java      |  42 +++++++
 app/src/main/java/habitat/Habitat.java        |  93 +++++++++++++-
 app/src/main/java/habitat/Mur.java            |  81 ++++++++++++-
 app/src/main/java/habitat/Orientation.java    |   3 +
 app/src/main/java/habitat/Ouverture.java      | 114 ++++++++++++++++--
 app/src/main/java/habitat/Piece.java          |  76 ++++++++++++
 app/src/main/java/outils/FabriqueId.java      |  21 ++++
 .../java/outils/GestionnaireEditHabitat.java  |  34 +++++-
 11 files changed, 527 insertions(+), 67 deletions(-)

diff --git a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
index 39c37bc..d0cd584 100644
--- a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
+++ b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
@@ -30,6 +30,13 @@ public class CreationOuvertureActivity extends AppCompatActivity{
     private Rect rectArrivee;
     private Button buttonConfirmer;
 
+    /**
+     * onCreate de CreationOuvertureActivity
+     * @param savedInstanceState If the activity is being re-initialized after
+     *     previously being shut down then this Bundle contains the data it most
+     *     recently supplied in {@link #onSaveInstanceState}.  <b><i>Note: Otherwise it is null.</i></b>
+     *
+     */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -161,6 +168,9 @@ public class CreationOuvertureActivity extends AppCompatActivity{
         });
     }
 
+    /**
+     * Fonction qui initialise la surface pour la selection
+     */
     private void setSurfaceForSelect() {
         SurfaceView surfaceViewDepart = findViewById(R.id.surfaceViewDepart);
         surfaceViewDepart.setZOrderOnTop(true);
@@ -229,6 +239,9 @@ public class CreationOuvertureActivity extends AppCompatActivity{
     }
 
 
+    /**
+     * Fonction qui affiche la piece de depart
+     */
     public void affichePieceDepart(){
         if(pieceDepart != null && orientationPieceDepart != null){
             Mur mur = pieceDepart.getMurOrientation(orientationPieceDepart);
@@ -255,6 +268,9 @@ public class CreationOuvertureActivity extends AppCompatActivity{
     }
 
 
+    /**
+     * Fonction qui affiche la piece d'arrivee
+     */
     public void affichePieceArrivee(){
         if(pieceArrivee != null && orientationPieceArrivee != null){
             Mur mur = pieceArrivee.getMurOrientation(orientationPieceArrivee);
@@ -274,16 +290,28 @@ public class CreationOuvertureActivity extends AppCompatActivity{
         }
     }
 
+    /**
+     * Selection de la piece de depart comme piece courante
+     * @param view
+     */
     public void setSDepart(View view) {
         pieceEnCours = pieceDepart;
         affichePieceDepart();
     }
 
+    /**
+     * Selection de la piece d'arrivee comme piece courante
+     * @param view
+     */
     public void setSArrivee(View view) {
         pieceEnCours = pieceArrivee;
         affichePieceArrivee();
     }
 
+    /**
+     * Confirme l'ajout de l'ouverture + retour a l'activite precedente
+     * @param view
+     */
     public void confirmer(View view) {
         Ouverture ouverture = new Ouverture(pieceDepart.getMurOrientation(orientationPieceDepart), pieceArrivee.getMurOrientation(orientationPieceArrivee), rectDepart, rectArrivee);
         habitat.addOuverture(ouverture);
@@ -295,6 +323,9 @@ public class CreationOuvertureActivity extends AppCompatActivity{
 
     }
 
+    /**
+     * Enregistrement de habitat sous format JSON
+     */
     public void enregistrement(){
         JSONObject enregistrement = new JSONObject();
         enregistrement = habitat.toJSON();
diff --git a/app/src/main/java/com/example/myhabitat/MainActivity.java b/app/src/main/java/com/example/myhabitat/MainActivity.java
index 276b052..829de11 100644
--- a/app/src/main/java/com/example/myhabitat/MainActivity.java
+++ b/app/src/main/java/com/example/myhabitat/MainActivity.java
@@ -5,14 +5,9 @@ import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
-import androidx.activity.result.ActivityResult;
-import androidx.activity.result.ActivityResultCallback;
-import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.appcompat.app.AppCompatActivity;
 import android.os.Bundle;
 import habitat.Habitat;
-import habitat.Mur;
 import habitat.Ouverture;
 import habitat.Piece;
 import org.json.JSONArray;
@@ -25,40 +20,19 @@ public class MainActivity extends AppCompatActivity {
 
     private Habitat habitat;
     private TextView textView;
-    private ActivityResultLauncher<Intent> launcher;
 
+    /**
+     * onCreate de MainActivity
+     * @param savedInstanceState If the activity is being re-initialized after
+     *     previously being shut down then this Bundle contains the data it most
+     *     recently supplied in {@link #onSaveInstanceState}.  <b><i>Note: Otherwise it is null.</i></b>
+     *
+     */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
 
-        /*
-        launcher = registerForActivityResult(
-                // Contrat qui détermine le type de l'interaction
-                new ActivityResultContracts.StartActivityForResult(),
-                // Callback appelé lorsque le résultat sera disponible
-                new ActivityResultCallback<ActivityResult>() {
-                    @Override
-                    public void onActivityResult(ActivityResult result) {
-                        //On récupère les données de habitat
-                        Intent intent = result.getData();
-                        if(intent != null) {
-                            Bundle extras = intent.getExtras();
-                            habitat = (Habitat) extras.get("Habitat");
-                            habitat.setCorrectly();
-                            ouvrirJSON();
-                            textView.setText(habitat.toJSON().toString());
-
-                        }
-
-                    }
-                }
-        );
-
-         */
-
-
-
         textView = findViewById(R.id.textTest);
 
         ouvrirJSON();
@@ -74,30 +48,29 @@ public class MainActivity extends AppCompatActivity {
 
     }
 
+    /**
+     * Permet de lancer l'activite de conception
+     * @param view
+     */
     public void conception(View view) {
         Intent intent = new Intent(this, ModeConceptionActivity.class);
         intent.putExtra("Habitat", habitat);
         startActivity(intent);
-        /*
-        if (intent.resolveActivity(getPackageManager()) != null){
-            launcher.launch(intent);
-        }
-
-         */
     }
 
+    /**
+     * Permet de lancer l'activite d'immersion
+     * @param view
+     */
     public void immersion(View view) {
         Intent intent = new Intent(this, ModeImmersionActivity.class);
         intent.putExtra("Habitat", habitat);
         startActivity(intent);
-        /*
-        if (intent.resolveActivity(getPackageManager()) != null){
-            launcher.launch(intent);
-        }
-
-         */
     }
 
+    /**
+     * Permet de recuperer l'habitat enregistre
+     */
     public void ouvrirJSON(){
         habitat = new Habitat();
         FileInputStream fis = null;
@@ -136,6 +109,11 @@ public class MainActivity extends AppCompatActivity {
         textView.setText(habitat.toString());
     }
 
+    /**
+     * Fonction permettant de recuperer le texte dans un texte
+     * @param fis
+     * @return
+     */
     public String getFileContent(FileInputStream fis) {
         StringBuilder sb = new StringBuilder();
         Reader r = null;
@@ -154,6 +132,9 @@ public class MainActivity extends AppCompatActivity {
         return sb.toString();
     }
 
+    /**
+     * Fonction de 1er demarrage de l'activite
+     */
     @Override
     protected void onPostResume() {
         ouvrirJSON();
diff --git a/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java b/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java
index 31ba040..ddedd42 100644
--- a/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java
+++ b/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java
@@ -30,6 +30,13 @@ public class ModeConceptionActivity extends AppCompatActivity {
     private ImageButton photoEnCours;  //Detecte à quel mur associer la photo en cours
 
 
+    /**
+     * onCreate de ModeConceptionActivity
+     * @param savedInstanceState If the activity is being re-initialized after
+     *     previously being shut down then this Bundle contains the data it most
+     *     recently supplied in {@link #onSaveInstanceState}.  <b><i>Note: Otherwise it is null.</i></b>
+     *
+     */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -89,6 +96,9 @@ public class ModeConceptionActivity extends AppCompatActivity {
         );
     }
 
+    /**
+     * Permet d'afficher l'ensemble des pieces de l'habitat
+     */
     private void affichePieces() {
         gestionnaire.reset();
         LinearLayout ll = findViewById(R.id.linearLayout);
@@ -175,6 +185,10 @@ public class ModeConceptionActivity extends AppCompatActivity {
         }
     }
 
+    /**
+     * Permet d'ajouter une piece a l'habitat et de l'afficher
+     * @param view
+     */
     public void addPiece(View view) {
         Piece piece1 = new Piece("p");
         habitat.addPiece(piece1);
@@ -182,12 +196,18 @@ public class ModeConceptionActivity extends AppCompatActivity {
         majHabitat();
     }
 
+    /**
+     * Mise à jour de l'habitat
+     */
     public void majHabitat(){
         Intent intent = new Intent().putExtra("Habitat", habitat);
         setResult(RESULT_OK, intent);
         enregistrement();
     }
 
+    /**
+     * Enregistrement de l'habitat sous format JSON
+     */
     public void enregistrement(){
         JSONObject enregistrement = new JSONObject();
         enregistrement = habitat.toJSON();
@@ -215,10 +235,18 @@ public class ModeConceptionActivity extends AppCompatActivity {
         }
     }
 
+    /**
+     * Permet un retour à l'activite precedente
+     * @param view
+     */
     public void confirmer(View view) {
         finish();
     }
 
+    /**
+     * Ajoute une Ouverture à Habitat
+     * @param view
+     */
     public void addOuverture(View view) {
         Intent intent = new Intent(this, CreationOuvertureActivity.class);
         intent.putExtra("Habitat", habitat);
diff --git a/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java b/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java
index 34af0c1..e0ccdc0 100644
--- a/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java
+++ b/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java
@@ -38,6 +38,13 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
     private ArrayList<Rect> rectangles;
     private HashMap<Rect, Piece> pieceArriveeRect;
 
+    /**
+     * onCreate de ModeImmersionActivity
+     * @param savedInstanceState If the activity is being re-initialized after
+     *     previously being shut down then this Bundle contains the data it most
+     *     recently supplied in {@link #onSaveInstanceState}.  <b><i>Note: Otherwise it is null.</i></b>
+     *
+     */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -100,6 +107,12 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         });
     }
 
+    /**
+     * Cree le menu de l'activite
+     * @param menu The options menu in which you place your items.
+     *
+     * @return
+     */
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.menu_immersion, menu);
 
@@ -121,6 +134,10 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         return true;
     }
 
+    /**
+     * selectionne la piece en cours
+     * @param piece
+     */
     public void affichePiece(Piece piece){
         pieceEnCours = piece;
         imageViewMur = findViewById(R.id.imageViewMur);
@@ -129,6 +146,9 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         afficheMur();
     }
 
+    /**
+     * Affiche le mur en cours
+     */
     public void afficheMur(){
         textViewPiece = findViewById(R.id.textViewPiece);
         textViewPiece.setText("piece="+pieceEnCours.getNom());
@@ -149,6 +169,10 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         afficheOuvertures();
     }
 
+
+    /**
+     * Affiche l'ensemble des ouvertures du mur courant
+     */
     public void afficheOuvertures(){
         ArrayList<Ouverture> ouvertures = habitat.getOuvertureDeMur(murEnCours);
         Log.i("testOuvertures", ouvertures+"");
@@ -201,6 +225,10 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         }
     }
 
+    /**
+     * Gere la sensibilite du Sensor = affichage de la mur + màj mur en cours
+     * @param event the {@link android.hardware.SensorEvent SensorEvent}.
+     */
     @Override
     public void onSensorChanged(SensorEvent event) {
 
@@ -247,17 +275,31 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
 
     }
 
+    /**
+     * Fonction du sensor
+     * @param sensor
+     * @param accuracy The new accuracy of this sensor, one of
+     *         {@code SensorManager.SENSOR_STATUS_*}
+     */
     @Override
     public void onAccuracyChanged(Sensor sensor, int accuracy) {
 
     }
 
+    /**
+     * Fonction appelee lors du changement d'activite
+     * Permet de desactiver le Sensor
+     */
     @Override
     protected void onPause() {
         sensorManager.unregisterListener(this);
         super.onPause();
     }
 
+    /**
+     * Fonction appelee lors de l'arrive dans l'activite
+     * Permet d'activer le Sensor
+     */
     @Override
     protected void onResume() {
         sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME);
diff --git a/app/src/main/java/habitat/Habitat.java b/app/src/main/java/habitat/Habitat.java
index 31574e6..b865055 100644
--- a/app/src/main/java/habitat/Habitat.java
+++ b/app/src/main/java/habitat/Habitat.java
@@ -14,14 +14,28 @@ import java.util.Objects;
 
 public class Habitat implements Parcelable {
 
+    /**
+     * Attribut qui stocke l'ensemble des pieces de l'habitat
+     */
     private ArrayList<Piece> pieces;
+    /**
+     * Attribut qui stocke l'ensemble des ouvertures de l'habitat
+     */
     private ArrayList<Ouverture> ouvertures;
 
+
+    /**
+     * Constructeur d'Habitat
+     */
     public Habitat() {
         this.pieces = new ArrayList<Piece>();
         this.ouvertures = new ArrayList<Ouverture>();
     }
 
+    /**
+     * Constructeur d'Habitat quand on récupère via intent
+     * @param in
+     */
     protected Habitat(Parcel in) {
         pieces = new ArrayList<Piece>();
         ouvertures = new ArrayList<Ouverture>();
@@ -29,10 +43,9 @@ public class Habitat implements Parcelable {
         in.readList(ouvertures, Ouverture.class.getClassLoader());
     }
 
-    public Habitat(Piece... pieces) {
-        this.pieces = new ArrayList<>(Arrays.asList(pieces));
-    }
-
+    /**
+     * Creator utile implementant Parcelable
+     */
     public static final Creator<Habitat> CREATOR = new Creator<Habitat>() {
         @Override
         public Habitat createFromParcel(Parcel in) {
@@ -46,22 +59,42 @@ public class Habitat implements Parcelable {
     };
 
 
+    /**
+     * getter des pieces
+     * @return les pieces
+     */
     public ArrayList<Piece> getPieces() {
         return pieces;
     }
 
+    /**
+     * setter des pieces
+     * @param pieces
+     */
     public void setPieces(ArrayList<Piece> pieces) {
         this.pieces = pieces;
     }
 
+    /**
+     * getter des ouvertures
+     * @return les ouvertures
+     */
     public ArrayList<Ouverture> getOuvertures() {
         return ouvertures;
     }
 
+    /**
+     * setter des ouvertures
+     * @param ouvertures
+     */
     public void setOuvertures(ArrayList<Ouverture> ouvertures) {
         this.ouvertures = ouvertures;
     }
 
+    /**
+     * toString d'Habitat
+     * @return le toString d'Habitat
+     */
     @Override
     public String toString() {
         return "Habitat{" +
@@ -70,28 +103,49 @@ public class Habitat implements Parcelable {
                 '}';
     }
 
+    /**
+     * fonction implementant Parcelable
+     * @return 0
+     */
     @Override
     public int describeContents() {
         return 0;
     }
 
+    /**
+     * fonction pour ecrire pour Parcelable
+     * @param dest The Parcel in which the object should be written.
+     * @param flags Additional flags about how the object should be written.
+     * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
+     */
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeList(pieces);
         dest.writeList(ouvertures);
     }
 
-    //Fonction utile quand on recupere via Intent pour re-set correctement
+    /**
+     * Set correctement les elements de habitat
+     * Fonction utile quand on recupere via Intent pour re-set correctement
+     */
     public void setCorrectly(){
         for(Piece piece : pieces){
             piece.setCorrectly();
         }
     }
 
+    /**
+     * Fonction qui ajoute une piece à l'habitat
+     * @param piece
+     */
     public void addPiece(Piece piece) {
         pieces.add(piece);
     }
 
+    /**
+     * Fonction qui ajoute une ouverture à l'habitat
+     * @param ouverture
+     */
     public void addOuverture(Ouverture ouverture){
         ouvertures.add(ouverture);
         for(Piece piece : pieces){
@@ -106,10 +160,18 @@ public class Habitat implements Parcelable {
         }
     }
 
+    /**
+     * Fonction qui enlève une ouverture à l'habitat
+     * @param ouverture
+     */
     public void removeOuverture(Ouverture ouverture){
         ouvertures.remove(ouverture);
     }
 
+    /**
+     * Fonction qui enlève une pièce à l'habitat
+     * @param piece
+     */
     public void removePiece(Piece piece){
         pieces.remove(piece);
         //On vérifie qu'il n'existe pas d'ouvertures
@@ -123,6 +185,10 @@ public class Habitat implements Parcelable {
         }
     }
 
+    /**
+     * Fonction qui retourne le JSON de habitat
+     * @return le JSON de habitat
+     */
     public JSONObject toJSON(){
         JSONObject jsonObject = new JSONObject();
         JSONArray jsonArrayPiece = new JSONArray();
@@ -142,22 +208,39 @@ public class Habitat implements Parcelable {
         return jsonObject;
     }
 
+    /**
+     * Fonction qui permet de reinitialiser habitat
+     */
     public void reset(){
         pieces.clear();
         ouvertures.clear();
     }
 
+    /**
+     * Fonction equals
+     * @param o
+     * @return true si egaux, faux sinon
+     */
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
         return false;
     }
 
+    /**
+     * Retourne le hashCode de habitat
+     * @return le hashCode de habitat
+     */
     @Override
     public int hashCode() {
         return Objects.hash(pieces, ouvertures);
     }
 
+    /**
+     * Fonction qui permet de retrouver toutes les ouvertures du mur
+     * @param mur
+     * @return les ouvertures du mur
+     */
     public ArrayList<Ouverture> getOuvertureDeMur(Mur mur){
         ArrayList<Ouverture> ouvertureArrayList = new ArrayList<Ouverture>();
         for(Ouverture ouverture : ouvertures){
diff --git a/app/src/main/java/habitat/Mur.java b/app/src/main/java/habitat/Mur.java
index 7936465..26ddca9 100644
--- a/app/src/main/java/habitat/Mur.java
+++ b/app/src/main/java/habitat/Mur.java
@@ -11,16 +11,35 @@ import outils.FabriqueId;
 import java.util.Objects;
 
 public class Mur implements Parcelable {
+    /**
+     * Attribut qui stocke la piece du mur
+     */
     private Piece piece;
+    /**
+     * Attribut qui stocke l'orientation du mur
+     */
     private Orientation orientation;
-    private int id; //Utile pour stocker la photo associée au mur
-
+    /**
+     * Attribut qui stocke l'id du mur
+     * Utile pour la sauvegarde de la photo associee au mur
+     */
+    private int id;
+
+    /**
+     * Constructeur de Mur avec la piece et l'orientation associes
+     * @param piece
+     * @param orientation
+     */
     public Mur(Piece piece, Orientation orientation) {
         this.piece = piece;
         this.orientation = orientation;
         id = FabriqueId.getInstance().getId();
     }
 
+    /**
+     * Constructeur de Mur à partir du JSON
+     * @param jsonObjectMur
+     */
     public Mur(JSONObject jsonObjectMur){
         try {
             id = (int) jsonObjectMur.get("Id");
@@ -47,12 +66,19 @@ public class Mur implements Parcelable {
         }
     }
 
+    /**
+     * Constructeur de Mur pour Parcelable
+     * @param in
+     */
     protected Mur(Parcel in) {
         orientation = (Orientation) in.readSerializable();
         id = in.readInt();
         piece = new Piece("");
     }
 
+    /**
+     * Creator de Mur pour Parcelable
+     */
     public static final Creator<Mur> CREATOR = new Creator<Mur>() {
         @Override
         public Mur createFromParcel(Parcel in) {
@@ -65,30 +91,58 @@ public class Mur implements Parcelable {
         }
     };
 
+    /**
+     * getter de la piece associee au mur
+     * @return la piece associee au mur
+     */
     public Piece getPiece() {
         return piece;
     }
 
+    /**
+     * setter de la piece associee au mur
+     * @param piece
+     */
     public void setPiece(Piece piece) {
         this.piece = piece;
     }
 
+    /**
+     * getter de l'orientation du mur
+     * @return l'orientation du mur
+     */
     public Orientation getOrientation() {
         return orientation;
     }
 
+    /**
+     * setter de l'orientation du mur
+     * @param orientation
+     */
     public void setOrientation(Orientation orientation) {
         this.orientation = orientation;
     }
 
+    /**
+     * getter de l'id du mur
+     * @return l'id du mur
+     */
     public int getId() {
         return id;
     }
 
+    /**
+     * setter de l'id du mur
+     * @param id
+     */
     public void setId(int id) {
         this.id = id;
     }
 
+    /**
+     * Fonction toString du mur
+     * @return le toString du mur
+     */
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -100,17 +154,31 @@ public class Mur implements Parcelable {
         return sb.toString();
     }
 
+    /**
+     * Fonction utile pour Parcelable
+     * @return 0
+     */
     @Override
     public int describeContents() {
         return 0;
     }
 
+    /**
+     * Fonction permettant d'ecrire le mur pour Parcelable
+     * @param dest The Parcel in which the object should be written.
+     * @param flags Additional flags about how the object should be written.
+     * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
+     */
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeSerializable(orientation);
         dest.writeInt(id);
     }
 
+    /**
+     * Fonction qui genere le JSON du mur
+     * @return le JSON du mur
+     */
     public JSONObject toJSON() {
         JSONObject jsonObject = new JSONObject();
         try {
@@ -123,6 +191,11 @@ public class Mur implements Parcelable {
         return jsonObject;
     }
 
+    /**
+     * Fonction equals du mur
+     * @param o
+     * @return true si egaux, false sinon
+     */
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -130,6 +203,10 @@ public class Mur implements Parcelable {
         return id == ((Mur) o).getId() && Objects.equals(piece, ((Mur) o).getPiece()) && orientation == ((Mur) o).getOrientation();
     }
 
+    /**
+     * Retourne le hashCode de mur
+     * @return le hashCode de mur
+     */
     @Override
     public int hashCode() {
         return Objects.hash(piece, orientation, id);
diff --git a/app/src/main/java/habitat/Orientation.java b/app/src/main/java/habitat/Orientation.java
index cf9b3d5..04ee63c 100644
--- a/app/src/main/java/habitat/Orientation.java
+++ b/app/src/main/java/habitat/Orientation.java
@@ -6,6 +6,9 @@ public enum Orientation {
     SUD,
     OUEST;
 
+    /**
+     * Constructeur vide d'Orientation
+     */
     Orientation() {
     }
 }
diff --git a/app/src/main/java/habitat/Ouverture.java b/app/src/main/java/habitat/Ouverture.java
index f48c951..d762416 100644
--- a/app/src/main/java/habitat/Ouverture.java
+++ b/app/src/main/java/habitat/Ouverture.java
@@ -11,11 +11,27 @@ import java.util.Objects;
 
 public class Ouverture implements Parcelable {
 
+    /**
+     * Attribut stockant le mur de depart de l'ouverture
+     */
     private Mur murDepart;
+    /**
+     * Attribut stockant le mur d'arrivee de l'ouverture
+     */
     private Mur murArrivee;
+    /**
+     * Attribut stockant le rectangle de depart de l'ouverture
+     */
     private Rect rectDepart;
+    /**
+     * Attribut stockant le rectangle d'arrivee de l'ouverture
+     */
     private Rect rectArrivee;
 
+    /**
+     * Constructeur de Ouverture a partir du JSON
+     * @param jsonObject
+     */
     public Ouverture(JSONObject jsonObject) {
         try {
             murDepart = new Mur((JSONObject) jsonObject.get("MurDepart"));
@@ -29,6 +45,13 @@ public class Ouverture implements Parcelable {
         }
     }
 
+    /**
+     * Constructeur d'Ouverture avec les 2 murs et les 2 rectangles associes
+     * @param murDepart
+     * @param murArrivee
+     * @param rectDepart
+     * @param rectArrivee
+     */
     public Ouverture(Mur murDepart, Mur murArrivee, Rect rectDepart, Rect rectArrivee){
         this.murDepart = murDepart;
         this.murArrivee = murArrivee;
@@ -36,6 +59,10 @@ public class Ouverture implements Parcelable {
         this.rectArrivee = rectArrivee;
     }
 
+    /**
+     * Constructeur d'Ouverture pour Parcelable
+     * @param in
+     */
     protected Ouverture(Parcel in){
         murDepart = in.readParcelable(Mur.class.getClassLoader());
         murArrivee = in.readParcelable(Mur.class.getClassLoader());
@@ -43,6 +70,9 @@ public class Ouverture implements Parcelable {
         rectArrivee = in.readParcelable(Rect.class.getClassLoader());
     }
 
+    /**
+     * Creator d'Ouverture pour Parcelable
+     */
     public static final Creator<Ouverture> CREATOR = new Creator<Ouverture>() {
         @Override
         public Ouverture createFromParcel(Parcel in) {
@@ -55,6 +85,10 @@ public class Ouverture implements Parcelable {
         }
     };
 
+    /**
+     * Fonction qui genere le JSON d'Ouverture
+     * @return le JSON d'Ouverture
+     */
     public JSONObject toJSON() {
         JSONObject jsonObject = new JSONObject();
         JSONArray jsonArrayD = new JSONArray();
@@ -78,15 +112,24 @@ public class Ouverture implements Parcelable {
             throw new RuntimeException(e);
         }
 
-
         return jsonObject;
     }
 
+    /**
+     * Fonction utile pour Parcelable
+     * @return 0
+     */
     @Override
     public int describeContents() {
         return 0;
     }
 
+    /**
+     * Fonction qui ecrit Ouverture pour Parcelable
+     * @param dest The Parcel in which the object should be written.
+     * @param flags Additional flags about how the object should be written.
+     * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
+     */
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeParcelable(murDepart, flags);
@@ -95,50 +138,95 @@ public class Ouverture implements Parcelable {
         dest.writeParcelable(rectArrivee, flags);
     }
 
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        return Objects.equals(murDepart, ((Ouverture) o).getMurDepart()) && Objects.equals(murArrivee, ((Ouverture) o).getMurArrivee()) && Objects.equals(rectDepart, ((Ouverture) o).getRectDepart()) && Objects.equals(rectArrivee, ((Ouverture) o).getRectArrivee());
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(murDepart, murArrivee, rectDepart, rectArrivee);
-    }
-
+    /**
+     * getter du mur de depart
+     * @return le mur de depart de l'ouverture
+     */
     public Mur getMurDepart() {
         return murDepart;
     }
 
+    /**
+     * setter du mur de depart
+     * @param murDepart
+     */
     public void setMurDepart(Mur murDepart) {
         this.murDepart = murDepart;
     }
 
+    /**
+     * getter du mur d'arrivee
+     * @return le mur d'arrivee de l'ouverture
+     */
     public Mur getMurArrivee() {
         return murArrivee;
     }
 
+    /**
+     * setter du mur d'arrivee
+     * @param murArrivee
+     */
     public void setMurArrivee(Mur murArrivee) {
         this.murArrivee = murArrivee;
     }
 
+    /**
+     * getter du rectangle de depart
+     * @return le rectangle de depart de l'ouverture
+     */
     public Rect getRectDepart() {
         return rectDepart;
     }
 
+    /**
+     * setter du rectangle de depart
+     * @param rectDepart
+     */
     public void setRectDepart(Rect rectDepart) {
         this.rectDepart = rectDepart;
     }
 
+    /**
+     * getter du rectangle d'arrivee
+     * @return le rectangle d'arrivee
+     */
     public Rect getRectArrivee() {
         return rectArrivee;
     }
 
+    /**
+     * setter du rectangle d'arrivee
+     * @param rectArrivee
+     */
     public void setRectArrivee(Rect rectArrivee) {
         this.rectArrivee = rectArrivee;
     }
 
+    /**
+     * Fonction equals de Ouverture
+     * @param o
+     * @return true si egaux, false sinon
+     */
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        return Objects.equals(murDepart, ((Ouverture) o).getMurDepart()) && Objects.equals(murArrivee, ((Ouverture) o).getMurArrivee()) && Objects.equals(rectDepart, ((Ouverture) o).getRectDepart()) && Objects.equals(rectArrivee, ((Ouverture) o).getRectArrivee());
+    }
+
+    /**
+     * Retourne le hashCode de Ouverture
+     * @return le hashCode de Ouverure
+     */
+    @Override
+    public int hashCode() {
+        return Objects.hash(murDepart, murArrivee, rectDepart, rectArrivee);
+    }
+
+    /**
+     * Fonction toString d'ouverture
+     * @return le toString d'Ouverture
+     */
     @Override
     public String toString() {
         return "Ouverture{" +
diff --git a/app/src/main/java/habitat/Piece.java b/app/src/main/java/habitat/Piece.java
index c9a5c8d..80cc039 100644
--- a/app/src/main/java/habitat/Piece.java
+++ b/app/src/main/java/habitat/Piece.java
@@ -11,9 +11,19 @@ import java.util.ArrayList;
 import java.util.Objects;
 
 public class Piece implements Parcelable {
+    /**
+     * Attribut qui stocke le nom de la Piece
+     */
     private String nom;
+    /**
+     * Attribut qui stocke les 4 murs de la Piece
+     */
     private ArrayList<Mur> murs;
 
+    /**
+     * Constructeur de Piece avec uniquement le nom
+     * @param nom
+     */
     public Piece(String nom) {
         this.nom = nom;
         murs = new ArrayList<>(4);
@@ -26,6 +36,10 @@ public class Piece implements Parcelable {
         setMurs(murS, murO, murN, murE);
     }
 
+    /**
+     * Constructeur de Piece a partir du JSON
+     * @param jsonObjectPiece
+     */
     public Piece(JSONObject jsonObjectPiece){
         murs = new ArrayList<Mur>();
         try {
@@ -42,6 +56,10 @@ public class Piece implements Parcelable {
         }
     }
 
+    /**
+     * Constructeur de la Piece pour Parcelable
+     * @param in
+     */
     protected Piece(Parcel in) {
         //habitat = new Habitat();
         nom = new String();
@@ -50,6 +68,9 @@ public class Piece implements Parcelable {
         in.readList(murs, Mur.class.getClassLoader());
     }
 
+    /**
+     * Creator de Piece pour Parcelable
+     */
     public static final Creator<Piece> CREATOR = new Creator<Piece>() {
         @Override
         public Piece createFromParcel(Parcel in) {
@@ -62,24 +83,45 @@ public class Piece implements Parcelable {
         }
     };
 
+    /**
+     * getter du nom de la Piece
+     * @return le nom de la Piece
+     */
     public String getNom() {
         return nom;
     }
 
+    /**
+     * setter du nom de la Piece
+     * @param nom
+     */
     public void setNom(String nom) {
         this.nom = nom;
     }
 
+    /**
+     * getter des murs de la Piece
+     * @return
+     */
     public ArrayList<Mur> getMurs() {
         return murs;
     }
 
+    /**
+     * Setter des murs de la Piece
+     * @param murs
+     */
     public void setMurs(Mur... murs) {
         for(int i=0; i< murs.length; i++){
             this.murs.add(murs[i]);
         }
     }
 
+    /**
+     * getter d'un mur de la Piece en fonction de l'orientation
+     * @param orientation
+     * @return
+     */
     public Mur getMurOrientation(Orientation orientation){
         Mur result = murs.get(0);
         for(Mur mur : murs){
@@ -90,6 +132,10 @@ public class Piece implements Parcelable {
         return result;
     }
 
+    /**
+     * Fonction toString de Piece
+     * @return le toString de la Piece
+     */
     @Override
     public String toString() {
         return "Piece{nom=" + nom +
@@ -97,28 +143,49 @@ public class Piece implements Parcelable {
                 '}';
     }
 
+    /**
+     * Fonction utile pour Parcelable
+     * @return 0
+     */
     @Override
     public int describeContents() {
         return 0;
     }
 
+    /**
+     * Fonction qui ecrit la Piece pour Parcelable
+     * @param dest The Parcel in which the object should be written.
+     * @param flags Additional flags about how the object should be written.
+     * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
+     */
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeString(nom);
         dest.writeList(murs);
     }
 
+    /**
+     * Fonction qui set la piece aux murs
+     */
     public void setCorrectly() {
         for(Mur mur : murs){
             mur.setPiece(this);
         }
     }
 
+    /**
+     * Fonction qui ajoute un Mur e à la Piece
+     * @param e
+     */
     public void addMur(Mur e){
         murs.add(e);
         e.setPiece(this);
     }
 
+    /**
+     * Fonctio qui genere le JSON de la Piece
+     * @return
+     */
     public JSONObject toJSON() {
         JSONObject jsonObject = new JSONObject();
         JSONArray jsonArray = new JSONArray();
@@ -134,6 +201,11 @@ public class Piece implements Parcelable {
         return jsonObject;
     }
 
+    /**
+     * Fonction equals de Piece
+     * @param o
+     * @return true si egaux, false sinon
+     */
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -141,6 +213,10 @@ public class Piece implements Parcelable {
         return Objects.equals(nom, ((Piece) o).getNom()) && Objects.equals(murs, ((Piece) o).getMurs());
     }
 
+    /**
+     * Fonction qui retourne le hashCode de Piece
+     * @return le hashCode de Piece
+     */
     @Override
     public int hashCode() {
         return Objects.hash(nom, murs);
diff --git a/app/src/main/java/outils/FabriqueId.java b/app/src/main/java/outils/FabriqueId.java
index 79d1f09..7a51668 100644
--- a/app/src/main/java/outils/FabriqueId.java
+++ b/app/src/main/java/outils/FabriqueId.java
@@ -1,22 +1,43 @@
 package outils;
 
 public class FabriqueId {
+    /**
+     * Attribut qui stocke l'id
+     */
     private int id;
+    /**
+     * Attribut instance de la FabriqueId
+     */
     private static FabriqueId instance = new FabriqueId();
 
+    /**
+     * getter de l'instance de la FabriqueId
+     * @return l'instance de la FabriqueId
+     */
+
     public static FabriqueId getInstance(){
         return instance;
     }
 
+    /**
+     * Constructeur prive de FabriqueId
+     */
     private FabriqueId() {
         id = 0;
     }
 
+    /**
+     * retourne un id unique
+     * @return un id unique
+     */
     public int getId() {
         id++;
         return id;
     }
 
+    /**
+     * Fonction qui met à 0 la FabriqueIdentifiant
+     */
     public void reset(){
         id = 0;
     }
diff --git a/app/src/main/java/outils/GestionnaireEditHabitat.java b/app/src/main/java/outils/GestionnaireEditHabitat.java
index 7ded93d..729929b 100644
--- a/app/src/main/java/outils/GestionnaireEditHabitat.java
+++ b/app/src/main/java/outils/GestionnaireEditHabitat.java
@@ -9,32 +9,62 @@ import java.util.HashMap;
 
 public class GestionnaireEditHabitat {
 
+    /**
+     * Attribut qui stocke une Piece en fonction de l'EditPiece associe
+     */
     private HashMap<EditText, Piece> hmapEditText;
+    /**
+     * Attribut qui stocke le Mur en fonction de l'ImageButton associe
+     */
     private HashMap<ImageButton, Mur> hmapEditMur;
 
+    /**
+     * Constructeur de GestionnaireEditHabitat
+     */
     public GestionnaireEditHabitat() {
         hmapEditText = new HashMap<EditText, Piece>();
         hmapEditMur = new HashMap<ImageButton, Mur>();
     }
 
+    /**
+     * Ajoute l'element <editText, piece> au Gestionnaire
+     * @param editText
+     * @param piece
+     */
     public void addEditText(EditText editText, Piece piece){
         hmapEditText.put(editText, piece);
     }
 
+    /**
+     * getter de Piece en fonction d'editText
+     * @param editText
+     * @return
+     */
     public Piece getPiece(EditText editText){
         return hmapEditText.get(editText);
     }
 
+    /**
+     * Ajoute l'element <imageButton, mur> au Gestionnaire
+     * @param imageButton
+     * @param mur
+     */
     public void addEditMur(ImageButton imageButton, Mur mur){
         hmapEditMur.put(imageButton, mur);
     }
 
+    /**
+     * getter de mur en fonction de imageButton
+     * @param imageButton
+     * @return
+     */
     public Mur getMur(ImageButton imageButton){
         return hmapEditMur.get(imageButton);
     }
 
-
-
+    /**
+     * Fonction qui reset le Gestionnaire
+     */
     public void reset(){
         hmapEditText.clear();
         hmapEditMur.clear();
-- 
GitLab