Barnehage

Vi lage et program som simulerer en (enkel) barnehage. I barnehagen har man mange barn, som leker med leker. Lekene tilh?rer barnehagen, men denne barnehagen har et slikt system at hvert barn kan ta med seg leker hjem n?r dagen er slutt, men da m? de ha disse med seg tilbake dagen etter.

Barnehage

Klassen Barnehage skal holde kontroll p? alle lekene som barnehagen eier, samt alle Barn i barnehagen. Barnehage er en "monitor", og skal derfor inneholde kontrollmetodene laanLeke() og giLeke().

Barnehage er en monitor. Dette betyr at klassen m? ha funksjoner for tr?dsikkerhet p? plass. Til denne oppgaven er det nyttig med ReentrantLock, Condition og CountDownLatch. CyclicBarrier kan brukes om man f?ler seg mer komfortabel med dette.

Barnehage skal i tillegg ha funksjon for ? skrive til fil. Dette gj?res i metoden skrivBarnehage(). Denne metoden skal skrive til samme fil som det ble lest fra, p? samme format. (Se espira.in).

Barn

Et barn er en klasse som implementerer Runnable. Klassen skal ha en CountDownLatch (eller CyclicBarrier) som parameter, som den skal synkronisere p? n?r den er ferdig i run()-metoden.

Klassen har en liste med leker, som tr?den p?virker med kall p? Barnehagens metoder.

Barn har metoden byttLeke(), som skal gi en leke til barnehagen, eller ta en leke fra barnehagen. Denne metoden skal kalles et antall ganger i run()-metoden.

Barnet opprettes med en ArrayList med sine leker. Barnet l?ner og gir leker til barnehagen i l?pet av en dag, og p? slutten av dagen kan de, om de vil, ta med seg noen leker hjem. (skrives til fil) Denne filen skal v?re den samme som det leses fra, s? om barnehagen har en ny dag, vil det bli en naturlig fortsettelse av den forrige.

Main

Her skal det leses inn en fil som inneholder info om barnehage og barn. Vi har kalt filen espira.in. Filen skal leses slik:

Resten av filen er p? f?lgende format:

Du m? derfor lese mer enn èn linje om gangen for ? opprette objekter av klassen Barn. Etter filen er lest, skal metoden returnere en peker til en barnehage, og deretter kaller man Barnehages barnehagedag().