import java.util.ArrayList;

public class TestVisitor {
	public static void main(String[] args) {
		ArrayList<Visitable> objects = new ArrayList<>();
		objects.add(new Book("A Tale of Two Cities"));
		objects.add(new Book("Debugging Teams"));
		objects.add(new Package("Amazon Box 1", 20.4));
		objects.add(new Package("Amazon Box 2", 1.2));
		
		PostageVisitor postage = new PostageVisitor();
		for (Visitable v : objects) {
			v.accept(postage);
		}
		System.out.println("The total price is " + postage.getTotalPostage());
		
		System.out.println();
		PrintVisitor printer = new PrintVisitor();
		objects.forEach(v -> v.accept(printer));
	}
}
