Commit 51d2c4bb authored by Steffen Gieseler's avatar Steffen Gieseler

Junit-Tests bearbeitet

git-svn-id: svn://ntoserver/Datenverteiler/VRZ3/trunk/de.bsvrz.ste.tmcvew@63611 40c0be50-5d29-0410-901d-fb59edb5cafc
parent 25a1315a
......@@ -85,7 +85,7 @@ public class TMCVerwaltung implements MutableSetChangeListener, InvalidationList
/**
* Löschverfahren für die dynamischen TMC-Meldungsobjekte.
*/
private int loeschVerfahren;
// private int loeschVerfahren;
/**
* Flag zur Unterdrückung der Korrektur, wenn ein Zeitstempel einer Meldung
......@@ -116,7 +116,6 @@ public class TMCVerwaltung implements MutableSetChangeListener, InvalidationList
public TMCVerwaltung(final ClientDavInterface connection, final ConfigurationObject konfigObjekt, final int optionen) {
dav = connection;
lmsObjekt = konfigObjekt;
loeschVerfahren = optionen & TMCVerwaltungApp.MASKE_LOESCH_VERFAHREN;
ohneZeitstempelKorrektur = (optionen & TMCVerwaltungApp.MASKE_OHNE_ZEITSTEMPEL_KORREKTUR) != 0;
final AttributeGroup atg = dav.getDataModel().getAttributeGroup("atg.tmcMeldungsVerwaltung");
......@@ -189,15 +188,6 @@ public class TMCVerwaltung implements MutableSetChangeListener, InvalidationList
return lmsObjekt;
}
/**
* Gibt das Löschverfahren zurück.
*
* @return das Löschverfahren
*/
public int getLoeschVerfahren() {
return loeschVerfahren;
}
/**
* .
* @return true, falls die Korrektur unterdrückt wird, wenn ein Zeitstempel
......
......@@ -69,11 +69,6 @@ public class TMCVerwaltungApp implements StandardApplication {
*/
private int ohneZeitstempelKorrektur;
public static final int OPTION_LOESCH_VERFAHREN_1 = 1;
public static final int OPTION_LOESCH_VERFAHREN_2 = 2;
public static final int OPTION_LOESCH_VERFAHREN_3 = 3;
public static final int MASKE_LOESCH_VERFAHREN = 3;
public static final int OPTION_OHNE_ZEITSTEMPEL_KORREKTUR = 4;
public static final int MASKE_OHNE_ZEITSTEMPEL_KORREKTUR = 4;
......@@ -145,23 +140,12 @@ public class TMCVerwaltungApp implements StandardApplication {
lmsPid = argumentList.fetchArgument("-lms=").asNonEmptyString();
if (argumentList.hasArgument("-löschen")) {
loeschVerfahren = argumentList.fetchArgument("-löschen=").intValueBetween(0, 1);
}
// -loeschen statt -löschen, -löschen wird zur Rückwartskompatiblität
// beibehalten,
// aber -loeschen hat Vorrang
if (argumentList.hasArgument("-loeschen")) {
loeschVerfahren = argumentList.fetchArgument("-loeschen=").intValueBetween(0, 1);
}
if (argumentList.hasArgument("-ohneZeitstempelKorrektur")) {
final String text = argumentList.fetchArgument("-ohneZeitstempelKorrektur=").asString();
if ("1".equals(text) || "true".equalsIgnoreCase(text) || "wahr".equalsIgnoreCase(text)) {
ohneZeitstempelKorrektur = OPTION_OHNE_ZEITSTEMPEL_KORREKTUR;
}
}
// if (argumentList.hasArgument("-ohneZeitstempelKorrektur")) {
// final String text = argumentList.fetchArgument("-ohneZeitstempelKorrektur=").asString();
// if ("1".equals(text) || "true".equalsIgnoreCase(text) || "wahr".equalsIgnoreCase(text)) {
// ohneZeitstempelKorrektur = OPTION_OHNE_ZEITSTEMPEL_KORREKTUR;
// }
// }
argumentList.fetchUnusedArguments();
}
......@@ -181,7 +165,7 @@ public class TMCVerwaltungApp implements StandardApplication {
try {
MessageSender.getInstance().setApplicationLabel(connection.getLocalApplicationObject().getName());
final ConfigurationObject lmsobjekt = getKonfigObjekt(lmsPid, "typ.tmcLandesMeldeStelle");
final ConfigurationObject lmsobjekt = getKonfigObjekt(lmsPid, LMS_TYP);
if (lmsobjekt == null) {
throw new RuntimeException("Das angegebene Objekt '" + lmsPid + "' kann nicht vom Datenverteiler gelesen werden!");
......
......@@ -703,34 +703,29 @@ public class TMCVewMeldung implements ClientReceiverInterface {
final Data datenSenden = sender.getDatenSenden() != null && sender.getDatenSenden().hasData()
? sender.getDatenSenden().getData() : null;
// TODO:
// /*
// * Wenn bereits Status Aufhebung gesendet wurde, wird nur noch Status
// * Löschung weitergeleitet, wenn bereits Status Löschung gesendet
// wurde,
// * werden keine Daten mehr weitergeleitet.
// */
// if (datenSenden != null) {
// final TMCStatus sendeStatus = getStatus(datenSenden);
// if (sendeStatus == TMCStatus.Aufhebung) {
// if (status != TMCStatus.Loeschung || true) {
// DEBUG.config(text + "\nEs liegt bereits eine Aktualisierung mit
// Status " + sendeStatus
// + " vor - nur Aktualisierungen mit Status " + TMCStatus.Loeschung + "
// werden weitergeleitet"
// + suffixFehler);
// return;
// }
// } else if (sendeStatus == TMCStatus.Loeschung) {
// if (!(status == TMCStatus.Loeschung &&
// verwaltung.getLoeschVerfahren() == 1)) {
// DEBUG.config(text + "\nEs liegt bereits eine Aktualisierung mit
// Status " + sendeStatus + " vor"
// + suffixFehler);
// return;
// }
// }
// }
/*
* Wenn bereits Status Aufhebung gesendet wurde, wird nur noch Status
* Löschung weitergeleitet, wenn bereits Status Löschung gesendet wurde,
* werden keine Daten mehr weitergeleitet.
*/
if (datenSenden != null) {
final TMCStatus sendeStatus = getStatus(datenSenden);
// if (sendeStatus == TMCStatus.Aufhebung) {
// if (status != TMCStatus.Loeschung || true) {
// DEBUG.config(text + "\nEs liegt bereits eine Aktualisierung mit
// Status " + sendeStatus
// + " vor - nur Aktualisierungen mit Status " + TMCStatus.Loeschung
// + " werden weitergeleitet"
// + suffixFehler);
// return;
// }
// } else
if (sendeStatus == TMCStatus.Geloescht) {
DEBUG.config(text + "\nEs liegt bereits eine Aktualisierung mit Status " + sendeStatus + " vor"
+ suffixFehler);
return;
}
}
/*
* Zu sendende Daten unter dem Aspekt TMCGeneriert werden dann nicht
......@@ -740,11 +735,13 @@ public class TMCVewMeldung implements ClientReceiverInterface {
if (asp.equals(datenBeschreibungGeneriert.getAspect())) {
final Data datenBearbeitetData = datenBearbeitet != null && datenBearbeitet.hasData()
? datenBearbeitet.getData() : null;
final Zustand zustandBearbeited = datenBearbeitetData != null ? getZustand(datenBearbeitetData) : null;
if ((zustandBearbeited == Zustand.Editiert || zustandBearbeited == Zustand.Verworfen)
&& (datenSenden == null || !(getZustand(datenSenden) == Zustand.Verworfen))) {
final Zustand zustandBearbeitet = datenBearbeitetData != null ? getZustand(datenBearbeitetData) : null;
if ((zustandBearbeitet == Zustand.Editiert || zustandBearbeitet == Zustand.Verworfen)) {
// Gieseler, angepasst für Test 15
// && (datenSenden == null || !(getZustand(datenSenden) ==
// Zustand.Verworfen))) {
DEBUG.config(
text + "\nEs liegen bearbeitete Daten im Zustand " + zustandBearbeited + " vor" + suffixFehler);
text + "\nEs liegen bearbeitete Daten im Zustand " + zustandBearbeitet + " vor" + suffixFehler);
return;
}
}
......@@ -760,7 +757,6 @@ public class TMCVewMeldung implements ClientReceiverInterface {
+ "\" gesetzt, da der Zustand \"" + Zustand.Verworfen + "\" ist";
try {
setStatus(datenSatz, TMCStatus.Geloescht);
loeschen = true;
} catch (final RuntimeException e) {
DEBUG.error(text + "\nFehler beim Setzen von Status auf " + TMCStatus.Geloescht + suffixFehler,
e);
......
......@@ -79,7 +79,9 @@ public class TMCVewSender implements ClientSenderInterface {
private boolean angemeldet;
/**
* @return ist diese Instanz zum DAV-Senden angemeldet?
* Ist diese Instanz zum DAV-Senden angemeldet?
*
* @return <code>true</code>, wenn angemeldet, sonst <code>false</code>
*/
public boolean isAngemeldet() {
return angemeldet;
......@@ -88,14 +90,17 @@ public class TMCVewSender implements ClientSenderInterface {
/**
* Datenbeschreibung "gesendet".
*/
protected final DataDescription _datenBeschreibung;
private final DataDescription datenBeschreibung;
/**
* Übergeordnete Instanz vom Typ TMCVewMeldung.
*/
protected final TMCVewMeldung meldung;
private final TMCVewMeldung meldung;
/**
* Gibt die Datenverteiler-Verbindung zur&uuml;ck.
*
* @return die Datenverteiler-Verbindung
*/
public ClientDavInterface getConnection() {
......@@ -103,7 +108,9 @@ public class TMCVewSender implements ClientSenderInterface {
}
/**
* @return das Dav-Systemobject, für das das Senden von Daten erfolgt
* Gibt das Dav-Systemobject zur&uuml;ck, für das das Senden von Daten erfolgt.
*
* @return {@link SystemObject}
*/
public SystemObject getDavObjekt() {
return meldung.getDavObjekt();
......@@ -121,7 +128,7 @@ public class TMCVewSender implements ClientSenderInterface {
final AttributeGroup atg = getConnection().getDataModel().getAttributeGroup("atg.tmcVerkehrsMeldung");
final Aspect asp = getConnection().getDataModel().getAspect("asp.tmcSenden");
_datenBeschreibung = new DataDescription(atg, asp);
datenBeschreibung = new DataDescription(atg, asp);
// /*
// * Restauriere unter dem Aspekt RDSSenden gesendete Daten aus den
......@@ -132,8 +139,8 @@ public class TMCVewSender implements ClientSenderInterface {
// "atg.rdsMeldung").getData();
try {
getConnection().subscribeSender(this, getDavObjekt(), _datenBeschreibung, ROLLE);
DEBUG.fine(_datenBeschreibung + " zum Senden angemeldet für " + getDavObjekt());
getConnection().subscribeSender(this, getDavObjekt(), datenBeschreibung, ROLLE);
DEBUG.fine(datenBeschreibung + " zum Senden angemeldet für " + getDavObjekt());
} catch (final OneSubscriptionPerSendData e) {
/*
* Es liegt bereits eine Sendeanmeldung von anderer Stelle vor =>
......@@ -151,8 +158,8 @@ public class TMCVewSender implements ClientSenderInterface {
public void dispose() {
stopSenden();
if (angemeldet) {
getConnection().unsubscribeSender(this, getDavObjekt(), _datenBeschreibung);
DEBUG.fine("Senden abgemeldet von " + _datenBeschreibung + " für " + getDavObjekt());
getConnection().unsubscribeSender(this, getDavObjekt(), datenBeschreibung);
DEBUG.fine("Senden abgemeldet von " + datenBeschreibung + " für " + getDavObjekt());
angemeldet = false;
}
}
......@@ -198,13 +205,7 @@ public class TMCVewSender implements ClientSenderInterface {
return true;
}
/*
* (Kein Javadoc)
*
* @see
* de.bsvrz.dav.daf.main.ClientSenderInterface#dataRequest(de.bsvrz.dav.daf.
* main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, byte)
*/
@Override
public void dataRequest(final SystemObject object, final DataDescription dataDescription, final byte state) {
DEBUG.fine("dataRequest() für " + getDavObjekt().getPid() + " - Sender state: " + state);
if (warten && state == ClientSenderInterface.START_SENDING) {
......@@ -214,13 +215,7 @@ public class TMCVewSender implements ClientSenderInterface {
}
}
/*
* (Kein Javadoc)
*
* @see
* de.bsvrz.dav.daf.main.ClientSenderInterface#isRequestSupported(de.bsvrz.
* dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription)
*/
@Override
public boolean isRequestSupported(final SystemObject so, final DataDescription dd) {
return true;
}
......@@ -228,7 +223,7 @@ public class TMCVewSender implements ClientSenderInterface {
/**
* Aktuell unter dem Aspekt senden gesendete Daten.
*/
private ResultData _datenSenden = null;
private ResultData _datenSenden;
/**
* @return die unter dem Aspekt senden aktuell gesendeten Daten
......@@ -380,7 +375,11 @@ public class TMCVewSender implements ClientSenderInterface {
@Override
public void run() {
if (!isAbgebrochen() && verzoegerung > 0) {
// TODO: Gieseler wieder entfernen
DEBUG.fine("Start sleep " + verzoegerung + " ms");
getConnection().sleep(verzoegerung);
// TODO: Gieseler wieder entfernen
DEBUG.fine("Ende sleep " + verzoegerung + " ms");
}
synchronized (TMCVewSender.this) {
try {
......@@ -393,18 +392,18 @@ public class TMCVewSender implements ClientSenderInterface {
&& TMCVewMeldung.getZustand(data) == TMCVewMeldung.Zustand.NichtQuittiert
&& meldung.getRDSMeldungsAktion().equals("0")) {
DEBUG.fine(
text + " werden NICHT unter dem Aspekt " + _datenBeschreibung.getAspect().getName()
text + " werden NICHT unter dem Aspekt " + datenBeschreibung.getAspect().getName()
+ " gesendet, da RDSMeldungsAktion den Wert \""
+ meldung.getRDSMeldungsAktion() + "\" hat");
return;
}
final ResultData resultData = new ResultData(getDavObjekt(), _datenBeschreibung, zeitStempel,
final ResultData resultData = new ResultData(getDavObjekt(), datenBeschreibung, zeitStempel,
data);
if (send(resultData)) {
DEBUG.fine(text + " wurden erfolgreich unter dem Aspekt "
+ _datenBeschreibung.getAspect().getName() + " gesendet");
+ datenBeschreibung.getAspect().getName() + " gesendet");
setDatenSenden(resultData);
......
......@@ -46,7 +46,11 @@ import de.bsvrz.dav.daf.main.config.TimeAttributeType;
* @author BitCtrl Systems GmbH, Gieseler
* @version $Id: $
*/
public class DatenTools {
public final class DatenTools {
private DatenTools() {
}
/**
* Fertigt eine tiefe Kopie der Daten, die in quelle enthalten sind, in ziel
* an. Die Daten von quelle werden rekursiv durchlaufen, es werden alle
......@@ -102,7 +106,7 @@ public class DatenTools {
}
if (quelle.isList()) {
final Iterator it = quelle.iterator();
final Iterator<?> it = quelle.iterator();
while (it.hasNext()) {
final Data subQuelle = (Data) it.next();
final Data subZiel = ziel.getItem(subQuelle.getName());
......
......@@ -166,13 +166,7 @@ public class ParameterSender extends Thread implements ClientSenderInterface {
}
}
/*
* (Kein Javadoc)
*
* @see
* de.bsvrz.dav.daf.main.ClientSenderInterface#dataRequest(de.bsvrz.dav.daf.
* main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, byte)
*/
@Override
public void dataRequest(final SystemObject object, final DataDescription dataDescription, final byte state) {
DEBUG.finest("dataRequest() für " + davObjekt.getPid() + " - Sender state: " + state);
if (warten && state == ClientSenderInterface.START_SENDING) {
......@@ -182,13 +176,7 @@ public class ParameterSender extends Thread implements ClientSenderInterface {
}
}
/*
* (Kein Javadoc)
*
* @see
* de.bsvrz.dav.daf.main.ClientSenderInterface#isRequestSupported(de.bsvrz.
* dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription)
*/
@Override
public boolean isRequestSupported(final SystemObject so, final DataDescription dd) {
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment