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).
  • Field Details

  • Constructor Details

    • SepaVersion

      private SepaVersion(SepaVersion.SupportType support, int order, String urn, String file, boolean add)
      Erzeugt eine SEPA-Version aus dem URN bzw dem Dateinamen.
      Parameters:
      support - der Support-Type.
      order - die Reihenfolge bei der Sortierung.
      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".
      file - Dateiname der Schema-Datei.
      add - true, wenn die Version zur Liste der bekannten Versionen hinzugefuegt werden soll.
  • 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.
    • findType

      private static SepaVersion.Type findType(String type, String value) throws IllegalArgumentException
      Liefert den enum-Type fuer den angegebenen Wert.
      Parameters:
      type - der Type. "pain", "camt".
      value - der Wert. 001, 002, 008, ....
      Returns:
      der zugehoerige Enum-Wert.
      Throws:
      IllegalArgumentException - wenn der Typ unbekannt ist.
    • getSchemaLocation

      public String getSchemaLocation()
      Liefert einen String " " 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:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
      See Also:
    • compareTo

      public int compareTo(SepaVersion v)
      Specified by:
      compareTo in interface Comparable<SepaVersion>
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also: