import java.util.ArrayList;


public class App 
{
	public static void main (String[] args)
	{
		
		Engine emma = new Engine("Emma", 1000, 4000);
				
		Wagon tender = new Wagon ("Tender", 300, 1000);
		Wagon personenwagon = new Wagon ("Personenwagon", 1800, 4000);
		Wagon gepaeckwagon = new Wagon ("Gepäckwagon", 1800, 4000);
						
		Train lummerlandexpress = new Train("Lummerland Express", "Verkehrt auf der Insel Lummerland", emma);
		
		System.out.println(lummerlandexpress.getName());
		System.out.println(lummerlandexpress.getDescription());

		System.out.println(emma.getName());
		System.out.println(emma.getWeight());
		
		System.out.println(tender.getName());
		System.out.println(personenwagon.getName());
		System.out.println(gepaeckwagon.getName());
		
		lummerlandexpress.printOut();
		
		lummerlandexpress.getContains().add(tender);
		lummerlandexpress.getContains().add(personenwagon);
		lummerlandexpress.getContains().add(gepaeckwagon);
		
		lummerlandexpress.printOut();
				
		Engine molly = new Engine("Molly", 400, 1500);
		lummerlandexpress.getPulled_By().add(molly);
		
		lummerlandexpress.printOut();
		
		
		ArrayList<Engine> Triebkoepfe = new ArrayList<Engine>();
		Triebkoepfe.add(new Engine ("TK 0815-a", 80000, 500000));
		Triebkoepfe.add(new Engine ("TK 0815-b", 80000, 500000));
		
		Train ice = new Train ("ICE 855", "Koblenz Hbf - Berlin Ostbf ", Triebkoepfe);
		
		ice.getContains().add(new Wagon ("Wagen 24 - 1.Klasse", 53000, 52));
		ice.getContains().add(new Wagon ("Wagen 25 - 1.Klasse", 53000, 52));
		ice.getContains().add(new Wagon ("Wagen 26 - 1.Klasse", 53000, 52));
		ice.getContains().add(new Wagon ("Wagen 27 - 1.Klasse", 53000, 52));
		ice.getContains().add(new Wagon ("Wagen 14 - Speisewagen", 53000, 28));
		ice.getContains().add(new Wagon ("Wagen 32 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 33 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 34 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 35 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 36 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 37 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 38 - 2.Klasse", 53000, 71));
		ice.getContains().add(new Wagon ("Wagen 39 - 2.Klasse", 53000, 71));
		
		ice.printOut();
		
		Train ice2a = new Train ("ICE 544", "Düsseldorf - Berlin Ostbhf.", new Engine ("Triebkopf 55223", 80000, 500000));
		ice2a.getContains().add(new Wagon ("Wagen 11 - 1.Klasse", 53000, 52));
		ice2a.getContains().add(new Wagon ("Wagen 12 - 1.Klasse", 53000, 52));
		ice2a.getContains().add(new Wagon ("Wagen 13 - Speisewagen", 53000, 28));
		ice2a.getContains().add(new Wagon ("Wagen 14 - 2.Klasse", 53000, 71));
		ice2a.getContains().add(new Wagon ("Wagen 15 - 2.Klasse", 53000, 71));
		ice2a.getContains().add(new Wagon ("Wagen 16 - 2.Klasse", 53000, 71));
		ice2a.getContains().add(new Wagon ("Steuerwagen 17 - 2.Klasse", 53000, 55));
		
		ice2a.printOut();
		
		Train ice2b = new Train ("ICE 545", "Köln - Berlin Ostbhf.", new Engine ("Triebkopf 55224", 80000, 500000));
		ice2b.getContains().add(new Wagon ("Wagen 51 - 1.Klasse", 53000, 52));
		ice2b.getContains().add(new Wagon ("Wagen 52 - 1.Klasse", 53000, 52));
		ice2b.getContains().add(new Wagon ("Wagen 53 - Speisewagen", 53000, 28));
		ice2b.getContains().add(new Wagon ("Wagen 54 - 2.Klasse", 53000, 71));
		ice2b.getContains().add(new Wagon ("Wagen 55 - 2.Klasse", 53000, 71));
		ice2b.getContains().add(new Wagon ("Wagen 56 - 2.Klasse", 53000, 71));
		ice2b.getContains().add(new Wagon ("Steuerwagen 57 - 2.Klasse", 53000, 55));
		
		ice2b.printOut();
		
		System.out.println("Hamm in Westfalen");
		
		ice2a.addTrain(ice2b);
		
		ice2a.printOut();		
	
	}
}
