AbstractSensor.java |
1 package sensor; 2 3 import java.util.Date; 4 /** 5 * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch 6 * Punkt mit Sensoren 7 * Diese Klasse definiert einen Sensor. Das Auslesen des Wertes des Sensors - 8 * readValue() - wird nicht implementiert, daher ist diese Klasse abstrakt. 9 * Diese Klasse enthält die Variablen eines Sensors sowie den Konstruktor. 10 **/ 11 public abstract class AbstractSensor implements Sensor { 12 13 private final String name; // der Name des Sensors 14 private Date date; // der Zeitpunkt des letztmaligen Auslesens mittels read() 15 private double value; // der zuletzt mittels readValue() ausgelesene Wert: 16 // wird mittels readValue() in Unterklassen gesetzt 17 18 // Konstruktor - setzt den Namen 19 // wird in den Unterklassen aufgerufen 20 protected AbstractSensor(String name) { 21 this.name = name; 22 } 23 24 // abstrakte Methode zum Auslesen des Wertes 25 // hängt von der Art des Sensors ab 26 // wird erst in Unterklassen implementiert 27 protected abstract void readValue(); 28 29 // liefert den Namen 30 public String getName() { 31 return name; 32 } 33 34 // Auslesen des Sensors 35 public void read() { 36 date = new Date(); // aktuelle Zeit speichern (unabhängig von Art des Sensors) 37 readValue(); // Aufruf der abstrakten Methode 38 } 39 40 // liefert den Zeitpunkt des letzten Auslesens 41 public Date getDate() { 42 return date; 43 } 44 45 // liefert den zuletzt ausgelesenen Wert 46 public double getValue() { 47 return value; 48 } 49 50 // setzt den zuletzt ausgelesenen Wert 51 // in einer Unterklasse 52 protected void setValue(double value) { 53 this.value = value; 54 } 55 56 } 57