public void setSegVersion ( int version ) { if ( version < 1 ) { log . warn ( "tried to change segment version for task " + this . jobName + " explicit, but no version given" ) ; return ; } // Wenn sich die Versionsnummer nicht geaendert hat, muessen wir die // Huehner ja nicht verrueckt machen ;) if ( version == this . segVersion ) return ; log . info ( "changing segment version for task " + this . jobName + " explicit from " + this . segVersion + " to " + version ) ; // Der alte Name String oldName = this . name ; // Neuer Name und neue Versionsnummer this . segVersion = version ; this . name = this . jobName + version ; // Bereits gesetzte llParams fixen String [ ] names = this . llParams . keySet ( ) . toArray ( new String [ 0 ] ) ; for ( String s : names ) { if ( ! s . startsWith ( oldName ) ) continue ; // nicht betroffen // Alten Schluessel entfernen und neuen einfuegen String value = this . llParams . get ( s ) ; String newName = s . replaceFirst ( oldName , this . name ) ; this . llParams . remove ( s ) ; this . llParams . put ( newName , value ) ; } // Destination-Namen in den LowLevel-Parameter auf den neuen Namen umbiegen constraints . forEach ( ( frontendName , values ) -> { for ( String [ ] value : values ) { // value[0] ist das Target if ( ! value [ 0 ] . startsWith ( oldName ) ) continue ; // Hier ersetzen wir z.Bsp. "TAN2Step5.process" gegen "TAN2Step3.process" value [ 0 ] = value [ 0 ] . replaceFirst ( oldName , this . name ) ; } } ) ; }
Legt die Versionsnummer des Segments manuell fest . Ist u . a . noetig um HKTAN - Segmente in genau der Version zu senden in der auch die HITANS empfangen wurden . Andernfalls koennte es passieren dass wir ein HKTAN mit einem TAN - Verfahren senden welches in dieser HKTAN - Version gar nicht von der Bank unterstuetzt wird . Das ist ein Dirty - Hack ich weiss ; ) Falls das noch IRGENDWO anders verwendet wird muss man hoellisch aufpassen dass alle Stellen wo this . name bzw . this . segVersion direkt oder indirekt verwendet wurde ebenfalls beruecksichtigt werden .