27.07.2013 Views

Carletti A/S 2012 - Kalabakas.dk

Carletti A/S 2012 - Kalabakas.dk

Carletti A/S 2012 - Kalabakas.dk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

23. april - <strong>2012</strong> Robert Nogal<br />

24. maj - <strong>2012</strong> <strong>Carletti</strong> Projekt <strong>2012</strong> Emil Thygesen<br />

Mads Pedersen<br />

Så hvad er det lige der er blevet gjort for at systemet er kommet til at kunne automatisk opdatere systemet i<br />

real-time men samtidig at opdatere lidt oftere når systemet bliver testet?<br />

Det første problem der skulle overvindes var at lave en tråd som konstant kører, sideløbende med hovedsystemet.<br />

Så derfor var det nødvendigt at implementere en klasse til lige præcis dette formål, nemlig<br />

TimeThread-klassen.<br />

public class TimeThread extends Thread {<br />

…<br />

private final int DELAY = 10000;<br />

private final boolean TEST = true;<br />

…<br />

}<br />

Denne klasse extender som en selvfølge Thread superklassen for at det er muligt at kører den som en tråd<br />

sideløbende med resten. For at håndtere både hvor ofte tråden skal tjekke for om der er gået en ny dag<br />

(real-time) eller inkrementere test-systemets dato med en (test), samt håndtere om den skal gøre det ene<br />

eller andet er der i klassen blevet deffineret to konstanter. Nemlig DELAY som håndtere hvor ofte den skal<br />

gøre noget samt TEST som håndtere om det er det ene eller andet mode systemet skal kører efter.<br />

public class TimeThread extends Thread {<br />

…<br />

public void run() {<br />

Date date;<br />

try {<br />

if (TEST) {<br />

while (true) {<br />

Thread.sleep(DELAY);<br />

date = DateUtil.createDate(dato.getDato(), 1);<br />

dato.setDato(date);<br />

service.checkVareStatus();<br />

}<br />

} else {<br />

while (true) {<br />

Thread.sleep(DELAY);<br />

date = new Date();<br />

if (DateUtil.daysDiff(date, dato.getDato()) != 0) {<br />

dato.setDato(date);<br />

service.checkVareStatus();<br />

}<br />

}<br />

}<br />

} catch (InterruptedException e) {<br />

}<br />

}<br />

…<br />

}<br />

Så er det basale på plads, så er der faktisk kun en interessant metode tilbage, nemlig run-metoden. Denne<br />

metode bliver brugt når tråden, som noget af det første i programmet, bliver initialiceret hvilket gør at det<br />

der er deffineret i denne metode skal danne rammer for hele systemets levetid. For at håndtere det at<br />

Side 50 af 75

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!