Package org.kapott.hbci.sepa

# Class SepaVersion

java.lang.Object
org.kapott.hbci.sepa.SepaVersion

All Implemented Interfaces:
  `Comparable<SepaVersion>`

public class SepaVersion extends Object implements Comparable<SepaVersion>
Basis-Klasse fuer das Parsen und Vergleichen von SEPA Versionen (PAIN und CAMT).

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`SepaVersion.Type`
Enum fuer die Gruppierung der verschienden Typen von Geschaeftsvorfaellen.

## Field Summary

Fields
Modifier and Type
Field
Description
`static SepaVersion`
`CAMT_052_001_01`
`static SepaVersion`
`CAMT_052_001_02`
`static SepaVersion`
`CAMT_052_001_03`
`static SepaVersion`
`CAMT_052_001_04`
`static SepaVersion`
`CAMT_052_001_05`
`static SepaVersion`
`CAMT_052_001_06`
`static SepaVersion`
`CAMT_052_001_07`
`static SepaVersion`
`CAMT_052_001_08`
`static SepaVersion`
`CAMT_052_001_09`
`static SepaVersion`
`PAIN_001_001_02`
`static SepaVersion`
`PAIN_001_001_03`
`static SepaVersion`
`PAIN_001_001_09`
`static SepaVersion`
`PAIN_001_001_11`
`static SepaVersion`
`PAIN_001_002_02`
`static SepaVersion`
`PAIN_001_002_03`
`static SepaVersion`
`PAIN_001_003_03`
`static SepaVersion`
`PAIN_002_001_03`
`static SepaVersion`
`PAIN_002_001_10`
`static SepaVersion`
`PAIN_002_001_11`
`static SepaVersion`
`PAIN_002_002_02`
`static SepaVersion`
`PAIN_002_003_03`
`static SepaVersion`
`PAIN_008_001_01`
`static SepaVersion`
`PAIN_008_001_02`
`static SepaVersion`
`PAIN_008_001_08`
`static SepaVersion`
`PAIN_008_001_10`
`static SepaVersion`
`PAIN_008_002_01`
`static SepaVersion`
`PAIN_008_002_02`
`static SepaVersion`
`PAIN_008_003_02`

## Method Summary

Modifier and Type
Method
Description
`static SepaVersion`
`autodetect(InputStream xml)`
Ermittelt die SEPA-Version aus dem uebergebenen XML-Stream.
`static SepaVersion`
`byURN(String urn)`
Liefert die SEPA-Version aus dem URN.
`boolean`
`canGenerate(String jobName)`
Prueft, ob fuer die SEPA-Version ein Generator vorhanden ist, der fuer den angegebenen HBCI4Java-Job die SEPA-XML-Dateien erzeugen kann.
`boolean`
`canParse()`
Prueft, ob fuer die SEPA-Version ein Parser vorhanden ist, der SEPA-XML-Dateien dieser Version lesen kann.
`static SepaVersion`
`choose(String sepadesc, String sepadata)`
Die Bank sendet in ihren Antworten sowohl den SEPA-Deskriptor als auch die SEPA-Daten (die XML-Datei) selbst.
`int`
`compareTo(SepaVersion v)`
`boolean`
`equals(Object obj)`
`static SepaVersion`
`findGreatest(List<SepaVersion> list)`
Findet in den der Liste die hoechste SEPA-Version.
`String`
`getFile()`
Liefert den Dateinamen des Schemas insofern bekannt.
`String`
`getGeneratorClass(String jobName)`
Erzeugt den Namen der Java-Klasse des zugehoerigen SEPA-Generators.
`static List<SepaVersion>`
`getKnownVersions(SepaVersion.Type t)`
Liefert eine Liste der bekannten SEPA-Versionen fuer den angegebenen Typ.
`int`
`getMajor()`
Liefert die Major-Versionsnumer.
`int`
`getMinor()`
Liefert die Minor-Versionsnumer.
`String`
`getParserClass()`
Erzeugt den Namen der Java-Klasse des zugehoerigen SEPA-Parsers.
`String`
`getSchemaLocation()`
Liefert einen String "<URN> <FILE>" zurueck, der im erzeugten XML als "xsi:schemaLocation" verwendet werden kann.
`SepaVersion.Type`
`getType()`
Liefert den Typ der SEPA-Version.
`String`
`getURN()`
Liefert die URN der SEPA-Version.
`int`
`hashCode()`
`boolean`
`isSupported(String jobName)`
Prueft, ob die SEPA-Version unterstuetzt wird.
`String`
`toString()`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### PAIN_001_001_02

public static SepaVersion PAIN_001_001_02

### PAIN_001_002_02

public static SepaVersion PAIN_001_002_02

### PAIN_001_002_03

public static SepaVersion PAIN_001_002_03

### PAIN_001_003_03

public static SepaVersion PAIN_001_003_03

### PAIN_001_001_03

public static SepaVersion PAIN_001_001_03

### PAIN_001_001_09

public static SepaVersion PAIN_001_001_09

### PAIN_001_001_11

public static SepaVersion PAIN_001_001_11

### PAIN_002_002_02

public static SepaVersion PAIN_002_002_02

### PAIN_002_003_03

public static SepaVersion PAIN_002_003_03

### PAIN_002_001_03

public static SepaVersion PAIN_002_001_03

### PAIN_002_001_10

public static SepaVersion PAIN_002_001_10

### PAIN_002_001_11

public static SepaVersion PAIN_002_001_11

### PAIN_008_001_01

public static SepaVersion PAIN_008_001_01

### PAIN_008_002_01

public static SepaVersion PAIN_008_002_01

### PAIN_008_002_02

public static SepaVersion PAIN_008_002_02

### PAIN_008_003_02

public static SepaVersion PAIN_008_003_02

### PAIN_008_001_02

public static SepaVersion PAIN_008_001_02

### PAIN_008_001_08

public static SepaVersion PAIN_008_001_08

### PAIN_008_001_10

public static SepaVersion PAIN_008_001_10

### CAMT_052_001_01

public static SepaVersion CAMT_052_001_01

### CAMT_052_001_02

public static SepaVersion CAMT_052_001_02

### CAMT_052_001_03

public static SepaVersion CAMT_052_001_03

### CAMT_052_001_04

public static SepaVersion CAMT_052_001_04

### CAMT_052_001_05

public static SepaVersion CAMT_052_001_05

### CAMT_052_001_06

public static SepaVersion CAMT_052_001_06

### CAMT_052_001_07

public static SepaVersion CAMT_052_001_07

### CAMT_052_001_08

public static SepaVersion CAMT_052_001_08

### CAMT_052_001_09

public static SepaVersion CAMT_052_001_09

## Method Details

### byURN

public static SepaVersion byURN(String urn)
Liefert die SEPA-Version aus dem URN.

Parameters:
  `urn` - URN. In der Form "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" oder in der alten Form "sepade.pain.001.001.02.xsd".
Returns:
  die SEPA-Version.

### getSchemaLocation

public String getSchemaLocation()
Liefert einen String "<URN> <FILE>" zurueck, der im erzeugten XML als "xsi:schemaLocation" verwendet werden kann.

Returns:
  Schema-Location oder NULL, wenn "file" nicht gesetzt wurde.

### getGeneratorClass

public String getGeneratorClass(String jobName)
Erzeugt den Namen der Java-Klasse des zugehoerigen SEPA-Generators.

Parameters:
  `jobName` - der Job-Name. Z.Bsp. "UebSEPA".
Returns:
  der Name der Java-Klasse des zugehoerigen SEPA-Generators.

### getParserClass

public String getParserClass()
Erzeugt den Namen der Java-Klasse des zugehoerigen SEPA-Parsers.

Returns:
  der Name der Java-Klasse des zugehoerigen SEPA-Parsers.

### canGenerate

public boolean canGenerate(String jobName)
Prueft, ob fuer die SEPA-Version ein Generator vorhanden ist, der fuer den angegebenen HBCI4Java-Job die SEPA-XML-Dateien erzeugen kann.

Parameters:
  `jobName` - der Job-Name. Z.Bsp. "UebSEPA".
Returns:
  true, wenn ein Generator vorhanden ist.

### canParse

public boolean canParse()
Prueft, ob fuer die SEPA-Version ein Parser vorhanden ist, der SEPA-XML-Dateien dieser Version lesen kann.

Returns:
  true, wenn ein Parser vorhanden ist.

### isSupported

public boolean isSupported(String jobName)
Prueft, ob die SEPA-Version unterstuetzt wird.

Parameters:
  `jobName` - der Job-Name.
Returns:
  true, wenn die SEPA-Version unterstuetzt wird.

### getType

public SepaVersion.Type getType()
Liefert den Typ der SEPA-Version.

Returns:
  der Typ der SEPA-Version.

### getMajor

public int getMajor()
Liefert die Major-Versionsnumer.

Returns:
  die Major-Versionsnumer.

### getMinor

public int getMinor()
Liefert die Minor-Versionsnumer.

Returns:
  die Minor-Versionsnumer.

### getURN

public String getURN()
Liefert die URN der SEPA-Version.

Returns:
  die URN der SEPA-Version.

### getFile

public String getFile()
Liefert den Dateinamen des Schemas insofern bekannt.

Returns:
  der Dateiname des Schema oder null.

### findGreatest

public static SepaVersion findGreatest(List<SepaVersion> list)
Findet in den der Liste die hoechste SEPA-Version.

Parameters:
  `list` - Liste mit SEPA-Versionen.
Returns:
  die hoechste Version oder NULL wenn die Liste leer ist.

### getKnownVersions

public static List<SepaVersion> getKnownVersions(SepaVersion.Type t)
Liefert eine Liste der bekannten SEPA-Versionen fuer den angegebenen Typ.

Parameters:
  `t` - der Typ.
Returns:
  Liste der bekannten SEPA-Versionen fuer den angegebenen Typ.

### autodetect

public static SepaVersion autodetect(InputStream xml)
Ermittelt die SEPA-Version aus dem uebergebenen XML-Stream.

Parameters:
  `xml` - der XML-Stream. Achtung: Da der Stream hierbei gelesen werden muss, sollte eine Kopie des Streams uebergeben werden. Denn nach dem Lesen des Streams, kann er nicht erneut gelesen werden. Der Stream wird von dieser Methode nicht geschlossen. Das ist Aufgabe des Aufrufers.
Returns:
  die ermittelte SEPA-Version oder NULL wenn das XML-Document keine entsprechenden Informationen enthielt.

### choose

public static SepaVersion choose(String sepadesc, String sepadata)
Die Bank sendet in ihren Antworten sowohl den SEPA-Deskriptor als auch die SEPA-Daten (die XML-Datei) selbst. Diese Funktion ermittelt sowohl aus dem SEPA-Deskriptor als auch aus den SEPA-Daten die angegebene SEPA-Version und vergleicht beide. Stimmen sie nicht ueberein, wird eine Warnung ausgegeben. Die Funktion liefert anschliessend die zum Parsen passende Version zurueck. Falls sich die angegebenen Versionen unterscheiden, wird die in den XML-Daten angegebene Version zurueckgeliefert. Siehe https://www.willuhn.de/bugzilla/show_bug.cgi?id=1806

Parameters:
  `sepadesc` - die in der HBCI-Nachricht angegebene SEPA-Version.
  `sepadata` - die eigentlichen XML-Daten.
Returns:
  die zum Parsen zu verwendende SEPA-Version. NULL, wenn keinerlei Daten angegeben wurden.

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`
See Also:
  - `Object.hashCode()`

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`
See Also:
  - `Object.equals(java.lang.Object)`

### compareTo

public int compareTo(SepaVersion v)

Specified by:
  `compareTo` in interface `Comparable<SepaVersion>`
See Also:
  - `Comparable.compareTo(java.lang.Object)`

### toString

public String toString()

Overrides:
  `toString` in class `Object`
See Also:
  - `Object.toString()`