Converted everything to work with polymorphism

Added "Grootheid" to act as a parent to all children classes, it allows
the main "Weerstation" to update them all better and with cleaner code.
This commit is contained in:
Kenneth van Ewijk
2014-10-11 17:46:31 +02:00
parent 94cab3188e
commit a0c37c1a23
13 changed files with 340 additions and 776 deletions
+24 -82
View File
@@ -1,90 +1,32 @@
import java.io.*;
import java.net.*;
import java.util.ArrayList;
/**
* Write a description of class OpdrachtDinges here.
*
* @author (Tim van Lieshout)
* @version (a version number or a date)
*/
public class UVLevel
{
Weerstation weerstation;
Measurement meting;
ArrayList<Measurement> laatste24uur;
private Measurement laatsteMeting;
double max;
double min;
double avg;
double level;
public class UVLevel extends Grootheid{
public UVLevel(Measurement measurement1, ArrayList<Measurement> measurement2)
{
//constructor
public UVLevel(Measurement measurement1, ArrayList<Measurement> measurement2){
updateRecent(measurement1);
update24Hour(measurement2);
}
public double buitenLuchtvochtigheid()
{
meting.getUVLevel();
return meting.getUVLevel();
}
public double berekenMaximale()
{
double maximale = 0;
for(int i=0; i < laatste24uur.size();i++)
{
if(laatste24uur.get(i).getRawUVLevel() > maximale)
{
maximale = laatste24uur.get(i).getUVLevel();
}
}
return(maximale);
}
public double berekenMinimale()
{
double minimale = 100;
for(int i=0; i < laatste24uur.size();i++)
{
if(laatste24uur.get(i).getRawOutsideHum() < minimale)
{
minimale = laatste24uur.get(i).getUVLevel();
}
}
return(minimale);
}
public double berekenAverage()
{
int average = 0;
for(int i=0; i < laatste24uur.size(); i ++)
{
average += laatste24uur.get(i).getUVLevel();
}
average /= laatste24uur.size();
return(average);
}
public void updateRecent(Measurement measurement1){
this.laatsteMeting = measurement1;
level = laatsteMeting.getOutsideHum();
}
public void update24Hour(ArrayList<Measurement> measurement2){
this.laatste24uur = measurement2;
min = berekenMinimale();
max = berekenMaximale();
avg = berekenAverage();
}
public void display(){
GUIboard.writeUpperDigits(level);
GUIboard.writeLeftDigits(max);
GUIboard.writeRightDigits(min);
GUIboard.writePageToMatrix("UVLevel Buiten", "Gemiddelde: " + avg, "");
}
setCurrent(measurement1.getUVLevel());
}
public void update24Hour(ArrayList<Measurement> measurement2){
ArrayList<Double> list = new ArrayList<Double>();
for(Measurement ms : measurement2)
{
list.add(ms.getUVLevel());
}
calculateMaxMinAvg(list);
}
public void display(){
super.display();
GUIboard.writePageToMatrix("UV Level", "Gemiddelde: " + getAvg(), "");
}
}