de.bsvrz.kex.bwsin.konfig
Class StrassenElement

java.lang.Object
  extended by de.bsvrz.kex.bwsin.konfig.StrassenElement
All Implemented Interfaces:
Cloneable

public class StrassenElement
extends Object
implements Cloneable

Internes Straßenelement.

Version:
$Id: StrassenElement.java 10402 2008-07-10 09:07:00Z gieseler $
Author:
BitCtrl Systems GmbH, Gieseler

Field Summary
private static de.bsvrz.sys.funclib.debug.Debug DEBUG
          DebugLogger für Debug-Ausgaben.
protected  String endeVP
          Die Feature-ID des End-Verbindungspunktes.
private  org.geotools.feature.Feature feature
          Das assoziierte Feature der Okstra-Databasis.
private  List<StrassenAbschnitt> inAbschnitten
          Liste von Straßenabschnitten, in denen das Straßenelement enthalten ist.
private  boolean internErzeugt
          Flag, ob das Straßenelement intern erzeugt wurde.
private  Location nachLocation
          Location, auf die sich das Straßenelement zubewegt.
private  Verkehrsrichtung richtung
          Die Verkehrsrichtung in Bezug zur Stationierungsrichtung.
protected  String startVP
          Die Feature-ID des Start-Verbindungspunktes.
private static String TRENNZEICHEN_LOCATIONEN
          Die in der OKSTRA-Datenbasis benutzten Trennzeichen bei mehreren Locationen.
 
Constructor Summary
private StrassenElement()
          Privater Konstruktor.
  StrassenElement(org.geotools.feature.Feature feature)
          Erzeugt ein Strassenelement aus einem Feature vom Typ 'vrz3:StrassenelementInASS'.
 
Method Summary
 List<String> bestimmeNetzknoten()
          Bestimmt die Netzknoten zwischen denen ein Straßenelement verläuft.
private  String bestimmeNetzknotenVerbindungspunkt(String vpid)
          Bestimmt den Netzknoten zu einem Verbindungspunkt.
 Verkehrsrichtung bestimmeRichtung()
          Bestimmt die Verkehrsrichtung des Straßenelementes aus den Feature-Attributen.
 StrassenElement clone()
          
 boolean equals(Object obj)
          
 StrassenElement erzeugeGegenrichtung()
          Erzeugt eine Kopie des Straßenelementes für die Gegenrichtung.
 String getEndeVP()
          Gibt den Verbindungspunkt zurück, an dem das Straßensegment endet.
 org.geotools.feature.Feature getFeature()
          Gibt das mit diesem Straßenelement assoziierte Feature zurück.
 List<Location> getFeatureNachLocationen()
          Bestimmt die Locationen, auf die das Straßelement zufährt aus den Feature-Attributen.
 String getID()
          Gibt die Feature-ID des mit dem Strassenelement assoziierten Features der Okstra-Databasis zurück.
 Location getNachLocation()
          Gibt die Location zurück, auf die das Straßenelement zufährt.
 Verkehrsrichtung getRichtung()
          Gibt die Verkehrsrichtung des Strassenelementes zurück.
 String getStartVP()
          Gibt den Verbindungspunkt zurück, an dem das Straßensegment beginnt.
 int hashCode()
          
 boolean istASS()
          Test, ob das Straßenelement zu einem äußeren Straßensegment gehört.
 boolean istASSFeature()
          Test, ob das Straßenelement zu einem äußeren Straßensegment gehört.
 boolean istInternErzeugt()
          Gibt das Flag zurück, ob es das Straßenelement intern erzeugt wurde.
 boolean kannBenutztWerden()
          Test, ob das Strassenelement zur Bildug von Straßenabschnitten erwendet werden kann.
 boolean kannImportiertWerden()
          Test, ob ein Strassenelement importiert werden kann.
 void setNachLocation(Location location)
          Setzt die Location, auf die das Straßenelement zufährt.
 String toString()
          
 boolean ueberpruefeLocationen(StrassenElement element)
          Test, ob sich ein anderes Straßenelement auf die gleiche Location zubewegt.
 void vpUmkehren()
          Tauscht die Verbindungspunkte der Straßenelementes.
private  String vrString()
          Gibt eine textuelle Repräsentation der Verkehrsrichtung zurück.
 void zuAbschnitt(StrassenAbschnitt abschnitt)
          Fügt dem Straßenelement einen Verweis auf einen Straßen- abschnitt hinzu, zu dem es gehöhrt.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

DEBUG

private static final de.bsvrz.sys.funclib.debug.Debug DEBUG
DebugLogger für Debug-Ausgaben.


TRENNZEICHEN_LOCATIONEN

private static final String TRENNZEICHEN_LOCATIONEN
Die in der OKSTRA-Datenbasis benutzten Trennzeichen bei mehreren Locationen.

See Also:
Constant Field Values

startVP

protected String startVP
Die Feature-ID des Start-Verbindungspunktes.


endeVP

protected String endeVP
Die Feature-ID des End-Verbindungspunktes.


feature

private org.geotools.feature.Feature feature
Das assoziierte Feature der Okstra-Databasis.


inAbschnitten

private final List<StrassenAbschnitt> inAbschnitten
Liste von Straßenabschnitten, in denen das Straßenelement enthalten ist.


richtung

private Verkehrsrichtung richtung
Die Verkehrsrichtung in Bezug zur Stationierungsrichtung.


internErzeugt

private boolean internErzeugt
Flag, ob das Straßenelement intern erzeugt wurde.


nachLocation

private Location nachLocation
Location, auf die sich das Straßenelement zubewegt.

Constructor Detail

StrassenElement

private StrassenElement()
Privater Konstruktor.


StrassenElement

public StrassenElement(org.geotools.feature.Feature feature)
                throws ImportException
Erzeugt ein Strassenelement aus einem Feature vom Typ 'vrz3:StrassenelementInASS'.

Parameters:
feature - Strassenelement-Feature
Throws:
ImportException - bei Ausnahmen
Method Detail

bestimmeNetzknoten

public List<String> bestimmeNetzknoten()
Bestimmt die Netzknoten zwischen denen ein Straßenelement verläuft. Dazu wird folgende Relation aufgelöst:
Netzknoten1: StrassenelementInASS.beginnt_bei_VP.in_Nullpunkt.in_Netzknoten.Bezeichnung_kurz
Netzknoten2: StrassenelementInASS.endet_bei_VP.in_Nullpunkt.in_Netzknoten.Bezeichnung_kurz

Returns:
Liste von Feature-ID's der Netzknoten

bestimmeNetzknotenVerbindungspunkt

private String bestimmeNetzknotenVerbindungspunkt(String vpid)
Bestimmt den Netzknoten zu einem Verbindungspunkt. Dazu wird folgende Relation aufgelöst: Verbindungspunkt.in_Nullpunkt.in_Netzknoten.Bezeichnung_kurz

Parameters:
vpid - Feature-ID des verbindungspunktes
Returns:
Feature-ID des Netzknotens

bestimmeRichtung

public Verkehrsrichtung bestimmeRichtung()
                                  throws ImportException
Bestimmt die Verkehrsrichtung des Straßenelementes aus den Feature-Attributen.

Returns:
Verkehrsrichtung
Throws:
ImportException - wenn die Richtung nicht bestimmt werden kann

clone

public StrassenElement clone()

Overrides:
clone in class Object
See Also:
Object.clone()

equals

public boolean equals(Object obj)

Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)

erzeugeGegenrichtung

public StrassenElement erzeugeGegenrichtung()
                                     throws ImportException
Erzeugt eine Kopie des Straßenelementes für die Gegenrichtung. Die Richtung dieses Straßenelementes wird auf IN_STATIONIERUNGSRICHTUNG gesetzt. Das neue Straßenelementes erhält die Verkehrsrichtung GEGEN_STATIONIERUNGSRICHTUNG. Für das neue Straßenelement werden die Verbindungspunkte entsprechend angepaßt.

Returns:
neues StrassenElement
Throws:
ImportException - wenn kein Straßenelement angelegt werden kann

getEndeVP

public String getEndeVP()
Gibt den Verbindungspunkt zurück, an dem das Straßensegment endet.

Returns:
Feature-Id des Verbindungspunktes

getFeature

public org.geotools.feature.Feature getFeature()
Gibt das mit diesem Straßenelement assoziierte Feature zurück.

Returns:
Feature

getFeatureNachLocationen

public List<Location> getFeatureNachLocationen()
                                        throws ImportException
Bestimmt die Locationen, auf die das Straßelement zufährt aus den Feature-Attributen.

Returns:
Liste von Locationen
Throws:
ImportException - bei Ausnahmen

getID

public String getID()
Gibt die Feature-ID des mit dem Strassenelement assoziierten Features der Okstra-Databasis zurück.

Returns:
Feature-ID

getNachLocation

public Location getNachLocation()
Gibt die Location zurück, auf die das Straßenelement zufährt.

Returns:
Locationen, auf die das Straßenelement

getRichtung

public Verkehrsrichtung getRichtung()
Gibt die Verkehrsrichtung des Strassenelementes zurück.

Returns:
Verkehrsrichtung

getStartVP

public String getStartVP()
Gibt den Verbindungspunkt zurück, an dem das Straßensegment beginnt.

Returns:
Feature-Id des Verbindungspunktes

hashCode

public int hashCode()

Overrides:
hashCode in class Object
See Also:
Object.hashCode()

istASS

public boolean istASS()
Test, ob das Straßenelement zu einem äußeren Straßensegment gehört.

Returns:
true, wenn das Straßenelement zu einem äußeren Straßensegment gehört, ansonsten false.

istASSFeature

public boolean istASSFeature()
Test, ob das Straßenelement zu einem äußeren Straßensegment gehört.

Returns:
true, wenn das Straßenelement zu einem äußeren Straßensegment gehört, ansonsten false.

istInternErzeugt

public boolean istInternErzeugt()
Gibt das Flag zurück, ob es das Straßenelement intern erzeugt wurde.

Returns:
true oder false

kannBenutztWerden

public boolean kannBenutztWerden()
Test, ob das Strassenelement zur Bildug von Straßenabschnitten erwendet werden kann. Strassenelemente, die in beiden Fahrtrichtungen verlaufen, können 2 Abschnitten zugeordnet werden.

Returns:
Wahr, wenn das Strassenelement zu einem Strassenabschnitt gehört.

kannImportiertWerden

public boolean kannImportiertWerden()
Test, ob ein Strassenelement importiert werden kann. Bedingung ist ein existierender Locationcode zum Netzknoten, in dem dieses (innere) Straßenelement verläft. Für den ermittelten Netzknoten wird ein Locationcode in der LCL gesucht, der in der Spalte NETZKNOTEN_NR den Netzknoten enthält.

Returns:
true, wenn das Straßenelement importiert werden kann, ansonsten false

setNachLocation

public void setNachLocation(Location location)
Setzt die Location, auf die das Straßenelement zufährt.

Parameters:
location - Location

toString

public String toString()

Overrides:
toString in class Object
See Also:
Object.toString()

ueberpruefeLocationen

public boolean ueberpruefeLocationen(StrassenElement element)
Test, ob sich ein anderes Straßenelement auf die gleiche Location zubewegt.

Parameters:
element - anderes Straßenelement
Returns:
true, wenn sich das andere Straßenelement auf die gleiche Location zubewegt, sonst false

vpUmkehren

public void vpUmkehren()
Tauscht die Verbindungspunkte der Straßenelementes.


vrString

private String vrString()
Gibt eine textuelle Repräsentation der Verkehrsrichtung zurück.

Returns:
Verkehrsrichtung als Text

zuAbschnitt

public void zuAbschnitt(StrassenAbschnitt abschnitt)
Fügt dem Straßenelement einen Verweis auf einen Straßen- abschnitt hinzu, zu dem es gehöhrt.

Parameters:
abschnitt - StrassenAbschnitt