Files
design-patterns/02-structural/composite/File.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);
}
}