Commit fd742da5 authored by Steffen Gieseler's avatar Steffen Gieseler

weiter bearbeitet

git-svn-id: svn://ntoserver/Datenverteiler/VRZ3/trunk/de.bsvrz.ste.tmcvew@63058 40c0be50-5d29-0410-901d-fb59edb5cafc
parent 63714ea3
......@@ -178,13 +178,13 @@ public class TMCVewMeldung implements ClientReceiverInterface {
Geaendert("Geändert", 2),
/** Gelöscht. */
Geloescht("Gelöscht", 3),
Geloescht("Gelöscht", 3);
@Deprecated
Aufhebung("Aufhebung", 300),
@Deprecated
Loeschung("Loeschung", 301);
// @Deprecated
// Aufhebung("Aufhebung", 300),
//
// @Deprecated
// Loeschung("Loeschung", 301);
/**
* textueller Wert.
......@@ -592,7 +592,7 @@ public class TMCVewMeldung implements ClientReceiverInterface {
/**
* Prüft die übergebenen Daten und gibt sie ggf. zum Senden frei oder loggt
* entsprechende Fehlermeldung ins
* entsprechende Fehlermeldung.
*
* @param data
* die aktuell weiterzuleitenden Daten
......@@ -707,28 +707,29 @@ public class TMCVewMeldung implements ClientReceiverInterface {
final Data datenSenden = sender.getDatenSenden() != null && sender.getDatenSenden().hasData()
? sender.getDatenSenden().getData() : null;
/*
* 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;
}
}
}
// 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;
// }
// }
// }
/*
* Zu sendende Daten unter dem Aspekt TMCGeneriert werden dann nicht
......@@ -739,8 +740,8 @@ public class TMCVewMeldung implements ClientReceiverInterface {
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) &&
// !(sendeStatus == Status.Aufhebung && status == Status.Löschung))
if ((zustandBearbeited == Zustand.Editiert || zustandBearbeited == Zustand.Verworfen)
&&
(datenSenden == null || !(getZustand(datenSenden) == Zustand.Verworfen))) {
DEBUG.config(
text + "\nEs liegen bearbeitete Daten im Zustand " + zustandBearbeited + " vor" + suffixFehler);
......@@ -750,17 +751,17 @@ public class TMCVewMeldung implements ClientReceiverInterface {
/*
* Wenn zu sendende Daten unter dem Aspekt TMCBearbeitet den Zustand
* verworfen haben, wird mindestens der Status Aufhebung erzwungen
* 'verworfen' haben, wird mindestens der Status 'Gelöscht' erzwungen
*/
if (asp.equals(datenBeschreibungBearbeitet.getAspect())) {
if (zustand == Zustand.Verworfen) {
if (status != TMCStatus.Aufhebung && status != TMCStatus.Loeschung) {
text += "\nDer Status wird auf \"" + TMCStatus.Aufhebung + "\" gesetzt, da der Zustand \""
if (status != TMCStatus.Geloescht) {
text += "\nDer Status wird auf \"" + TMCStatus.Geloescht.toString() + "\" gesetzt, da der Zustand \""
+ Zustand.Verworfen + "\" ist";
try {
setStatus(datenSatz, TMCStatus.Aufhebung);
setStatus(datenSatz, TMCStatus.Geloescht);
} catch (final RuntimeException e) {
DEBUG.error(text + "\nFehler beim Setzen von Status auf " + TMCStatus.Aufhebung + suffixFehler, e);
DEBUG.error(text + "\nFehler beim Setzen von Status auf " + TMCStatus.Geloescht + suffixFehler, e);
return;
}
}
......@@ -775,35 +776,36 @@ public class TMCVewMeldung implements ClientReceiverInterface {
*/
boolean loeschen = false;
switch (verwaltung.getLoeschVerfahren()) {
case 0:
/*
* Wenn Status Aufhebung oder Löschung gesendet werden soll und
* bisher noch keine Daten gesendet wurden, wird die Aktualisierung
* unterdrückt und die Meldung gelöscht.
*/
if ((status == TMCStatus.Aufhebung || status == TMCStatus.Loeschung)
&& (sender.getDatenSenden() == null || !sender.getDatenSenden().hasData())) {
text += "\nStatus " + status + " wurde empfangen und es wurde bisher noch nichts gesendet";
loeschen = true;
}
break;
case 1:
/*
* Wenn Status Aufhebung gesendet werden soll und bisher noch keine
* Daten gesendet wurden oder wenn Löschung gesendet werden soll,
* wird die Aktualisierung unterdrückt und die Meldung gelöscht.
*/
if (status == TMCStatus.Aufhebung && (sender.getDatenSenden() == null || !sender.getDatenSenden().hasData())) {
text += "\nStatus " + status + " wurde empfangen und es wurde bisher noch nichts gesendet";
loeschen = true;
} else if (status == TMCStatus.Loeschung) {
text += "\nStatus " + status + " wurde empfangen";
loeschen = true;
}
break;
}
// TODO:
// switch (verwaltung.getLoeschVerfahren()) {
// case 0:
// /*
// * Wenn Status Aufhebung oder Löschung gesendet werden soll und
// * bisher noch keine Daten gesendet wurden, wird die Aktualisierung
// * unterdrückt und die Meldung gelöscht.
// */
// if ((status == TMCStatus.Aufhebung || status == TMCStatus.Loeschung)
// && (sender.getDatenSenden() == null || !sender.getDatenSenden().hasData())) {
// text += "\nStatus " + status + " wurde empfangen und es wurde bisher noch nichts gesendet";
// loeschen = true;
// }
// break;
//
// case 1:
// /*
// * Wenn Status Aufhebung gesendet werden soll und bisher noch keine
// * Daten gesendet wurden oder wenn Löschung gesendet werden soll,
// * wird die Aktualisierung unterdrückt und die Meldung gelöscht.
// */
// if (status == TMCStatus.Aufhebung && (sender.getDatenSenden() == null || !sender.getDatenSenden().hasData())) {
// text += "\nStatus " + status + " wurde empfangen und es wurde bisher noch nichts gesendet";
// loeschen = true;
// } else if (status == TMCStatus.Loeschung) {
// text += "\nStatus " + status + " wurde empfangen";
// loeschen = true;
// }
// break;
// }
if (loeschen) {
DEBUG.config(text + suffixFehler + "\nAktuelle Meldung wird gelöscht");
......
......@@ -99,14 +99,14 @@ public class RdsMeldungTest2 {
*/
@Test
public void testTestfall() throws Exception {
// try {
boolean testfall = m.testfall(connection, "Testfall2", 1);
System.out.println("TESTFALL: " + testfall);
// assertTrue("Test 2", m.testfall(connection, "Testfall2", 1));
// } catch (final Exception e) {
// e.printStackTrace();
// assertEquals("Test 2", e.getMessage(), "Ungültige Exeption geworfen");
// }
try {
// final boolean testfall = m.testfall(connection, "Testfall2", 1);
// System.out.println("TESTFALL: " + testfall);
assertTrue("Test 2", m.testfall(connection, "Testfall2", 1));
} catch (final Exception e) {
e.printStackTrace();
assertEquals("Test 2", e.getMessage(), "Ungültige Exeption geworfen");
}
System.out.println("TESTTEST");
}
}
......@@ -25,15 +25,10 @@
package de.bsvrz.ste.tmcvew;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import de.bsvrz.dav.daf.main.ClientDavConnection;
import de.bsvrz.dav.daf.main.ClientDavInterface;
......@@ -43,8 +38,6 @@ import de.bsvrz.dav.daf.main.DataDescription;
import de.bsvrz.dav.daf.main.ReceiveOptions;
import de.bsvrz.dav.daf.main.ReceiverRole;
import de.bsvrz.dav.daf.main.ResultData;
import de.bsvrz.dav.daf.main.Data.Array;
import de.bsvrz.dav.daf.main.Data.ReferenceValue;
import de.bsvrz.dav.daf.main.config.Aspect;
import de.bsvrz.dav.daf.main.config.AttributeGroup;
import de.bsvrz.dav.daf.main.config.SystemObject;
......@@ -124,40 +117,41 @@ public class RdsMeldungsEmpfang implements ClientReceiverInterface
* Tritt eine {@link Exception} auf wird der entsprechende Offset auf 0 gesetzt.
* @param arg0 beinhaltet die empfangenen Daten
*/
public void update( ResultData[] arg0 )
{
public void update(final ResultData[] arg0) {
//Alle empfangene Daten auslesen
for (int i = 0; i < arg0.length; i++)
{
ResultData dat = arg0[i];
for (int i = 0; i < arg0.length; i++) {
final ResultData dat = arg0[i];
//----------------------------------------------------------------------
// Auslesen der "atg.rdsMeldung"
// Auslesen der "atg.tmcVerkehrsMeldung"
//----------------------------------------------------------------------
if (dat.getDataDescription().getAttributeGroup().getPid().equals(m_atg))
{
if (dat.getDataDescription().getAttributeGroup().getPid().equals(m_atg)) {
// Absender feststellen
String absenderPid = dat.getObject().getPid();
final String absenderPid = dat.getObject().getPid();
if (dat.hasData()) {
final Data vewInfo = dat.getData().getItem("TMCDaten").getItem("VerwaltungsInformationen");
if (dat.hasData())
{
Data vewInfo = dat.getData().getItem("Version").getItem("VerwaltungsInformationen");
//Data vewInfo = dat.getData().getItem("Version").getItem("VerwaltungsInformationen");
m_status = vewInfo.getTextValue( "Status" ).getText();
m_status = vewInfo.getTextValue("TmcStatus").getText();
m_zustand = vewInfo.getItem( "Zustand" ).asTextValue().getValueText();
m_zustand = vewInfo.getItem("BearbeitungsZustand").asTextValue().getValueText();
m_quelle = vewInfo.getItem( "Quelle" ).asTextValue().getValueText();
m_quelle = vewInfo.getItem("Erzeugungsart").asTextValue().getValueText();
System.out.println("*RdsMeldung von Verwaltung: " + new Date().toString() +" "+m_pid+": Meldungsart: "+m_status+
" Status: "+m_zustand+" Quelle: "+m_quelle);
System.out.println("*RdsMeldung von Verwaltung: " + new Date().toString() + " " + m_pid
+ ": Meldungsart: " + m_status
+ " Status: " + m_zustand + " Quelle: " + m_quelle);
debug.info("*RdsMeldung von Verwaltung: " + new Date().toString() +" "+m_pid+": Meldungsart: "+m_status+
" Status: "+m_zustand+" Quelle: "+m_quelle);
debug.info("*RdsMeldung von Verwaltung: " + new Date().toString()
+ " " + m_pid + ": Meldungsart: " + m_status
+ " Status: " + m_zustand + " Quelle: " + m_quelle);
benachrichtigeListener();
......
/*
* Segment 7 (Ste), SWE TMC-Meldungsverwaltung
* Copyright (C) 2016 BitCtrl Systems GmbH
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This programm is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Contact Information:
* BitCtrl Systems GmbH
* Weißenfelser Straße 67
* 04229 Leipzig
* Phone: +49 341-490670
* mailto: info@bitctrl.de
*/
/** Testklassen. */
package de.bsvrz.ste.tmcvew;
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