package composite;
public interface Node {
int getLength();
}
package composite; import java.util.ArrayList; import java.util.List; public class Directory implements Node{ private List<Node> list; public Directory(){ list=new ArrayList<Node>(); } public int getLength(){ int sum=0; for(Node n:list){ sum+=n.getLength(); } return sum; } public void addNode(Node node){ list.add(node); } }
package composite; public class File implements Node{ private int length; public File(int length){ this.length=length; } public int getLength(){ return length; } public static void main(String[] args) { Node node=new File(100); Directory directory=new Directory(); directory.addNode(node); System.out.println(node.getLength()); } }
package composite; import java.util.ArrayList; import java.util.List; public class Directory implements Node{ private List<Node> list; public Directory(){ list=new ArrayList<Node>(); } public int getLength(){ int sum=0; for(Node n:list){ sum+=n.getLength(); } return sum; } public void addNode(Node node){ list.add(node); } }
package composite; public class File implements Node{ private int length; public File(int length){ this.length=length; } public int getLength(){ return length; } public static void main(String[] args) { Node node=new File(100); Directory directory=new Directory(); directory.addNode(node); System.out.println(node.getLength()); } }