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.
Vorgehen
- SAPlink starten (in der Regel Programm ZSAPLINK)
- Nugget erzeugen (XML-Datei wird auf dem PC angelegt)
- gewünschte Klasse ins nugget exportieren
- nugget bearbeiten (siehe oben)
- nugget importieren
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
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024
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?