From 4e6685ef3d69324cee367cbe3b04f0872281ee64 Mon Sep 17 00:00:00 2001
From: olale <olale@c-215-118.eduroam.liu.se>
Date: Tue, 17 May 2016 15:14:12 +0200
Subject: [PATCH] New Task 1A for 2016

---
 Task_A/projects.dtd                           |  19 ---
 Task_A/projects.xml                           | 118 ------------------
 Task_A/src/Enumerable.java                    |  47 +++++++
 Task_A/src/IAction.java                       |   8 ++
 Task_A/src/IPredicate.java                    |   8 ++
 Task_A/src/Test.java                          |  51 ++++++++
 Task_A/src/builder/AbstractConverter.java     |  25 ----
 Task_A/src/builder/DOMNodes.java              |  39 ------
 Task_A/src/builder/DocReader.java             |  53 --------
 Task_A/src/builder/EmailListConverter.java    |  20 ---
 Task_A/src/builder/NodeConverter.java         |  11 --
 Task_A/src/builder/ParseTest.java             |  31 -----
 Task_A/src/builder/SupervisorConverter.java   |  18 ---
 Task_A/src/state/GumballMachine.java          | 110 ----------------
 Task_A/src/state/GumballMachineTestDrive.java |  39 ------
 Task_A/src/state/NoQuarterState.java          |  22 ----
 Task_A/src/state/State.java                   |  11 --
 17 files changed, 114 insertions(+), 516 deletions(-)
 delete mode 100644 Task_A/projects.dtd
 delete mode 100644 Task_A/projects.xml
 create mode 100644 Task_A/src/Enumerable.java
 create mode 100644 Task_A/src/IAction.java
 create mode 100644 Task_A/src/IPredicate.java
 create mode 100644 Task_A/src/Test.java
 delete mode 100644 Task_A/src/builder/AbstractConverter.java
 delete mode 100644 Task_A/src/builder/DOMNodes.java
 delete mode 100644 Task_A/src/builder/DocReader.java
 delete mode 100644 Task_A/src/builder/EmailListConverter.java
 delete mode 100644 Task_A/src/builder/NodeConverter.java
 delete mode 100644 Task_A/src/builder/ParseTest.java
 delete mode 100644 Task_A/src/builder/SupervisorConverter.java
 delete mode 100755 Task_A/src/state/GumballMachine.java
 delete mode 100755 Task_A/src/state/GumballMachineTestDrive.java
 delete mode 100644 Task_A/src/state/NoQuarterState.java
 delete mode 100644 Task_A/src/state/State.java

diff --git a/Task_A/projects.dtd b/Task_A/projects.dtd
deleted file mode 100644
index fb2c024..0000000
--- a/Task_A/projects.dtd
+++ /dev/null
@@ -1,19 +0,0 @@
-<!ELEMENT projects (project)*>
-
-<!ELEMENT project (#PCDATA | br | b | i)*>
-<!ATTLIST project 
-    title CDATA ""
-    dept CDATA ""
-    tutorname CDATA ""
-    tutormail CDATA ""
-    group CDATA "">
-
-<!ELEMENT br EMPTY>
-
-<!ELEMENT b (#PCDATA)>
-
-<!ELEMENT i (#PCDATA)>
-
-<!ELEMENT a (#PCDATA)>
-<!ATTLIST a
-    href CDATA "">
diff --git a/Task_A/projects.xml b/Task_A/projects.xml
deleted file mode 100644
index 74d7298..0000000
--- a/Task_A/projects.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE projects SYSTEM "projects.dtd">
-
-<projects>
-
-<!-- ===== IDA ===== ====================================================== -->
-
-<project dept="IDA" title="Sensornoder med minimotes (1)"
-  group="IT1-bg1" tutorname="Massimiliano Raciti" tutormail="Massimiliano.Raciti@liu.se">
-
-Tr�dl�sa sensorn�t (en. wireless sensor networks) �r numera ett stort
-f�lt inom forskning och utveckling med m�nga kommande
-till�mpningsomr�den, tex �vervakning av vulkanutbrott, smarta hem och
-andra st�rre byggnader, och �vervakning av olika naturfenomen. I detta
-projekt f�r ni utf�ra experiment med sm� sensorenheter som kan
-kommunicera m�tningar till en datainsamlare (en mini laptop).
-
-Ni experimenterar med data om temperatur, luftfuktighet och ljus �ver
-en tidsperiod. Ni kommer �ven att studera hur den tr�dl�sa
-radiokommunikationen p�verkas av olika faktorer som avst�nd, fysiska
-hinder, eller r�relser.
- </project>
-
-<project dept="IDA" title="Sensornoder med minimotes (2)"
-  group="IT1-bg2" tutorname="Ekhiotz Jon Vergara Alonso" tutormail="ekhiotz.vergara@liu.se">
-
-Tr�dl�sa sensorn�t (en. wireless sensor networks) �r numera ett stort
-f�lt inom forskning och utveckling med m�nga kommande
-till�mpningsomr�den, tex �vervakning av vulkanutbrott, smarta hem och
-andra st�rre byggnader, och �vervakning av olika naturfenomen. I detta
-projekt f�r ni utf�ra experiment med sm� sensorenheter som kan
-kommunicera m�tningar till en datainsamlare (en mini laptop).
-
-Ni experimenterar med data om temperatur, luftfuktighet och ljus �ver
-en tidsperiod. Ni kommer �ven att studera hur den tr�dl�sa
-radiokommunikationen p�verkas av olika faktorer som avst�nd, fysiska
-hinder, eller r�relser. </project>
-
-<!-- ===== IMT ===== ====================================================== -->
-
-<project dept="IMT" title="Hur fungerar hj�rna-dator-gr�nssnitt?"
-  group="IT1-bg3" tutorname="H�kan �rman" tutormail="hakan.orman@liu.se">
-Att med hj�lp av datorer �verf�ra tankar till handling genom att till
-exempel styra proteser skulle vara till stor hj�lp f�r personer som av
-olika anledningar inte kan kontrollera sin muskelaktivitet. Forskning
-och utveckling har tagit oss en god bit p� v�g mot det som f�r inte s�
-l�nge sedan var ren science fiction. Hur fungerar den h�r tekniken?
-Vad �r f�ruts�ttningarna f�r att den ska fungera och vilka
-anv�ndningsomr�den finns? Projektet omfattar en teoretisk studie och
-praktiska tester med en enkel utrustning som tolkar tre typer av
-biopotentialer.
-</project>
-
-
-<!-- ===== ISY ========= ================================================ -->
-
-<project dept="ISY" title="Modellering av ett embryos utveckling"
-  group="IT1-bg4" tutorname="Robert Forchheimer" tutormail="robert.forchheimer@liu.se">
-De f�rsta celldelningarna n�r ett d�ggdjur bildas skapar en geometrisk
-konstellation av celler som alltid �r densamma f�r varje exemplar i
-arten. En teori �r att det �r r�tt enkla mekaniska egenskaper (tryck,
-vidh�ftning) som styr detta. I v�r forskargrupp har vi visat med 3D
-datorgrafik-modeller att teorin f�refaller st�mma �tminstone upp till
-6-8 celler. Projektet g�r ut p� att se om man kan l�gga till
-ytterligare enkla villkor f�r att f� �verensst�mmelse n�r cellklumpen
-forts�tter att dela sig.
-</project>
-
-<project dept="ISY" title="Hur fungerar djupskattning fr�n stereobilder?"
-  group="IT1-bg5" tutorname="Kristoffer �fj�ll" tutormail="kristoffer.ofjall@liu.se">
-Ett viktigt steg i det m�nskliga synsinnet best�r i att skatta
-avst�ndet till det vi ser. Detta g�rs bland annat genom att analysera
-skillnader mellan informationen fr�n de b�da �gonen.  P� samma s�tt
-kan skillnader mellan bilder fotograferade fr�n olika positioner
-anv�ndas f�r att automatiskt skapa en 3D-modell med hj�lp av
-datorseendealgoritmer.  <br/><br/> I det h�r projektet studeras en
-enkel men kraftfull metod f�r att skatta djup fr�n tv�
-fotografier. Deltagarna f�r stifta bekanskap med de matematiska
-verktyg som beh�vs f�r att l�sa problemet, samt ber�kningsmilj�n
-MATLAB, som anv�nds i m�nga kurser vid LiTH, och som �r ett mycket
-anv�ndbart verktyg f�r att l�sa ber�kningsproblem inom de flesta
-ingenj�rsomr�dena.
-</project>
-
-<!-- ===== TEMA ===== ===================================================== -->
-
-<project dept="TEMA" 
-  title="Vad �r en medicinsk simulator?"
-  group="IT1-bg6" tutorname="Eva T�rnqvist" tutormail="eva.tornqvist@liu.se">
-Medicinska simulatorer anv�nds idag ibland annat i undervisning f�r
-att rekonstruera en fysisk kropp, en patient, i en f�rest�lld
-situation. Detta ger m�jlighet f�r exempelvis l�karstudenter att �va
-p� olika ingrepp och situationer som kan uppst�.  Syftet med projektet
-�r att beskriva vad en medicinsk simulator �r och f�rklara hur den
-anv�nds i den medicinska utvecklingen. Fr�gor som b�r diskuteras och
-analyseras �r: Vad �r en medicinsk simulator? Hur fungerar en
-medicinsk simulator? Hur anv�nds en medicinsk simulator i den
-medicinska utvecklingen?
-</project>
-
-<project dept="TEMA" 
-  title="Hur fungerar IT och funktionshinder?" 
-  group="IT1-bg7" tutorname="Eva T�rnqvist" tutormail="eva.tornqvist@liu.se">
-Tillg�ng till dator och Internet har �kat kraftigt i Sverige under de
-senaste �ren och allt fler tj�nster finnas att tillg� p� Internet.
-Informationstekniken har blivit en allt viktigare resurs f�r individer och
-hush�ll f�r att hantera olika vardagliga situationer men hur fungerar det
-f�r personer med funktionshinder? Man r�knar med att 10-20 % av befolkningen
-i Europa har ett funktionshinder och i Sverige uppskattas antalet personer
-med funktionshinder till ca 1,3 miljoner. Bland m�lgrupperna �r exempelvis
-personer med synskador, h�rselskador och d�vhet, tal- och
-kommunikationssv�righeter, r�relsehinder och kognitiva funktionshinder. Det
-h�r projektets syfte �r unders�ka i vilken utstr�ckning funktionshindrade
-har blivit delaktiga i IT-utvecklingen. Har IT till exempel skapat nya
-hinder eller suddat ut tidigare gr�nser?
-</project>
-
-</projects>
diff --git a/Task_A/src/Enumerable.java b/Task_A/src/Enumerable.java
new file mode 100644
index 0000000..177bce9
--- /dev/null
+++ b/Task_A/src/Enumerable.java
@@ -0,0 +1,47 @@
+
+
+import java.util.Collection;
+import java.util.Iterator;
+
+public class Enumerable<T> implements Iterable<T> {
+
+	private Iterator<T> iterator;
+
+	public Enumerable(Collection<T> collection) {
+		this.iterator = collection.iterator();
+	}
+
+	Enumerable<T> where(IPredicate<T> predicate) {
+		Iterator<T> oldIterator = iterator;
+		this.iterator = new Iterator<T>() {
+
+			@Override
+			public boolean hasNext() {
+				return oldIterator.hasNext();
+			}
+
+			@Override
+			public T next() {
+				T item = oldIterator.hasNext() ? oldIterator.next() : null;
+				while (oldIterator.hasNext() && !predicate.accept(item)) {
+					item = oldIterator.next();
+				}
+				return item;
+			}
+		};
+		return this;
+	}
+
+	@Override
+	public Iterator<T> iterator() {
+		return iterator;
+	}
+
+	void forEach(IAction<T> action) {
+		while (iterator.hasNext()) {
+			T t = (T) iterator.next();
+			action.perform(t);
+		}
+	}
+
+}
diff --git a/Task_A/src/IAction.java b/Task_A/src/IAction.java
new file mode 100644
index 0000000..3ac5d28
--- /dev/null
+++ b/Task_A/src/IAction.java
@@ -0,0 +1,8 @@
+
+
+
+public interface IAction<T> {
+
+	void perform(T t);
+	
+}
diff --git a/Task_A/src/IPredicate.java b/Task_A/src/IPredicate.java
new file mode 100644
index 0000000..0904949
--- /dev/null
+++ b/Task_A/src/IPredicate.java
@@ -0,0 +1,8 @@
+
+
+
+public interface IPredicate<T> {
+
+	boolean accept(T element);
+	
+}
diff --git a/Task_A/src/Test.java b/Task_A/src/Test.java
new file mode 100644
index 0000000..6f38516
--- /dev/null
+++ b/Task_A/src/Test.java
@@ -0,0 +1,51 @@
+
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+
+public class Test {
+
+	public static void main(String[] args) {
+		final ArrayList<Integer> arrayList = new ArrayList<Integer>();
+		arrayList.add(2);
+		arrayList.add(4);
+		arrayList.add(5);
+		arrayList.add(7);
+
+		Enumerable<Integer> enumerable = new Enumerable<>(arrayList);
+		Enumerable<Integer> evenNumbers = enumerable
+				.where(new IPredicate<Integer>() {
+
+					@Override
+					public boolean accept(Integer element) {
+						return element % 2 == 0;
+					}
+				});
+
+		Enumerable<Integer> oddNumbers = enumerable
+				.where(new IPredicate<Integer>() {
+
+					@Override
+					public boolean accept(Integer element) {
+						return element % 2 == 1;
+					}
+				});
+		
+		evenNumbers.forEach(new IAction<Integer>() {
+			
+			@Override
+			public void perform(Integer t) {
+				System.out.println(MessageFormat.format("Even number {0}", t));
+			}
+		});
+		
+		oddNumbers.forEach(new IAction<Integer>() {
+
+			@Override
+			public void perform(Integer t) {
+				System.out.println(MessageFormat.format("Odd number{0}", t));				
+			}
+		});
+	}
+
+}
diff --git a/Task_A/src/builder/AbstractConverter.java b/Task_A/src/builder/AbstractConverter.java
deleted file mode 100644
index 89dccec..0000000
--- a/Task_A/src/builder/AbstractConverter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package builder;
-
-public abstract class AbstractConverter implements NodeConverter {
-
-	public AbstractConverter() {
-		super();
-	}
-
-	@Override
-	public void ReadProject(String projectName) {
-	}
-
-	@Override
-	public void ReadSupervisor(String supervisorName) {
-	}
-
-	@Override
-	public void ReadEmail(String email) {
-	}
-	
-	@Override
-	public void ReadDescription(String description) {
-	}
-
-}
\ No newline at end of file
diff --git a/Task_A/src/builder/DOMNodes.java b/Task_A/src/builder/DOMNodes.java
deleted file mode 100644
index f3f8604..0000000
--- a/Task_A/src/builder/DOMNodes.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package builder;
-
-import java.util.Iterator;
-
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class DOMNodes implements Iterable<Node> {
-
-	private NodeList nodes;
-
-	public DOMNodes(NodeList nodes) {
-		this.nodes = nodes;
-	}
-
-	@Override
-	public Iterator<Node> iterator() {
-		return new Iterator<Node>() {
-
-			private int i=0;
-			
-			@Override
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			@Override
-			public Node next() {
-				return nodes.item(i++);
-			}
-
-			@Override
-			public boolean hasNext() {
-				return i < nodes.getLength();
-			}
-		};
-	}
-
-}
diff --git a/Task_A/src/builder/DocReader.java b/Task_A/src/builder/DocReader.java
deleted file mode 100644
index d25022f..0000000
--- a/Task_A/src/builder/DocReader.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package builder;
-
-import java.io.IOException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
-
-public class DocReader {
-
-	private NodeConverter converter;
-	private String fileName;
-
-	public DocReader(NodeConverter converter, String fileName) {
-		this.converter=converter;
-		this.fileName=fileName;
-	}
-
-	public void build() {
-		DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-		try {
-			DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
-			
-			Document document = documentBuilder.parse(fileName);
-			DOMNodes projectNodes = new DOMNodes(document.getElementsByTagName("project"));
-			for (Node node : projectNodes) {
-				converter.ReadProject(getNodeAttribute(node, "title"));
-				converter.ReadEmail(getNodeAttribute(node,"tutormail"));
-				converter.ReadSupervisor(getNodeAttribute(node, "tutorname"));
-				converter.ReadDescription(node.getNodeValue());
-			}
-			
-		} catch (ParserConfigurationException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (SAXException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	private String getNodeAttribute(Node node, String attributeName) {
-		return node.getAttributes().getNamedItem(attributeName).getNodeValue();
-	}
-	
-}
diff --git a/Task_A/src/builder/EmailListConverter.java b/Task_A/src/builder/EmailListConverter.java
deleted file mode 100644
index 65a1b32..0000000
--- a/Task_A/src/builder/EmailListConverter.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package builder;
-
-import java.util.ArrayList;
-
-public class EmailListConverter extends AbstractConverter implements
-		NodeConverter {
-
-	ArrayList<String> emailList = new ArrayList<String>();
-
-	public ArrayList<String> getEmailList() {
-		return emailList;
-	}
-
-	@Override
-	public void ReadEmail(String email) {
-		emailList.add(email);
-	}
-
-
-}
diff --git a/Task_A/src/builder/NodeConverter.java b/Task_A/src/builder/NodeConverter.java
deleted file mode 100644
index 6068b61..0000000
--- a/Task_A/src/builder/NodeConverter.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package builder;
-
-public interface NodeConverter {
-	
-	public void ReadProject(String projectName);
-	public void ReadSupervisor(String supervisorName);
-	public void ReadEmail(String email);
-	public void ReadDescription(String description);
-	
-
-}
diff --git a/Task_A/src/builder/ParseTest.java b/Task_A/src/builder/ParseTest.java
deleted file mode 100644
index 06b93a5..0000000
--- a/Task_A/src/builder/ParseTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package builder;
-
-import java.util.ArrayList;
-
-public class ParseTest {
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		EmailListConverter emailBuilder = new EmailListConverter();
-		DocReader reader = new DocReader(emailBuilder, "projects.xml");
-		reader.build();
-		ArrayList<String> emailList = emailBuilder.getEmailList();
-		System.out.println("------- Email list ---------");
-		for (String email : emailList) {
-			System.out.println(email);
-		}
-		SupervisorConverter supervisorConverter = new SupervisorConverter();
-		reader = new DocReader(supervisorConverter, "projects.xml");
-		reader.build();
-		ArrayList<String> supervisorList = supervisorConverter.getSupervisors();
-		System.out.println("--------- Supervisor list ---------");
-		for (String supervisor : supervisorList) {
-			System.out.println(supervisor);
-		}
-		
-		
-	}
-
-}
diff --git a/Task_A/src/builder/SupervisorConverter.java b/Task_A/src/builder/SupervisorConverter.java
deleted file mode 100644
index d9569ea..0000000
--- a/Task_A/src/builder/SupervisorConverter.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package builder;
-
-import java.util.ArrayList;
-
-public class SupervisorConverter extends AbstractConverter {
-
-	private ArrayList<String> supervisors = new ArrayList<String>();
-
-	public ArrayList<String> getSupervisors() {
-		return supervisors;
-	}
-
-	@Override
-	public void ReadSupervisor(String supervisorName) {
-		supervisors.add(supervisorName);
-	}
-
-}
diff --git a/Task_A/src/state/GumballMachine.java b/Task_A/src/state/GumballMachine.java
deleted file mode 100755
index a3a50c8..0000000
--- a/Task_A/src/state/GumballMachine.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package state;
-
-public class GumballMachine {
- 
-	final static int SOLD_OUT = 0;
-	final static int NO_QUARTER = 1;
-	final static int HAS_QUARTER = 2;
-	final static int SOLD = 3;
- 
-	int state = SOLD_OUT;
-	int count = 0;
-  
-	public GumballMachine(int count) {
-		this.count = count;
-		if (count > 0) {
-			state = NO_QUARTER;
-		}
-	}
-  
-	public void insertQuarter() {
-		if (state == HAS_QUARTER) {
-			System.out.println("You can't insert another quarter");
-		} else if (state == NO_QUARTER) {
-			state = HAS_QUARTER;
-			System.out.println("You inserted a quarter");
-		} else if (state == SOLD_OUT) {
-			System.out.println("You can't insert a quarter, the machine is sold out");
-		} else if (state == SOLD) {
-        	System.out.println("Please wait, we're already giving you a gumball");
-		}
-	}
-
-	public void ejectQuarter() {
-		if (state == HAS_QUARTER) {
-			System.out.println("Quarter returned");
-			state = NO_QUARTER;
-		} else if (state == NO_QUARTER) {
-			System.out.println("You haven't inserted a quarter");
-		} else if (state == SOLD) {
-			System.out.println("Sorry, you already turned the crank");
-		} else if (state == SOLD_OUT) {
-        	System.out.println("You can't eject, you haven't inserted a quarter yet");
-		}
-	}
- 
-
- 
- 
-	public void turnCrank() {
-		if (state == SOLD) {
-			System.out.println("Turning twice doesn't get you another gumball!");
-		} else if (state == NO_QUARTER) {
-			System.out.println("You turned but there's no quarter");
-		} else if (state == SOLD_OUT) {
-			System.out.println("You turned, but there are no gumballs");
-		} else if (state == HAS_QUARTER) {
-			System.out.println("You turned...");
-			state = SOLD;
-			dispense();
-		}
-	}
- 
-	public void dispense() {
-		if (state == SOLD) {
-			System.out.println("A gumball comes rolling out the slot");
-			count = count - 1;
-			if (count == 0) {
-				System.out.println("Oops, out of gumballs!");
-				state = SOLD_OUT;
-			} else {
-				state = NO_QUARTER;
-			}
-		} else if (state == NO_QUARTER) {
-			System.out.println("You need to pay first");
-		} else if (state == SOLD_OUT) {
-			System.out.println("No gumball dispensed");
-		} else if (state == HAS_QUARTER) {
-			System.out.println("No gumball dispensed");
-		}
-	}
- 
-	public void refill(int numGumBalls) {
-		this.count = numGumBalls;
-		state = NO_QUARTER;
-	}
-
-	public String toString() {
-		StringBuffer result = new StringBuffer();
-		result.append("\nMighty Gumball, Inc.");
-		result.append("\nJava-enabled Standing Gumball Model #2004\n");
-		result.append("Inventory: " + count + " gumball");
-		if (count != 1) {
-			result.append("s");
-		}
-		result.append("\nMachine is ");
-		if (state == SOLD_OUT) {
-			result.append("sold out");
-		} else if (state == NO_QUARTER) {
-			result.append("waiting for quarter");
-		} else if (state == HAS_QUARTER) {
-			result.append("waiting for turn of crank");
-		} else if (state == SOLD) {
-			result.append("delivering a gumball");
-		}
-		result.append("\n");
-		return result.toString();
-	}
-}
-
-
diff --git a/Task_A/src/state/GumballMachineTestDrive.java b/Task_A/src/state/GumballMachineTestDrive.java
deleted file mode 100755
index f9e8e3b..0000000
--- a/Task_A/src/state/GumballMachineTestDrive.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package state;
-
-public class GumballMachineTestDrive {
-
-	public static void main(String[] args) {
-		GumballMachine gumballMachine = new GumballMachine(5);
-
-		System.out.println(gumballMachine);
-
-		gumballMachine.insertQuarter();
-		gumballMachine.turnCrank();
-
-		System.out.println(gumballMachine);
-
-		gumballMachine.insertQuarter();
-		gumballMachine.ejectQuarter();
-		gumballMachine.turnCrank();
-
-		System.out.println(gumballMachine);
-
-		gumballMachine.insertQuarter();
-		gumballMachine.turnCrank();
-		gumballMachine.insertQuarter();
-		gumballMachine.turnCrank();
-		gumballMachine.ejectQuarter();
-
-		System.out.println(gumballMachine);
-
-		gumballMachine.insertQuarter();
-		gumballMachine.insertQuarter();
-		gumballMachine.turnCrank();
-		gumballMachine.insertQuarter();
-		gumballMachine.turnCrank();
-		gumballMachine.insertQuarter();
-		gumballMachine.turnCrank();
-
-		System.out.println(gumballMachine);
-	}
-}
diff --git a/Task_A/src/state/NoQuarterState.java b/Task_A/src/state/NoQuarterState.java
deleted file mode 100644
index d9a61a4..0000000
--- a/Task_A/src/state/NoQuarterState.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package state;
-
-public class NoQuarterState implements State {
-
-	@Override
-	public void insertQuarter(GumballMachine machine) {
-		machine.state = GumballMachine.HAS_QUARTER;
-		System.out.println("You inserted a quarter");
-	}
-
-	@Override
-	public void ejectQuarter(GumballMachine gumballMachine) {
-		System.out.println("You haven't inserted a quarter");
-	}
-
-	@Override
-	public void dispense(GumballMachine gumballMachine) {
-
-		System.out.println("You need to pay first");
-	}
-
-}
diff --git a/Task_A/src/state/State.java b/Task_A/src/state/State.java
deleted file mode 100644
index d1edcc5..0000000
--- a/Task_A/src/state/State.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package state;
-
-interface State {
-	void insertQuarter(GumballMachine machine);
-
-	void ejectQuarter(GumballMachine gumballMachine);
-
-	void dispense(GumballMachine gumballMachine);
-
-
-}
-- 
GitLab