Extracted MessageSegmentId and ISegmentId
This commit is contained in:
parent
67ec1700e0
commit
6961f46ee9
|
@ -5,7 +5,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.Segmentkennung
|
|||
import net.dankito.fints.messages.datenelemente.implementierte.Segmentnummer
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.Segmentversion
|
||||
import net.dankito.fints.messages.datenelementgruppen.Datenelementgruppe
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.messages.segmente.id.ISegmentId
|
||||
|
||||
|
||||
open class Segmentkopf @JvmOverloads constructor(
|
||||
|
@ -20,6 +20,6 @@ open class Segmentkopf @JvmOverloads constructor(
|
|||
Segmentversion(segmentVersion) // TODO: how to conditionally add Bezugsegment?
|
||||
), Existenzstatus.Mandatory) {
|
||||
|
||||
constructor(id: SegmentId, segmentVersion: Int, segmentNumber: Int) : this(id.id, segmentVersion, segmentNumber)
|
||||
constructor(id: ISegmentId, segmentVersion: Int, segmentNumber: Int) : this(id.id, segmentVersion, segmentNumber)
|
||||
|
||||
}
|
|
@ -1,19 +1,9 @@
|
|||
package net.dankito.fints.messages.segmente
|
||||
|
||||
import net.dankito.fints.messages.segmente.id.ISegmentId
|
||||
|
||||
enum class SegmentId(val id: String) {
|
||||
|
||||
MessageHeader("HNHBK"),
|
||||
|
||||
MessageEnding("HNHBS"),
|
||||
|
||||
EncryptionHeader("HNVSK"),
|
||||
|
||||
EncryptionData("HNVSD"),
|
||||
|
||||
SignatureHeader("HNSHK"),
|
||||
|
||||
SignatureEnding("HNSHA"),
|
||||
enum class SegmentId(override val id: String) : ISegmentId {
|
||||
|
||||
DialogEnd("HKEND"),
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package net.dankito.fints.messages.segmente.id
|
||||
|
||||
|
||||
interface ISegmentId {
|
||||
|
||||
val id: String
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package net.dankito.fints.messages.segmente.id
|
||||
|
||||
|
||||
enum class MessageSegmentId(override val id: String) : ISegmentId {
|
||||
|
||||
MessageHeader("HNHBK"),
|
||||
|
||||
MessageEnding("HNHBS"),
|
||||
|
||||
EncryptionHeader("HNVSK"),
|
||||
|
||||
EncryptionData("HNVSD"),
|
||||
|
||||
SignatureHeader("HNSHK"),
|
||||
|
||||
SignatureEnding("HNSHA")
|
||||
|
||||
}
|
|
@ -4,7 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
|||
import net.dankito.fints.messages.datenelemente.implementierte.Nachrichtennummer
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.messages.segmente.id.MessageSegmentId
|
||||
import net.dankito.fints.model.DialogData
|
||||
|
||||
|
||||
|
@ -16,6 +16,6 @@ open class Nachrichtenabschluss(
|
|||
dialogData: DialogData
|
||||
|
||||
) : Segment(listOf(
|
||||
Segmentkopf(SegmentId.MessageEnding, 1, segmentNumber),
|
||||
Segmentkopf(MessageSegmentId.MessageEnding, 1, segmentNumber),
|
||||
Nachrichtennummer(dialogData.messageNumber)
|
||||
), Existenzstatus.Mandatory)
|
|
@ -3,8 +3,8 @@ package net.dankito.fints.messages.segmente.implementierte
|
|||
import net.dankito.fints.messages.Existenzstatus
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.*
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||
import net.dankito.fints.messages.segmente.id.MessageSegmentId
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.model.DialogData
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ open class Nachrichtenkopf(
|
|||
dialogData: DialogData
|
||||
|
||||
) : Segment(listOf(
|
||||
Segmentkopf(SegmentId.MessageHeader, 3, segmentNumber),
|
||||
Segmentkopf(MessageSegmentId.MessageHeader, 3, segmentNumber),
|
||||
Nachrichtengroesse(messageSize),
|
||||
HbciVersionDatenelement(HbciVersion.FinTs_3_0_0),
|
||||
DialogId(dialogData.dialogId),
|
||||
|
|
|
@ -6,7 +6,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.signatur.Sicherhe
|
|||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.BenutzerdefinierteSignatur
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.messages.segmente.id.MessageSegmentId
|
||||
|
||||
|
||||
/**
|
||||
|
@ -19,7 +19,7 @@ open class Signaturabschluss(
|
|||
pinOrTan: String
|
||||
)
|
||||
: Segment(listOf(
|
||||
Segmentkopf(SegmentId.SignatureEnding, 2, segmentNumber),
|
||||
Segmentkopf(MessageSegmentId.SignatureEnding, 2, segmentNumber),
|
||||
Sicherheitskontrollreferenz(securityControlReference), // has to be the same as in Signaturkopf
|
||||
NotAllowedDatenelement(), // only used for HBCI, not allowed for PIN/TAN
|
||||
BenutzerdefinierteSignatur(pinOrTan)
|
||||
|
|
|
@ -5,7 +5,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.signatur.*
|
|||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.*
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.messages.segmente.id.MessageSegmentId
|
||||
import net.dankito.fints.model.BankData
|
||||
import net.dankito.fints.model.CustomerData
|
||||
|
||||
|
@ -36,7 +36,7 @@ open class Signaturkopf(
|
|||
keyVersion: Int
|
||||
|
||||
) : Segment(listOf(
|
||||
Segmentkopf(SegmentId.SignatureHeader, 4, segmentNumber), // allowed
|
||||
Segmentkopf(MessageSegmentId.SignatureHeader, 4, segmentNumber), // allowed
|
||||
Sicherheitsprofil(customer.securityMethod!!, customer.version!!), // allowed: method: RAH, PIN;
|
||||
SicherheitsfunktionKodiert(customer.selectedTanProcedure?.securityFunction!!), // allowed: 1, 2
|
||||
Sicherheitskontrollreferenz(securityControlReference), // allowed: <>0
|
||||
|
|
|
@ -4,7 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
|||
import net.dankito.fints.messages.datenelemente.implementierte.encryption.PinTanVerschluesselteDatenDatenelement
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.messages.segmente.id.MessageSegmentId
|
||||
|
||||
|
||||
/**
|
||||
|
@ -14,6 +14,6 @@ open class VerschluesselteDaten(
|
|||
payload: String
|
||||
|
||||
) : Segment(listOf(
|
||||
Segmentkopf(SegmentId.EncryptionData, 1, 999),
|
||||
Segmentkopf(MessageSegmentId.EncryptionData, 1, 999),
|
||||
PinTanVerschluesselteDatenDatenelement(payload)
|
||||
), Existenzstatus.Mandatory)
|
|
@ -12,7 +12,7 @@ import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.Si
|
|||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.SicherheitsidentifikationDetails
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.Sicherheitsprofil
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
import net.dankito.fints.messages.segmente.id.MessageSegmentId
|
||||
import net.dankito.fints.model.BankData
|
||||
import net.dankito.fints.model.CustomerData
|
||||
|
||||
|
@ -45,7 +45,7 @@ open class Verschluesselungskopf(
|
|||
algorithm: Komprimierungsfunktion
|
||||
|
||||
) : Segment(listOf(
|
||||
Segmentkopf(SegmentId.EncryptionHeader, 3, 998),
|
||||
Segmentkopf(MessageSegmentId.EncryptionHeader, 3, 998),
|
||||
Sicherheitsprofil(customer.securityMethod!!, customer.version!!),
|
||||
SicherheitsfunktionKodiert(Sicherheitsfunktion.Klartext), // allowed: 4
|
||||
RolleDesSicherheitslieferantenKodiert(), // allowed: 1, 4
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package net.dankito.fints.messages.segmente.implementierte
|
||||
|
||||
import net.dankito.fints.messages.Existenzstatus
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.NotAllowedDatenelement
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.*
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.Auftragsreferenz
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TANProzessDatenelement
|
||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanProcess
|
||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||
import net.dankito.fints.messages.segmente.Segment
|
||||
import net.dankito.fints.messages.segmente.SegmentId
|
||||
|
@ -20,11 +21,11 @@ open class ZweiSchrittTanEinreichung(
|
|||
|
||||
) : Segment(listOf(
|
||||
Segmentkopf(SegmentId.Tan, 6, segmentNumber),
|
||||
TANProzessDatenelement(process),
|
||||
// AuftragsHashwert(), // M: bei AuftragsHashwertverfahren<>0 und TAN-Prozess=1. N: sonst
|
||||
Auftragsreferenz(jobReference, Existenzstatus.Mandatory), // M: bei TAN-Prozess=2, 3, 4. O: bei TAN-Prozess=1
|
||||
ChallengeVersion3(challenge, Existenzstatus.Mandatory), // M: bei TAN-Prozess=1, 3, 4. O: bei TAN-Prozess=2
|
||||
ChallengeHHD_UC(challgendHHD_UC, Existenzstatus.Optional),
|
||||
NotAllowedDatenelement(), // GueltigkeitsdatumUndUhrzeitFuerChallenge // TODO: how to not write an element if it's optional and its paramters (date and time) are not set?
|
||||
BezeichnungDesTANMediums(tanMediaIdentifier ?: "", Existenzstatus.Optional)// M: bei TAN-Prozess=1, 3, 4 und „Anzahl unterstützter aktiver TAN-Medien“ nicht vorhanden. O: sonst
|
||||
TANProzessDatenelement(process),
|
||||
// AuftragsHashwert(), // M: bei AuftragsHashwertverfahren<>0 und TAN-Prozess=1. N: sonst
|
||||
Auftragsreferenz(jobReference, Existenzstatus.Mandatory) // M: bei TAN-Prozess=2, 3, 4. O: bei TAN-Prozess=1
|
||||
// ChallengeVersion3(challenge, Existenzstatus.Mandatory), // M: bei TAN-Prozess=1, 3, 4. O: bei TAN-Prozess=2
|
||||
// ChallengeHHD_UC(challgendHHD_UC, Existenzstatus.Optional),
|
||||
// NotAllowedDatenelement(), // GueltigkeitsdatumUndUhrzeitFuerChallenge // TODO: how to not write an element if it's optional and its paramters (date and time) are not set?
|
||||
// BezeichnungDesTANMediums(tanMediaIdentifier ?: "", Existenzstatus.Optional)// M: bei TAN-Prozess=1, 3, 4 und „Anzahl unterstützter aktiver TAN-Medien“ nicht vorhanden. O: sonst
|
||||
), Existenzstatus.Mandatory)
|
Loading…
Reference in New Issue