All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kapott.hbci.tools.ShowLowlevelGVs Maven / Gradle / Ivy

Go to download

HBCI4j - Home Banking Computer Interface for Java - Clone from https://github.com/hbci4j/hbci4java

There is a newer version: 3.5.46
Show newest version
/*  $Id: ShowLowlevelGVs.java,v 1.1 2011/05/04 22:37:45 willuhn Exp $

    This file is part of HBCI4Java
    Copyright (C) 2001-2008  Stefan Palme

    HBCI4Java is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    HBCI4Java is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

package org.kapott.hbci.tools;

import org.kapott.hbci.manager.DocumentFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * 

Dieses Tool dient zum Anzeigen der Struktur von HBCI-Job-Parametern für das * Erzeugen von Lowlevel-Jobs. Diese Struktur wird benötigt, wenn Jobs über das * Lowlevel-Interface zum Erzeugen und Parametrisieren von Jobs erzeugt werden. Eine * Erklärung des Unterschieds zwischen High- und Lowlevel-Schnittstelle befindet sich * in der Dokumentation des Packages org.kapott.hbci.GV.

*

Der Aufruf erfolgt durch *

java org.kapott.hbci.tools.ShowLowlevelGVs [hbciversion]
Ist keine * hbciversion angegeben, so wird diese über STDIN erfragt.

*

Das Tool gibt eine baumartige Struktur aus, welche die Lowlevelnamen der Geschäftsvorfälle * sowie die Bezeichnungen für die dazugehörigen Lowlevel-Parameter enthält. Die Struktur * für einen Datensatz beginnt immer mit einer Zeile

jobname:JOBNAME version:VERSION
* Dabei ist VERSION die Versionsnummer des Lowlevel-Jobs JOBNAME, auf die sich die folgende * Strukturbeschreibung bezieht. Die Strukturbeschreibung für einen Job endet bei der nächsten * Zeile mit diesem Format bzw. am Ende der Ausgabe.

*

In den eigentlichen Beschreibungszeilen können Zeilen im Format

GROUP:GROUPNAME {MIN,MAX}
* folgen. Damit wird beschrieben, dass jetzt eine Gruppe von zusammengehörigen Jobparametern folgt. * Eine solche Gruppe muss mindestens MIN und darf höchstens MAX mal als Lowlevel-Parameter auftreten. * Alle Zeilen, die nicht mit GROUP: beginnen, haben das Format *
LOWLEVELNAME:DATENTYP {MIN,MAX}
* LOWLEVELNAME ist dabei der Lowlevelname eines Parameters, wie er beim Setzen von Parametern mit * {@link org.kapott.hbci.GV.AbstractHBCIJob#setParam(String, String)} benutzt werden kann. * DATENFORMAT ist dabei eine Kurzbezeichnung für den Datentyp, den dieser Parameter annehmen kann. * MIN und MAX geben an, wie oft dieser Parameter (in seiner Gruppe) mindestens bzw. höchstens * auftauchen darf.

*

Folgende Datentypen gibt es zur Zeit:

*
    *
  • AN - alphanumerische Daten (Strings)
  • *
  • Bin - binäre Daten (meist in einem Fremdformat)
  • *
  • Code - wie AN
  • *
  • Ctr - Länderkennzeichen (meist "DE")
  • *
  • Cur - Währungskennzeichen (meist "EUR")
  • *
  • DTAUS - Daten im DTAUS-Format (alphanumerische Daten im DTAUS-Zeichensatz)
  • *
  • Date - Datumsangaben (in einem Locale-typischen Format)
  • *
  • Dig - nur Ziffern (führende Nullen erlaubt)
  • *
  • ID - wie AN
  • *
  • JN - nur "J" oder "N" (für JA bzw. NEIN) - entspricht also Boolean
  • *
  • Num - ganzzahliger numerischer Wert ohne führende Nullen
  • *
  • Time - Zeitangabe in einem Locale-typischen Format
  • *
  • Wrt - Angaben von Double-Werten im Format ab.cd (keine Exp.-Schreibweise!)
  • *
*

Innerhalb einer Anwendung kann mit der Methode * {@link org.kapott.hbci.manager.HBCIHandler#getSupportedLowlevelJobs()} * eine Liste aller unterstützten Lowlevel-Jobs in Erfahrung gebracht werden. Zusätzlich gibt diese * Methode zu jedem Jobnamen die Versionsnummer zurück, welche für diesen Job von HBCI4Java benutzt * werden wird (das hängt von der aktuellen HBCI-Version und dem benutzten Passport ab, kann von * außen also nicht direkt beeinflusst werden). In der Ausgabe dieses Tool kann nun nach einem * bestimmten Lowlevelnamen eines Jobs und der von HBCI4Java dafür verwendeten Versionsnummer gesucht werden. * Ist der entsprechende Eintrag gefunden, so hat man eine Übersicht über alle möglichen * Lowlevel-Jobparameter und wie oft diese auftreten müssen bzw. dürfen. * Die gleiche Übersicht erhält man übrigens, wenn man innerhalb der Anwendung die Methode * {@link org.kapott.hbci.manager.HBCIHandler#getLowlevelJobParameterNames(String)} * aufruft, allerdings fehlen in der Ausgabe dieser Methode die Informationen über die möglichen * Häufigkeiten der einzelnen Parameter, dafür wird hier automatisch die richtige Versionsnummer * des Jobs ausgewählt.

*/ public class ShowLowlevelGVs extends AbstractShowLowlevelData { public static void main(String[] args) throws Exception { String hbciversion; if (args.length >= 1) { hbciversion = args[0]; } else { System.out.print("hbciversion: "); System.out.flush(); hbciversion = new BufferedReader(new InputStreamReader(System.in)).readLine(); } Document document = DocumentFactory.createDocument(hbciversion); Element gvlist = document.getElementById("GV"); NodeList gvnodes = gvlist.getChildNodes(); int len = gvnodes.getLength(); for (int i = 0; i < len; i++) { Node gvrefnode = gvnodes.item(i); if (gvrefnode.getNodeType() == Node.ELEMENT_NODE) { String gvname = ((Element) gvrefnode).getAttribute("type"); showData(gvname, document); } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy