Vous êtes sur la page 1sur 2

public interface AbstractFile {

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
}
}

Vous aimerez peut-être aussi