mapper.DataStrukture
Class TimeSlot

java.lang.Object
  extended by mapper.DataStrukture.TimeSlot

public class TimeSlot
extends java.lang.Object

Beinhaltet alle Informationen, die benötigt werden um einen Knoten an eine andere Position zu bewegen. Anfangs und Endposition des Node oder MovementField, sowie die Anfangs und Endzeit der Positionsbewegung. Sowie der Speed, der verwendet werden soll. Sofern der Anfang und das Ende, sollte man sich nicht die Mühe machen den Speed anzugenbe. Falls die Anfangszeit der Bewegung und der Speed angegeben wird, darf man nicht den Endzeitpunkt angeben, da Speed sonst überschrieben wird.

_startPosition, stopPosition: Dimensionsangaben in Metern.
_startTime, _stopTime : Die Zeit wird in Sekunden berechnet.
_speed : wird in km/h berechnet.

Author:
Emanuel Eden

Field Summary
private  double _speed
           
private  Position _startPosition
           
private  double _startTime
           
private  Position _stopPosition
           
private  double _stopTime
           
 
Constructor Summary
TimeSlot()
          Initialisierung ohne Werte
TimeSlot(double startTime, double stopTime, Position startPosition, Position stopPosition)
          TimeSlot Erstellung mit der stopTime des letzten TimeSlots als startTime des neuen Timeslots, sowie einer stopTime.
TimeSlot(double speed, Position startPosition, Position stopPosition, double startTime)
          TimeSlot Erstellung mit der stopTime des letzten TimeSlots als startTime des neuen Timeslots, sowie dem speed des Nodes oder MovementFields.
TimeSlot(Position startPosition)
          TimeSlot wird initialisiert mit dem Startpunkt eines Nodes oder MovementFields.
TimeSlot(Position startPosition, double startTime)
          TimeSlot wird initialisiert mit dem Startpunkt und der Startzeit,
TimeSlot(TimeSlot timeSlot)
          Initialisieren des TimeSlots mittels eines anderen TimeSlots
 
Method Summary
private  boolean canCompute()
          Schaut ob alle relevanten Werte zur Berechnung des Speeds bzw. der stopTime vorliegen.
private  double computeSpeed()
          Berechnet den Speed mittels der Werte von Start- und StopPosition und von Start- und Stopzeit.
private  double computeTime()
          Berechnet die stopZeit des Timeslots mittels der Werte von Start- und Stop- Position und von der StartTime und dem Speed.
 double getSpeed()
          Liefert den Speed in km/h zurück.
 Position getStartPosition()
          Liefert den momentanen Startpunkt des Nodes oder des MovementFields zurück
 double getStartTime()
          Liefert die momentane Startzeit des Nodes oder des MovementFields zurück
 Position getStopPosition()
          Liefert den momentanen Stoppunkt des Nodes oder des MovementFields zurück
 double getStopTime()
          Liefert den momentane Stopzeit des Nodes oder des MovementFields zurück
private  double lineLength(Position startPosition, Position stopPosition)
          Berechnet die Entfernung von der StartPosition bis zur StopPosition in Metern.
 void setStartPosition(Position startPosition)
          Setzt die Startposition des TimeSlots neu fest.
 void setStartTime(double startTime)
          Setzt die Startzeit des TimeSlots neu fest.
 void setStopPosition(Position stopPosition)
          Setzt die Stopposition des TimeSlots neu fest.
 void setStopTime(double stopTime)
          Setzt die Stopzeit des TimeSlots neu fest.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_startPosition

private Position _startPosition

_stopPosition

private Position _stopPosition

_startTime

private double _startTime

_stopTime

private double _stopTime

_speed

private double _speed
Constructor Detail

TimeSlot

public TimeSlot()
Initialisierung ohne Werte


TimeSlot

public TimeSlot(TimeSlot timeSlot)
Initialisieren des TimeSlots mittels eines anderen TimeSlots

Parameters:
timeSlot - TimeSlot der übergeben wird

TimeSlot

public TimeSlot(Position startPosition)
TimeSlot wird initialisiert mit dem Startpunkt eines Nodes oder MovementFields.

Parameters:
startPosition - Position eines Nodes oder MovementFields

TimeSlot

public TimeSlot(Position startPosition,
                double startTime)
TimeSlot wird initialisiert mit dem Startpunkt und der Startzeit,

Parameters:
startPosition - Position des Nodes oder MovementFields, bzw. der letzten stopPosition
startTime - StopTime des letzten TimeSlots

TimeSlot

public TimeSlot(double speed,
                Position startPosition,
                Position stopPosition,
                double startTime)
TimeSlot Erstellung mit der stopTime des letzten TimeSlots als startTime des neuen Timeslots, sowie dem speed des Nodes oder MovementFields. Die stopTime wird automatisch berechnet.

Parameters:
speed - Geschwindigkeit des Nodes oder MovementFields in km/h
startPosition - des Nodes oder MovementFields in Metern
stopPosition - des Nodes oder MovementFields in Metern
startTime - des Nodes oder MovementFields in Sekunden

TimeSlot

public TimeSlot(double startTime,
                double stopTime,
                Position startPosition,
                Position stopPosition)
TimeSlot Erstellung mit der stopTime des letzten TimeSlots als startTime des neuen Timeslots, sowie einer stopTime. Die berechnung des speeds erfolgt automatisch.

Parameters:
startTime - des Nodes oder MovementFields in Sekunden
stopTime - des Nodes oder MovementFields in Sekunden
startPosition - des Nodes oder MovementFields in Metern
stopPosition - des Nodes oder MovementFields in Metern
Method Detail

setStartPosition

public void setStartPosition(Position startPosition)
Setzt die Startposition des TimeSlots neu fest. Dabei wird auch der Speed neu berechnet.

Parameters:
startPosition - eine neue StartPositon vom Objekt Position

getStartPosition

public Position getStartPosition()
Liefert den momentanen Startpunkt des Nodes oder des MovementFields zurück

Returns:
Position der StartPosition des TimeSlots

setStopPosition

public void setStopPosition(Position stopPosition)
Setzt die Stopposition des TimeSlots neu fest. Dabei wird auch der Speed neu berechnet.

Parameters:
stopPosition - Die StopPosition des TimeSlots

getStopPosition

public Position getStopPosition()
Liefert den momentanen Stoppunkt des Nodes oder des MovementFields zurück

Returns:
Position der StartPosition des TimeSlots

getStartTime

public double getStartTime()
Liefert die momentane Startzeit des Nodes oder des MovementFields zurück

Returns:
double Liefert die Startzeit in Sekunden zurück

setStartTime

public void setStartTime(double startTime)
Setzt die Startzeit des TimeSlots neu fest. Dabei wird auch der Speed neu berechnet.

Parameters:
startTime - Doublewert Setzt die Startzeit des TimeSlots in Sekunden fest.

setStopTime

public void setStopTime(double stopTime)
Setzt die Stopzeit des TimeSlots neu fest. Dabei wird auch der Speed neu berechnet.

Parameters:
stopTime - Doublewert Setzt die Stopzeit des TimeSlots in Sekunden fest.

getStopTime

public double getStopTime()
Liefert den momentane Stopzeit des Nodes oder des MovementFields zurück

Returns:
double Liefert die Stopzeit in Sekunden zurück

getSpeed

public double getSpeed()
Liefert den Speed in km/h zurück.

Returns:
double Speed in km/h

canCompute

private boolean canCompute()
Schaut ob alle relevanten Werte zur Berechnung des Speeds bzw. der stopTime vorliegen.

Returns:
boolean wert ob mittels der Werte speed und stopTime neu berechnet werden können

lineLength

private double lineLength(Position startPosition,
                          Position stopPosition)
Berechnet die Entfernung von der StartPosition bis zur StopPosition in Metern.

Parameters:
startPosition - Ist der Startpunkt des TimeSlots
stopPosition - Ist der Stoppunkt des TimeSlots
Returns:
liefert die Distanz zwischen den Positionen in Metern

computeSpeed

private double computeSpeed()
Berechnet den Speed mittels der Werte von Start- und StopPosition und von Start- und Stopzeit.

Returns:
double Liefert den Speed in km/h zurück

computeTime

private double computeTime()
Berechnet die stopZeit des Timeslots mittels der Werte von Start- und Stop- Position und von der StartTime und dem Speed.

Returns:
double StopTime in Sekunden