Ciao a tutti, ho un disperato bisogno di aiuto per quanto riguarda un simulatore che mi trovo costretto a implementare per testare un'app.
Ho cercato già aiuto pure su qualche gruppo fb qualche settimana fa, ma le risposte non sono state soddisfacenti.
Questo simulatore, o generatore, deve creare in maniera random una specie di File System Virtuale, quindi Directory e File, però in maniera fittizia e non realmente, perché poi tutto deve essere rappresentato così com'è in un file Json che servirà per il test.
Ogni directory e file avrà questi attributi:
-Name(Nome delle Directory o del File).
-Type(Se è una Directory o un File)
-Parent(Che identifica tutto il percorso dove è la Directory o il File in questione, ad es. Il File5 sarà dentro D1 e D2 e quindi questo campo sarà "D1/D2")
-Level(A che livello si trova il file o la directory, es. 0 per Root, e via dicendo)
-Id(Che identifica univocamente quella directory o file)
Visto la presenza di padri e figli la cosa più naturale e credo la più giusta è quella di implementare un albero.
E ho provato qualcosa del genere:
public class TreeStruct {
private String name;
private String type;
private String parent;
private int level;
private long id;
private List<TreeStruct> children = new ArrayList<>();
public List<TreeStruct> getChildren() {
return Collections.unmodifiableList(children);
}
public void setChildren(List<TreeStruct> children) {
this.children = children;
}
public void addChildFolder(TreeStruct treestruct) {
this.children.add(treestruct);
}
//E poi di conseguenza i vari set e get.......//
Per quanto riguarda il livello 0(Root) la cosa viene semplice crearla perché nessuno ha parent(quindi come campo si ha"null"), però scendendo di livello dovrei creare dei File o Directory che prendono casualmente come padre qualche Directory del livello Superiore e settino il loro campo con il giusto percorso dal quale derivano. Chiaramente imposto un massimo numero di livelli fino a dove scendere e un massimo numero di elementi da creare per ogni livello.
Avete idea di come procedere? Sono nuovo del linguaggio Java e può esserci anche qualche errore sia sul tipo di approccio che sulla struttura dati che sto usando, ma spero di essere stato abbastanza chiaro. Poi posso mettere anche quello che ho fatto per ora nel main, anche se si tratta di creare solo il primo livello.
Per adesso l'ho escluso per non rendere troppo lungo e pesante il post.