public void afficher(); // Interface définissant la méthode afficher()
} import java.util.ArrayList; public class Repertoire implements AbstractFile { private String name; private ArrayList<AbstractFile> fichiers = new ArrayList<AbstractFile>(); // Liste pour stocker les fichiers du répertoire private Retrait retrait; public Repertoire(String name, Retrait retrait) { this.name = name; this.retrait = retrait; } public void ajouter(AbstractFile f) { fichiers.add(f); // Ajoute un fichier à la liste } public void afficher() { System.out.println(retrait.getRetrait() + name); // Affiche le nom du répertoire avec le retrait retrait.augmenterRetrait(); // Augmente le retrait pour les fichiers suivants for (AbstractFile fichier : fichiers) { fichier.afficher(); // Appelle la méthode afficher() pour chaque fichier dans la liste } retrait.diminuerRetrait(); // Diminue le retrait après l'affichage des fichiers } }
class Fichier implements AbstractFile {
private String name; private Retrait retrait; public Fichier(String name, Retrait retrait) { this.name = name; this.retrait = retrait; } public void afficher() { System.out.println(retrait.getRetrait() + name); // Affiche le nom du fichier avec le retrait } } public class Retrait { private StringBuffer sbRetrait = new StringBuffer(); public String getRetrait() { return sbRetrait.toString(); } public void augmenterRetrait() { sbRetrait.append("___"); // Ajoute le retrait } public void diminuerRetrait() { if (sbRetrait.length() >= 3) { sbRetrait.setLength(sbRetrait.length() - 3); // Réduit le retrait } } }
public class Program {
public static void main(String[] args) { Retrait retrait = new Retrait(); Repertoire repertoire3 = new Repertoire("rép3", retrait); Repertoire repertoire2 = new Repertoire("rép2", retrait); Repertoire repertoire1 = new Repertoire("rép1", retrait); Fichier a = new Fichier("a", retrait); Fichier b = new Fichier("b", retrait); Fichier c = new Fichier("c", retrait); Fichier d = new Fichier("d", retrait); Fichier e = new Fichier("e", retrait); repertoire3.ajouter(a); repertoire3.ajouter(repertoire2); repertoire3.ajouter(b); repertoire2.ajouter(c); repertoire2.ajouter(d); repertoire2.ajouter(repertoire1); repertoire1.ajouter(e); repertoire3.afficher(); // Affiche la structure des répertoires et fichiers } }