// to represent one directory entry
abstract class ADE {
}
// to represent a file
class File extends ADE {
String name;
int size;
File(String name, int size) {
this.name = name;
this.size = size; }
}
// to represent a directory
class Directory extends ADE {
String name;
ALoDE lode;
Directory(String name, ALoDE lode) {
this.name = name;
this.lode = lode; }
}
// to represent a list of directory entries
abstract class ALoDE {
}
// to represent an empty list of directory entries
class MtLoDE extends ALoDE {
MtLoDE() {
}
}
// to represent a cosntructed list of directory entries
class ConsLoDE extends ALoDE {
ADE fst;
ALoDE rst;
ConsLoDE(ADE fst, ALoDE rst) {
this.fst = fst;
this.rst = rst; }
}
/* Interactions:
Examples of files:
File f1 = new File("MyPics", 1000);
File f2 = new File("MySong", 1500);
File f3 = new File("hmwk1", 300);
Examples of ALoDE
MtLoDE mtlode = new MtLoDE();
ConsLoDE lode1 = new ConsLoDE(f1, mtlode);
ConsLoDE lode2 = new ConsLoDE(f2, lode1);
ConsLoDE lode3 = new ConsLoDE(f3, mtlode);
Examples of Directories
Directory d1 = new Directory("Work", lode3);
Directory d2 = new Directory("Play", lode2);
Directory dir = new Directory("Main Dir",
new ConsLoDE(d1,
new ConsLoDE(d2,
mtlode)));
*/