mapper.DataStrukture
Class Node

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

public class Node
extends java.lang.Object

Die Klasse Node repräsentiert den Übertragungsknoten in einem NS2 System. Hier werden die Relevanten Daten abgespeichert, die für die Berechnung benötigt werden. TODO Node have to extends the Position Class

Author:
Emanuel Eden

Field Summary
private  int _nodeNameNumber
           
private  Position _position
           
private  boolean _randomMovement
           
private  boolean _randomStartPoint
           
private  TimeScheduler _timeScheduler
           
 
Constructor Summary
Node(double simulationTime)
          Knoten wird mit der Simulationszeit initialisiert.
Node(double x, double y, double simulationTime)
          Initialisierung eines Knotens mit seinen Positionsangaben auf einem Movementfield.
Node(Node node, double simulationTime)
          Initialisierung dieses Knotens mit einem anderen Node Objekt.
 
Method Summary
 int getName()
          Liefert den Namen des Knotens zurück.
 Position getPosition()
          Liefert die momentane Position des Knotens zurück
 boolean getRandomMovement()
          Liefert zurück, ob sich der Knoten zufallsbasiert bewegt, dann ist der Rückgabewert true ansonsten ist er false
 TimeScheduler getTimeScheduler()
          Liefert den TimeScheduler für diesen Knoten zurück.
 TimeSlot getTimeSlot()
          Liefert ein neues TimeSlot Element für den TimeScheduler.
 Position getTimeSlotPosition()
          Liefert die Position des letzten TimeSlots im TimeScheduler zurück.
 boolean isPointInNode(Position cursorPosition)
          Diese Methode wird verwendet, um sagen zu können, ob sich der Cursor gerade über dem Knoten befindet.
 boolean isRandomStartPoint()
          Liefert zurück, ob es sich bei dem Knoten um einen Zufallsbasierten Startpunkt handelt.
 void setName(int nameNumber)
          Setzt den Internen NodeNamen fest, der als forlaufende Integernummer deklariert wirde.
 void setPosition(Position position)
          Setzt eine neue Position für den Knoten.
 void setRandomMovement(boolean randomMovement)
          Setzt den Knoten auf einen zufallsbasierten Bewegungsablauf.
 void setRandomStartPoint(boolean randomStartPoint)
          Setzt den Knotenpositionsstartpunkt auf einen zufallsbasierten Wert, wenn der übergebene Wert gleich true ist.
 void setTimeScheduler(TimeScheduler timeScheduler)
          Setzt einen bereits bestehenden TimeScheduler für diesen Knoten ein.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_position

private Position _position

_timeScheduler

private TimeScheduler _timeScheduler

_nodeNameNumber

private int _nodeNameNumber

_randomStartPoint

private boolean _randomStartPoint

_randomMovement

private boolean _randomMovement
Constructor Detail

Node

public Node(double simulationTime)
Knoten wird mit der Simulationszeit initialisiert. Die später vom TimeScheduler verwendet wird um festzustellen, wann die Simulation endet.

Parameters:
simulationTime - Simulationslaufzeit

Node

public Node(Node node,
            double simulationTime)
Initialisierung dieses Knotens mit einem anderen Node Objekt. Dies wird zum Kopieren eines Nodes verwendet.

Parameters:
node - Ein bestehender Knoten
simulationTime - Die Simulationslaufzeit in Sekunden

Node

public Node(double x,
            double y,
            double simulationTime)
Initialisierung eines Knotens mit seinen Positionsangaben auf einem Movementfield.

Parameters:
x - Koordinate
y - Koordinate
simulationTime - Simulationslaufzeit
Method Detail

setTimeScheduler

public void setTimeScheduler(TimeScheduler timeScheduler)
Setzt einen bereits bestehenden TimeScheduler für diesen Knoten ein.

Parameters:
timeScheduler -

getTimeScheduler

public TimeScheduler getTimeScheduler()
Liefert den TimeScheduler für diesen Knoten zurück.

Returns:
TimeScheduler Objekt

getTimeSlot

public TimeSlot getTimeSlot()
Liefert ein neues TimeSlot Element für den TimeScheduler. Sofern noch kein einziger TimeSlot im TimeScheduler besteht, wird nur die Position des MovementFields über- geben. Wenn sich jedoch bereits ein TimeSlot im TimeScheduler befindet. Wird die StopPosition des letzte TimeSlots als Anfangspunkt definiert und erhählt zudem die zuletzt gültige Stop Zeit als Start Zeit.

Returns:
Liefert einen neuen TimeSlot zurück

getTimeSlotPosition

public Position getTimeSlotPosition()
Liefert die Position des letzten TimeSlots im TimeScheduler zurück. Sofern sich noch kein TimeSlot im TimeScheduler befindet wird die Position des Nodes zurückgeliefert.

Returns:
Liefert die momentane Position des letzten TimeSlots zurück

setPosition

public void setPosition(Position position)
Setzt eine neue Position für den Knoten. Wird benötigt beim Verschieben des Nodes.

Parameters:
position - Neue Position

getPosition

public Position getPosition()
Liefert die momentane Position des Knotens zurück

Returns:
Knotenposition vom Typ Position

setRandomStartPoint

public void setRandomStartPoint(boolean randomStartPoint)
Setzt den Knotenpositionsstartpunkt auf einen zufallsbasierten Wert, wenn der übergebene Wert gleich true ist. Wenn dieser Wert false ist, muss vorher oder kurz danach eine Positionierung des Knotens erfolgen, da ansonsten ein Fehler auftreten kann. Der Knoten wird bei true, nicht im MovementField angezeigt.

Parameters:
randomStartPoint -

isRandomStartPoint

public boolean isRandomStartPoint()
Liefert zurück, ob es sich bei dem Knoten um einen Zufallsbasierten Startpunkt handelt.

Returns:
boolean true wenn der Startpunkt zufallsbasiert ist.

setRandomMovement

public void setRandomMovement(boolean randomMovement)
Setzt den Knoten auf einen zufallsbasierten Bewegungsablauf. true, wenn der Knoten sich zufallsbasiert bewegt.

Parameters:
randomMovement - boolean

getRandomMovement

public boolean getRandomMovement()
Liefert zurück, ob sich der Knoten zufallsbasiert bewegt, dann ist der Rückgabewert true ansonsten ist er false

Returns:
boolen

setName

public void setName(int nameNumber)
Setzt den Internen NodeNamen fest, der als forlaufende Integernummer deklariert wirde. Der Wert wird intern gesetzt und kann im Verlauf des Programms nicht eigenständig definiert werden.

Parameters:
nameNumber - fortlaufende Integernummer.

getName

public int getName()
Liefert den Namen des Knotens zurück. Wird verwendet um den Knoten im Choicetree wieder- zuerkennen.

Returns:
int Liefert den NamenNummer des Knotens zurück.

isPointInNode

public boolean isPointInNode(Position cursorPosition)
Diese Methode wird verwendet, um sagen zu können, ob sich der Cursor gerade über dem Knoten befindet. Diese Methode wird zum Markieren des Knotens auf der Paintingarea verwendet. Hierbei muss sich der Cursor ca. im Radius von 5 Pixeln um den Knoten befinden.

Parameters:
cursorPosition - Liefert die Position des Cursors an.
Returns:
boolen true falls sich der Cursor in der nähe des Nodes befindet.