Klasse in ein Interface kopieren

Aufgabe: Im Zuge einer Refactoring-Maßnahme sollen Methoden einer Klasse in ein Interface überführt werden. Im Class-browser gibt es dafür leider keine Unterstützung. Es ist also nicht möglich, eine Klasse auf ein Interface zu kopieren, oder den Typ der Klasse zu ändern.

Eine einfache Möglichkeit bietet das kostenlos Tool SAPlink. Mit diesem Tool ist es möglich, viele Repository-Objekte (Datenelemente, Tabellen, Klassen, Programme etc.) in ein nugget zu exportieren. Das nugget ist eine XML-Datei, die alle notwendigen Attribute eines SAP-Entwicklungsobjekets enthält und in einem anderen SAP-System wieder eingespielt werden kann.

Nugget bearbeiten

SAPlink können wir für diese Aufgabe nutzen. Nach dem Erzeugen des nuggets muss dieses mit einem normalen Editor bearbeitet werden.

  1. CLAS durch INTF ersetzen
    nugget_text1
  2. Klassenname durch Interfacenamen ersetzen:
    nugget_text2

Vorgehen

  1. SAPlink starten (in der Regel Programm ZSAPLINK)
  2. Nugget erzeugen (XML-Datei wird auf dem PC angelegt)
    saplink1
  3. gewünschte Klasse ins nugget exportieren
    saplink2
  4. nugget bearbeiten (siehe oben)
  5. nugget importieren
    nugget3

Hinweise

Interfaces haben keinen Quelltext. Der Quelltext der exportierten Klasse wird beim Import in das Interface ignoriert. Der Quelltext muss also nicht extra aus dem nugget gelöscht werden.

Interfaces haben keinen CONSTRUCTOR. Dieser kann entweder aus dem nugget gelöscht werden oder später im importierten Interface.

Eventuell muss für SAPlink das Objekt für Interfaces INTF separat installiert werden.

Weitere Infos zu SAPlink gibt es hier:

Assembla – SAPlink project homepage

Berater-Wiki

 

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)

COMMENTS

  • <cite class="fn">eric</cite>

    Hi,

    Nuggets hin oder her….

    Bist du bzw. seid ihr euch sicher, dass da gar nichts im Standard geht?

    Wenn ich mich recht erinnere kann man sogar mit Hilfe des Refactoring Assistent schon Methoden an bestimmte Stellen verschieben (auch in eine Schnittstelle, oder?).
    Sicherlich nicht so komfortabel wie in einigen Platformen – aber immerhin!?

    Gruß,
    Eric

    P.S: Wie schaut es mit Hilfe von Eclipse aus?

Comments are closed.