Package org.kapott.hbci.GV

## Class AbstractSEPAGV

- java.lang.Object
- - org.kapott.hbci.GV.HBCIJobImpl
  - - org.kapott.hbci.GV.AbstractSEPAGV

All Implemented Interfaces:
  `HBCIJob`

Direct Known Subclasses:
  `AbstractGVLastSEPA`, `GVDauerSEPADel`, `GVDauerSEPAEdit`, `GVDauerSEPAList`, `GVDauerSEPANew`, `GVKUmsAllCamt`, `GVTermUebSEPA`, `GVTermUebSEPADel`, `GVTermUebSEPAEdit`, `GVTermUebSEPAList`, `GVUebSEPA`, `GVUmbSEPA`

    public abstract class AbstractSEPAGV
    extends HBCIJobImpl

Abstrakte Basis-Klasse fuer JAXB-basierte SEPA-Jobs.

### Field Summary

Fields
`static java.lang.String` `ENDTOEND_ID_NOTPROVIDED` Token, der als End-to-End ID Platzhalter verwendet wird, wenn keine angegeben wurde.
`protected java.util.Properties` `sepaParams`

### Fields inherited from class org.kapott.hbci.GV.HBCIJobImpl

`jobResult`

### Constructor Summary

Constructors
`AbstractSEPAGV​(HBCIHandler handler, java.lang.String name)` ct.
`AbstractSEPAGV​(HBCIHandler handler, java.lang.String name, HBCIJobResultImpl jobResult)` ct.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected void` `addConstraint​(java.lang.String frontendName, java.lang.String destinationName, java.lang.String defValue, int logFilterLevel, boolean indexed)`
`protected void` `createSEPAFromParams()` Erstellt die XML für diesen Job und schreibt diese in den _sepapain Parameter des Jobs
`protected abstract SepaVersion` `getDefaultPainVersion()` Liefert die Default-PAIN-Version, das verwendet werden soll, wenn von der Bank keine geliefert wurden.
`java.lang.String` `getLowlevelParam​(java.lang.String key)` This is needed for verifyConstraints().
`java.lang.String` `getPainJobName()` Referenzierter pain-Jobname.
`protected abstract SepaVersion.Type` `getPainType()` Liefert den PAIN-Type.
`protected SepaVersion` `getPainVersion()` Liefert den zu verwendenden PAIN-Version fuer die HBCI-Nachricht.
`protected ISEPAGenerator` `getSEPAGenerator()` Liefert den passenden SEPA-Generator.
`java.lang.String` `getSEPAMessageId()` Gibt die SEPA Message ID als String zurück.
`java.lang.String` `getSEPAParam​(java.lang.String name)` Liest den Parameter zu einem gegeben Key aus dem speziellen SEPA Parametern aus
`protected void` `setLowlevelParam​(java.lang.String key, java.lang.String value)`
`protected void` `setSEPAParam​(java.lang.String name, java.lang.String value)`
`void` `verifyConstraints()` Bei SEPA Geschäftsvorfällen müssen wir verifyConstraints überschreiben um die SEPA XML zu generieren

### Methods inherited from class org.kapott.hbci.GV.HBCIJobImpl

`acceptsParam, addConstraint, addSignaturePassport, addToQueue, addToQueue, applyOffset, canNationalAcc, checkAccountCRC, createJobSegment, createJobSegment, extractResults, fillJobResult, fillJobResultFromTanJob, getChallengeParam, getExternalId, getHBCICode, getJobName, getJobParameterNames, getJobRestrictions, getJobResult, getJobResultNames, getLowlevelParams, getMainPassport, getMaxNumberPerMsg, getMinSigs, getName, getOrderAccount, getParentHandler, getSecurityClass, getSegVersion, getSignaturePassports, haveTan, redo, redoAllowed, saveReturnValues, setExternalId, setIdx, setParam, setParam, setParam, setParam, setParam, setParam, setParam, setParam, setParam, setSegVersion, skip, skipped, tanApplied, twoDigitValueInList`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### ENDTOEND_ID_NOTPROVIDED

    public static final java.lang.String ENDTOEND_ID_NOTPROVIDED

Token, der als End-to-End ID Platzhalter verwendet wird, wenn keine angegeben wurde. In pain.001.001.02 wurde dieser Token noch explizit erwaehnt. Inzwischen nicht mehr. Nach Ruecksprache mit Holger vom onlinebanking-forum.de weiss ich aber, dass VRNetworld den auch verwendet und er von Banken als solcher erkannt wird.

See Also:
  Constant Field Values

#### sepaParams

    protected final java.util.Properties sepaParams

### Constructor Detail

#### AbstractSEPAGV

    public AbstractSEPAGV​(HBCIHandler handler,
                          java.lang.String name)

ct.

Parameters:
  `handler` -
  `name` -

#### AbstractSEPAGV

    public AbstractSEPAGV​(HBCIHandler handler,
                          java.lang.String name,
                          HBCIJobResultImpl jobResult)

ct.

Parameters:
  `handler` -
  `name` -
  `jobResult` -

### Method Detail

#### getDefaultPainVersion

    protected abstract SepaVersion getDefaultPainVersion()

Liefert die Default-PAIN-Version, das verwendet werden soll, wenn von der Bank keine geliefert wurden.

Returns:
  Default-Pain-Version.

#### getPainType

    protected abstract SepaVersion.Type getPainType()

Liefert den PAIN-Type.

Returns:
  der PAIN-Type.

#### setLowlevelParam

    protected void setLowlevelParam​(java.lang.String key,
                                    java.lang.String value)

Overrides:
  `setLowlevelParam` in class `HBCIJobImpl`
See Also:
  `This is needed to "redirect" the sepa values. They dont have to stored directly in the message, but have to go into the SEPA document which will by created later (in verifyConstraints())`

#### getLowlevelParam

    public java.lang.String getLowlevelParam​(java.lang.String key)

This is needed for verifyConstraints(). Because verifyConstraints() tries to read the lowlevel-values for each constraint, the lowlevel-values for sepa.xxx would always be empty (because they do not exist in hbci messages). So we read the sepa lowlevel-values from the special sepa structure instead from the lowlevel params for the message

Overrides:
  `getLowlevelParam` in class `HBCIJobImpl`
Parameters:
  `key` -
Returns:
  the lowlevel param.

#### getSEPAMessageId

    public java.lang.String getSEPAMessageId()

Gibt die SEPA Message ID als String zurück. Existiert noch keine wird sie aus Datum und User ID erstellt.

Returns:
  SEPA Message ID

#### getSEPAGenerator

    protected final ISEPAGenerator getSEPAGenerator()

Liefert den passenden SEPA-Generator.

Returns:
  der SEPA-Generator.

#### getPainVersion

    protected SepaVersion getPainVersion()

Liefert den zu verwendenden PAIN-Version fuer die HBCI-Nachricht.

Returns:
  der zu verwendende PAIN-Version fuer die HBCI-Nachricht.

#### createSEPAFromParams

    protected void createSEPAFromParams()

Erstellt die XML für diesen Job und schreibt diese in den _sepapain Parameter des Jobs

#### addConstraint

    protected void addConstraint​(java.lang.String frontendName,
                                 java.lang.String destinationName,
                                 java.lang.String defValue,
                                 int logFilterLevel,
                                 boolean indexed)

Overrides:
  `addConstraint` in class `HBCIJobImpl`
See Also:
  `Ueberschrieben, um die Default-Werte der SEPA-Parameter vorher rauszufischen und in "this.sepaParams" zu speichern. Die brauchen wir "createSEPAFromParams" beim Erstellen des XML - sie wuerden dort sonst aber fehlen, weil Default-Werte eigentlich erst in "verifyConstraints" uebernommen werden.`

#### verifyConstraints

    public void verifyConstraints()

Bei SEPA Geschäftsvorfällen müssen wir verifyConstraints überschreiben um die SEPA XML zu generieren

Overrides:
  `verifyConstraints` in class `HBCIJobImpl`

#### setSEPAParam

    protected void setSEPAParam​(java.lang.String name,
                                java.lang.String value)

#### getSEPAParam

    public java.lang.String getSEPAParam​(java.lang.String name)

Liest den Parameter zu einem gegeben Key aus dem speziellen SEPA Parametern aus

Parameters:
  `name` -
Returns:
  Value

#### getPainJobName

    public java.lang.String getPainJobName()

Referenzierter pain-Jobname. Bei vielen Geschäftsvorfällen (z.B. Daueraufträgen) wird die pain der Einzeltransaktion verwendet.

Returns:
  Value