Commit 6bbb0cbb authored by Uwe Peuker's avatar Uwe Peuker
Browse files

Merge branch 'feature_update_mit_bitctrl_funclib_2' into 'develop'

Feature update mit bitctrl funclib 2

See merge request ERZ/SWE_de.bsvrz.sys.funclib.bitctrl.dua!10
parents 0be62f48 d8f7eb4b
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -3,8 +3,24 @@ Versionsverlauf

## [Noch nicht veröffentlicht]

CONTRIBUTING.md mit NERZ-Text ergänzt

- CONTRIBUTING.md mit NERZ-Text ergänzt

- Kompatibilität für die Verwendung mit de.bsvrz.sys.funclib.bitctrl in Version 1 und
  der zukünftigen version 2 hergestellt

- Konstanten die auf Deprecated gesetzt waren entfernt:
	- SimpleDateFormat **ZEIT_FORMAT_GENAU**
	- SimpleDateFormat **NUR_ZEIT_FORMAT_GENAU**
	- SimpleDateFormat **BM_ZEIT_FORMAT**
- das statische Standard-Verkehrsnetz (DuaVerkehrsNetz) wurde entfernt, 
  zusammen mit der auf deprecated gesetzten "initialize"-Funktion
- die auf deprecated gesetzten Funktionen zum ermitteln von Instanzen aus 
  dem Standard-Verkehrsnetz wurden eliminiert für:
	- de.bsvrz.sys.funclib.bitctrl.dua.lve.FahrStreifen
	- de.bsvrz.sys.funclib.bitctrl.dua.lve.MessQuerschnittAllgemein
	- de.bsvrz.sys.funclib.bitctrl.dua.lve.MessQuerschnitt
	- de.bsvrz.sys.funclib.bitctrl.dua.lve.MessQuerschnittVirtuell
	- de.bsvrz.sys.funclib.bitctrl.dua.lve.MessStelle

## [Version 1.9.2]

+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
// NERZ-SWE-Plugin
//--------------------------------------------------------------------
plugins {
    id "de.bsvrz.gradle.nerzswe" version "0.5.0"
    id "de.bsvrz.gradle.nerzswe" version "0.9.0"
}

//--------------------------------------------------------------------
+1 −20
Original line number Diff line number Diff line
@@ -278,33 +278,14 @@ public final class DUAKonstanten {
	/**
	 * Standard-Format der Zeitangabe innerhalb der Betriebsmeldungen.
	 */
	public static final SimpleDateFormat BM_ZEIT_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm");
	public static final String BM_ZEIT_FORMAT_STR = "dd.MM.yyyy HH:mm";

	/** FormatString der Zeitangabe mit Datum. */
	public static final String ZEIT_FORMAT_GENAU_STR = "dd.MM.yyyy HH:mm:ss.SSS";

	/**
	 * Genaues Format der Zeitangabe mit Datum.
	 *
	 * @deprecated Stringkonstante {@link #ZEIT_FORMAT_GENAU_STR} verwenden,
	 *             Instanz nicht threadsafe
	 */
	@Deprecated
	public static final SimpleDateFormat ZEIT_FORMAT_GENAU = new SimpleDateFormat(DUAKonstanten.ZEIT_FORMAT_GENAU_STR);

	/** Genaues Format der Zeitangabe ohne Datum. */
	public static final String NUR_ZEIT_FORMAT_GENAU_STR = "HH:mm:ss.SSS";

	/**
	 * Genaues Format der Zeitangabe ohne Datum.
	 *
	 * @deprecated Stringkonstante {@link #NUR_ZEIT_FORMAT_GENAU_STR} verwenden,
	 *             Instanz nicht threadsafe
	 */
	@Deprecated
	public static final SimpleDateFormat NUR_ZEIT_FORMAT_GENAU = new SimpleDateFormat(
			DUAKonstanten.NUR_ZEIT_FORMAT_GENAU_STR);

	/**
	 * Feld mit allen innerhalb eines KZD-Satzes beschriebenen Attributen.
	 */
+0 −70
Original line number Diff line number Diff line
@@ -46,22 +46,12 @@ import de.bsvrz.sys.funclib.debug.Debug;
 */
public class DuaVerkehrsNetz {

	@Deprecated
	private static DuaVerkehrsNetz defaultInstance;
	
	/**
	 * die Datenverteilerverbindung mit dem das Netz initialisiert wurde. Es
	 * wird nur eine Datenverteilerverbindung unterstützt.
	 */
	private ClientDavInterface usedDav;
	
	private final Map<SystemObject, FahrStreifen> fahrStreifen = new LinkedHashMap<>();
	private final Map<SystemObject, MessQuerschnitt> messQuerSchnitte = new LinkedHashMap<>();
	private final Map<SystemObject, MessQuerschnittVirtuell> messQuerSchnitteVirtuell = new LinkedHashMap<>();
	private final Map<SystemObject, MessStelle> messStellen = new LinkedHashMap<>();
	private final Map<SystemObject, MessStellenGruppe> messStellenGruppen = new LinkedHashMap<>();


	/**
	 * erzeugt ein {@link DuaVerkehrsNetz} auf Basis der übergebenen
	 * Datenverteilerverbindung.
@@ -79,8 +69,6 @@ public class DuaVerkehrsNetz {
	 * @throws DUAInitialisierungsException die Initialisierung des Netzes ist fehlgeschlagen.
	 */
	public DuaVerkehrsNetz(ClientDavInterface dav, final ConfigurationArea[] kbs) throws DUAInitialisierungsException {
		defaultInstance = this;
		usedDav = dav;
		fahrStreifen.putAll(FahrStreifen.einlesen(this, dav, kbs));
		messQuerSchnitte.putAll(MessQuerschnitt.einlesen(this, dav, kbs));
		messQuerSchnitteVirtuell.putAll(MessQuerschnittVirtuell.einlesen(this, dav, kbs));
@@ -89,64 +77,6 @@ public class DuaVerkehrsNetz {
		messStellenGruppen.putAll(MessStellenGruppe.einlesen(this, dav, kbs));
	}

	/**
	 * Initialisiert das gesamte Verkehrs-Netz aus Sicht der DUA<br>
	 * Nach Aufruf dieser Methode sind insbesondere die Fahrtreifen mit den
	 * Informationen zu ihren Ersatz und Nachbarfahrstreifen initialisiert.
	 *
	 * @param dav
	 *            Verbindung zum Datenverteiler
	 * @throws DUAInitialisierungsException
	 *             wenn es Probleme geben sollte, die die Initialisierung des
	 *             Netzes (im Sinne der DUA) nicht möglich machen
	 * 
	 * @deprecated eine Applikation sollte eine Instanz des
	 *             {@link DuaVerkehrsNetz} halten. Damit wäre die Relation von
	 *             Datenverteilerverbindung (DatenModell) und implizit
	 *             zwischengespeicherten Modellobjekten eindeutig.
	 */
	@Deprecated
	public static synchronized void initialisiere(final ClientDavInterface dav) throws DUAInitialisierungsException {
		if ((defaultInstance != null) && (dav == defaultInstance.usedDav)) {
			Debug.getLogger().warning("Das DUA-Verkehrsnetz wurde bereits initialisiert");
		} else {
			defaultInstance = new DuaVerkehrsNetz(dav, null);
		}
	}

	/**
	 * Initialisiert das gesamte Verkehrs-Netz aus Sicht der DUA<br>
	 * Nach Aufruf dieser Methode sind insbesondere die Fahrtreifen mit den
	 * Informationen zu ihren Ersatz und Nachbarfahrstreifen initialisiert.
	 *
	 * @param dav
	 *            Verbindung zum Datenverteiler
	 * @param kbs
	 *            Menge der zu betrachtenden Konfigurationsbereiche
	 * @throws DUAInitialisierungsException
	 *             wenn es Probleme geben sollte, die die Initialisierung des
	 *             Netzes (im Sinne der DUA) nicht möglich machen
	 *
	 * @deprecated eine Applikation sollte eine Instanz des
	 *             {@link DuaVerkehrsNetz} halten. Damit wäre die Relation von
	 *             Datenverteilerverbindung (DatenModell) und implizit
	 *             zwischengespeicherten Modellobjekten eindeutig.
	 */
	@Deprecated
	public static synchronized void initialisiere(final ClientDavInterface dav, final ConfigurationArea[] kbs)
			throws DUAInitialisierungsException {
		if ((defaultInstance != null) && (dav == defaultInstance.usedDav)) {
			Debug.getLogger().warning("Das DUA-Verkehrsnetz wurde bereits initialisiert");
		} else {
			defaultInstance = new DuaVerkehrsNetz(dav, kbs);
		}
	}

	@Deprecated
	static DuaVerkehrsNetz getDefaultInstance() {
		return defaultInstance;
	}

	/**
	 * Ermittelt für alle Fahrstreifen die Nachbar- bzw. Ersatzfahrstreifen, so
	 * diese nicht explizit versorgt sind und trägt sie an den entsprechenden
+16 −78
Original line number Diff line number Diff line
@@ -39,9 +39,6 @@ import de.bsvrz.sys.funclib.bitctrl.dua.DUAInitialisierungsException;
import de.bsvrz.sys.funclib.bitctrl.dua.DUAKonstanten;
import de.bsvrz.sys.funclib.bitctrl.dua.DUAUtensilien;
import de.bsvrz.sys.funclib.bitctrl.dua.lve.typen.FahrStreifenLage;
import de.bsvrz.sys.funclib.bitctrl.modell.AbstractSystemObjekt;
import de.bsvrz.sys.funclib.bitctrl.modell.SystemObjekt;
import de.bsvrz.sys.funclib.bitctrl.modell.SystemObjektTyp;
import de.bsvrz.sys.funclib.debug.Debug;

/**
@@ -49,7 +46,7 @@ import de.bsvrz.sys.funclib.debug.Debug;
 *
 * @author BitCtrl Systems GmbH, Thierfelder
 */
public class FahrStreifen extends AbstractSystemObjekt {
public class FahrStreifen extends NetzElement {

	/**
	 * die Lage dieses Fahrtreifens.
@@ -69,13 +66,13 @@ public class FahrStreifen extends AbstractSystemObjekt {
	/**
	 * Standardkontruktor.
	 *
	 * @param fsObjekt
	 *            ein Systemobjekt vom Typ <code>typ.fahrStreifen</code>
	 * @throws DUAInitialisierungsException
	 *             wenn der Fahrstreifen nicht initialisiert werden konnte
	 * @param netz     das Netz zu dem der Fahrstreifen gehört
	 * @param fsObjekt ein Systemobjekt vom Typ <code>typ.fahrStreifen</code>
	 * @throws DUAInitialisierungsException wenn der Fahrstreifen nicht
	 *                                      initialisiert werden konnte
	 */
	protected FahrStreifen(final SystemObject fsObjekt) throws DUAInitialisierungsException {
		super(fsObjekt);
	protected FahrStreifen(DuaVerkehrsNetz netz, final SystemObject fsObjekt) throws DUAInitialisierungsException {
		super(netz, fsObjekt);

		if (fsObjekt == null) {
			throw new NullPointerException("Übergebenes Fahrstreifenobjekt ist <<null>>");
@@ -106,52 +103,13 @@ public class FahrStreifen extends AbstractSystemObjekt {
		Map<SystemObject, FahrStreifen> result = new LinkedHashMap<>();
		for (final SystemObject fsObjekt : dav1.getDataModel().getType(DUAKonstanten.TYP_FAHRSTREIFEN).getElements()) {
			if (fsObjekt.isValid() && DUAUtensilien.isObjektInKBsEnthalten(fsObjekt, kbs)) {
				result.put(fsObjekt, new FahrStreifen(fsObjekt));
				result.put(fsObjekt, new FahrStreifen(netz, fsObjekt));
			}
		}

		return result;
	}

	/**
	 * Erfragt alle statischen Instanzen dieser Klasse.
	 *
	 * @return alle statischen Instanzen dieser Klasse
	 * 
	 * @deprecated der Zugriff auf ein Fahrstreifen-Objekt sollte über
	 *             {@link DuaVerkehrsNetz#getAlleFahrStreifen()} erfolgen.
	 */
	@Deprecated
	public static Collection<FahrStreifen> getInstanzen() {
		DuaVerkehrsNetz verkehrsNetz = DuaVerkehrsNetz.getDefaultInstance();
		if (verkehrsNetz == null) {
			throw new RuntimeException("FahrStreifen-Klasse wurde noch nicht initialisiert");
		}
		return verkehrsNetz.getAlleFahrStreifen();
	}

	/**
	 * Erfragt eine mit dem übergebenen Systemobjekt assoziierte statische
	 * Instanz dieser Klasse.
	 *
	 * @param fsObjekt
	 *            ein Fahrstreifen-Systemobjekt
	 * @return eine mit dem übergebenen Systemobjekt assoziierte statische
	 *         Instanz dieser Klasse oder <code>null</code>, wenn diese Instanz
	 *         nicht ermittelt werden konnte
	 * 
	 * @deprecated der Zugriff auf ein Fahrstreifen-Objekt sollte über das
	 *             {@link DuaVerkehrsNetz#getFahrStreifen(SystemObject)} erfolgen.
	 */
	@Deprecated
	public static final FahrStreifen getInstanz(final SystemObject fsObjekt) {
		DuaVerkehrsNetz verkehrsNetz = DuaVerkehrsNetz.getDefaultInstance();
		if (verkehrsNetz == null) {
			throw new RuntimeException("FahrStreifen-Klasse wurde noch nicht initialisiert");
		}
		return verkehrsNetz.getFahrStreifen(fsObjekt);
	}

	/**
	 * Erfragt die Lage dieses Fahrtreifens innerhalb eines Messquerschnitts.
	 *
@@ -164,18 +122,17 @@ public class FahrStreifen extends AbstractSystemObjekt {
	/**
	 * Erfragt den Ersatzfahrstreifen dieses Fahrstreifens.
	 *
	 * @return den Ersatzfahrstreifen dieses Fahrstreifens oder
	 *         <code>null</code>, wenn dieser nicht ermittelt werden konnte
	 * @return den Ersatzfahrstreifen dieses Fahrstreifens oder <code>null</code>,
	 *         wenn dieser nicht ermittelt werden konnte
	 */
	public final FahrStreifen getErsatzFahrStreifen() {
		return FahrStreifen.getInstanz(ersatzFahrstreifenObj);
		return getNetz().getFahrStreifen(ersatzFahrstreifenObj);
	}

	/**
	 * Setzt den Ersatzfahrstreifen dieses Fahrstreifens.
	 *
	 * @param ersatzFahrstreifenObj1
	 *            den Ersatzfahrstreifen dieses Fahrstreifens
	 * @param ersatzFahrstreifenObj1 den Ersatzfahrstreifen dieses Fahrstreifens
	 */
	protected final void setErsatzFahrStreifen(final SystemObject ersatzFahrstreifenObj1) {
		ersatzFahrstreifenObj = ersatzFahrstreifenObj1;
@@ -184,39 +141,20 @@ public class FahrStreifen extends AbstractSystemObjekt {
	/**
	 * Erfragt den Nachbarfahrstreifen dieses Fahrstreifens.
	 *
	 * @return den Nachbarfahrstreifen dieses Fahrstreifens oder
	 *         <code>null</code>, wenn dieser Fahrstreifen keinen
	 *         Nachbarfahrstreifen hat
	 * @return den Nachbarfahrstreifen dieses Fahrstreifens oder <code>null</code>,
	 *         wenn dieser Fahrstreifen keinen Nachbarfahrstreifen hat
	 */
	public final FahrStreifen getNachbarFahrStreifen() {
		return FahrStreifen.getInstanz(nachbarFahrstreifenObj);
		return getNetz().getFahrStreifen(nachbarFahrstreifenObj);
	}

	/**
	 * Setzt den Nachbarfahrstreifen dieses Fahrstreifens.
	 *
	 * @param nachbarFahrstreifenObj1
	 *            den Nachbarfahrstreifen dieses Fahrstreifens
	 * @param nachbarFahrstreifenObj1 den Nachbarfahrstreifen dieses Fahrstreifens
	 */
	protected final void setNachbarFahrStreifen(final SystemObject nachbarFahrstreifenObj1) {
		nachbarFahrstreifenObj = nachbarFahrstreifenObj1;
	}

	@Override
	public SystemObjektTyp getTyp() {
		return new SystemObjektTyp() {

			@Override
			public Class<? extends SystemObjekt> getKlasse() {
				return FahrStreifen.class;
			}

			@Override
			public String getPid() {
				return getSystemObject().getType().getPid();
			}

		};
	}

}
Loading