Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBCIInstitute::extractKeys -- Vorarbeit gekapselt und ausgelagert #64

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ruderphilipp
Copy link
Contributor

Im Zuge meiner Einarbeitung in den Code sind mir einige Dinge aufgefallen. Dieser Pullrequest konzentriert sich auf die Methode HBCIInstitute::extractKeys.

Hier werden stets -- unabhängig vom keyType -- aufwändig die Daten extrahiert, diese jedoch nur in zwei Fällen (Wert S oder V) weiterverarbeitet. Somit kann der gesamte Block in if (keyType.equals("S") || keyType.equals("V")) gekapselt werden (vgl. Zeile 118 neu). Dies führt dazu, dass die Berechnungen seltener ausgeführt werden müssen.

Weiterhin unterscheidet sich der Ablauf ausschließlich im letzten Schritt, wo entschieden wird, ob setInstSigKey oder setInstEncKey verwendet werden soll. Alles davor ist lediglich die notwendige Arbeit, um das richtige Übergabeformat zu erzeugen. Sie kann somit in eine eigene Methode ausgelagert werden.

Als Ergebnis bildet die Schleife nun klar die Businesslogik ab:

  • Wenn Typ = null, dann direkt zum nächsten Datensatz.
  • Wenn Typ = S oder V, dann setze Werte.
  • Wenn Typ = anderer Wert, dann nichts tun.

…e Methode

Hier werden stets -- unabhängig vom `keyType` -- aufwändig die Daten extrahiert,
diese jedoch nur in zwei Fällen (Wert `S` oder `V`) weiterverarbeitet. Somit
kann der gesamte Block in `if (keyType.equals("S") || keyType.equals("V"))`
gekapselt werden (vgl. Zeile 118 neu). Dies führt dazu, dass die Berechnungen
seltener ausgeführt werden müssen.

Weiterhin unterscheidet sich der Ablauf ausschließlich im letzten Schritt, wo
entschieden wird, ob `setInstSigKey` oder `setInstEncKey` verwendet werden
soll. Alles davor ist lediglich die notwendige Arbeit, um das richtige
Übergabeformat zu erzeugen. Sie kann somit in eine eigene Methode ausgelagert
werden.

Als Ergebnis bildet die Schleife nun klar die Businesslogik ab:
- Wenn Typ = null, dann direkt zum nächsten Datensatz.
- Wenn Typ = S oder V, dann setze Werte.
- Wenn Typ = anderer Wert, dann nichts tun.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant