code: private SepaVersion determinePainVersion(HBCIPassportInternal passport, String gvName) {
          // Schritt 1: Wir holen uns die globale maximale PAIN-Version
          SepaVersion globalVersion = this.determinePainVersionInternal(passport, GVSEPAInfo.getLowlevelName());
  
          // Schritt 2: Die des Geschaeftsvorfalls - fuer den Fall, dass die Bank
          // dort weitere Einschraenkungen hinterlegt hat
          SepaVersion jobVersion = this.determinePainVersionInternal(passport, gvName);
  
          // Wir haben gar keine PAIN-Version gefunden
          if (globalVersion == null && jobVersion == null) {
              SepaVersion def = this.getDefaultPainVersion();
              log.warn("unable to determine matching pain version, using default: " + def);
              return def;
          }
  
          // Wenn wir keine GV-spezifische haben, dann nehmen wir die globale
          if (jobVersion == null) {
              log.debug("have no job-specific pain version, using global pain version: " + globalVersion);
              return globalVersion;
          }
  
          // Ansonsten hat die vom Job Vorrang:
          log.debug("using job-specific pain version: " + jobVersion);
          return jobVersion;
      }
docs: Diese Methode schaut in den BPD nach den unterstützen pain Versionen
  (bei LastSEPA pain.008.xxx.xx) und vergleicht diese mit den von HBCI4Java
  unterstützen pain Versionen. Der größte gemeinsamme Nenner wird
  zurueckgeliefert.
  
  @param passport
  @param gvName   der Geschaeftsvorfall fuer den in den BPD nach dem PAIN-Versionen
  gesucht werden soll.
  @return die ermittelte PAIN-Version.