Package org.kapott.hbci.GV.generators

# Interface ISEPAGenerator<T>

Type Parameters:
  `T` - Die konkrete Struktur, aus der die Daten gelesen werden.

All Known Implementing Classes:
  `AbstractSEPAGenerator`, `GenKUmsAllCamt05200107`, `GenLastSEPA00800101`, `GenLastSEPA00800102`, `GenLastSEPA00800108`, `GenLastSEPA00800110`, `GenLastSEPA00800201`, `GenLastSEPA00800202`, `GenLastSEPA00800302`, `GenUebSEPA00100102`, `GenUebSEPA00100103`, `GenUebSEPA00100109`, `GenUebSEPA00100111`, `GenUebSEPA00100202`, `GenUebSEPA00100203`, `GenUebSEPA00100303`

public interface ISEPAGenerator<T>
Basis-Interface fuer alle SEPA-Job-Generatoren.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ENCODING`
Das verwendete Encoding.

## Method Summary

Modifier and Type
Method
Description
`void`
`generate(T source, OutputStream os, boolean validate)`
Schreibt den Job als SEPA-XML in den Stream.
`SepaVersion`
`getSepaVersion()`
Liefert die SEPA-Version des Generators.

## Field Details

### ENCODING

static final String ENCODING
Das verwendete Encoding. UTF-8. Siehe Siehe http://www.onlinebanking-forum.de/forum/topic.php?p=107420#real107420

See Also:
  - Constant Field Values

## Method Details

### generate

void generate(T source, OutputStream os, boolean validate) throws Exception
Schreibt den Job als SEPA-XML in den Stream.

Parameters:
  `source` - die zu generierenden Daten. Urspruenglich wurde hier direkt eine Instanz von "AbstractSEPAGV" uebergeben und dort job.getSEPAParam($targetname(ohne "sepa.") aufgerufen. Das hatte jedoch den Nachteil, dass fuer die Instanziierung eines "AbstractSEPAGV" (welche von "HBCIJobImpl" abgeleitet ist) ein HBCIHandler erforderlicher. Der erfordert jedoch einen initialisierten und geoeffneten Passport, was wiederrum bedeutet, dass das SEPA-XML nur innerhalb eines HBCI-Dialogs erzeugt werden kann. Schon allein zur besseren Testbarkeit sollte sich das XML jedoch auch ohne HBCI-Initialisierung erstellen lassen. Daher werden hier nur noch die Properties uebergeben aus denen sich der SEPA-Generator dann anhand der Parameternamen bedient.
  `os` - der Stream.
  `validate` - true, wenn das erzeugte XML gegen das PAIN-Schema validiert werden soll.
Throws:
  `Exception`

### getSepaVersion

SepaVersion getSepaVersion()
Liefert die SEPA-Version des Generators. Wenn die Methode implementiert wurde und eine "vollqualifizierte" SEPA-Version zurueckliefert, in der sowohl URN als auch FILE gesetzt sind, dann wird die Schema-Location dem Marshaller mittels "Marshaller.JAXB_SCHEMA_LOCATION" uebergeben, was bewirkt, dass im Root-Element das Attribute "xsi:schemaLocation" gesetzt wird. Ausserdem kann dann die Schema-Validierung aktiviert werden.

Returns:
  die zu deklarierende Schema-Location oder NULL, falls nichts angegeben werden soll.