28 lines
708 B
Java
28 lines
708 B
Java
package composite;
|
|
|
|
/**
|
|
* Leaf — a single file. It has no children.
|
|
* getSize() returns its own size. print() shows its name.
|
|
*
|
|
* Notice: the File has no knowledge of directories or nesting.
|
|
* It just knows its own name and size.
|
|
*/
|
|
public class File implements FileSystemItem {
|
|
|
|
private final String name;
|
|
private final long size;
|
|
|
|
public File(String name, long sizeBytes) {
|
|
this.name = name;
|
|
this.size = sizeBytes;
|
|
}
|
|
|
|
@Override public String getName() { return name; }
|
|
@Override public long getSize() { return size; }
|
|
|
|
@Override
|
|
public void print(String indent) {
|
|
System.out.printf("%s[FILE] %s (%,d bytes)%n", indent, name, size);
|
|
}
|
|
}
|