Hallo,
ich bin gerade dabei mein erstes Eclipse Plugin zu schreiben.
Dabei möchte ich eine (oder mehrere) Java Dateien untersuchen und daraus eine neue Java Datei erzeugen.
Eclipse bietet da ICompilationUnit an.
Damit komme ich auch soweit klar.
Besonders wichtig sind mir dabei die Methoden und deren Rückgabewert.
Ich schaffe es auch mit Hilfe von IMethod die einzelnen Methoden durchzugehen. Mit "getSignature" bzw. "getReturnType" bekomme ich auch einen Typ zurück, aber leider nicht die komplette Bezeichung.
Beispiel:
Aus Testzwecken lasse ich mir den Typ in der Konsole ausgeben:
im Plugin Code:
m ist eine Instanz von IMethod
eine Testdatei auf die ich mein Eclipse-Plugin anwende:
mein Plugin sagt mir, dass
foo1 vom Typ java.lang.String ist - soweit ok
foo2 vom Typ String ist - nicht toll, aber bei String nicht weiter schlimm
foo3 vom Typ Date - problematisch, wenn ich diese Methode in eine neue Datei kopieren möchte. Woher weiss ich, welcher Typ Date gemeint ist.. bei importierten und selbsterstellten Typen?
Ich will in meiner neuen Klasse/Datei nicht jeden import kopieren müssen, sondern wünsche mir ein
"public java.sql.Date foo3()"
Vorschläge? Ideen? Hilfe?
Ist diese Information überhaupt in ICompilationUnit drin?
(also dass die Importe drin sind, ist mir klar - man kann sich ja den ganzen Code mit getSource ausgeben lassen. Aber weiss es, dass der Rückgabewert java.sql.Date ist?)
ich bin gerade dabei mein erstes Eclipse Plugin zu schreiben.
Dabei möchte ich eine (oder mehrere) Java Dateien untersuchen und daraus eine neue Java Datei erzeugen.
Eclipse bietet da ICompilationUnit an.
Damit komme ich auch soweit klar.
Besonders wichtig sind mir dabei die Methoden und deren Rückgabewert.
Ich schaffe es auch mit Hilfe von IMethod die einzelnen Methoden durchzugehen. Mit "getSignature" bzw. "getReturnType" bekomme ich auch einen Typ zurück, aber leider nicht die komplette Bezeichung.
Beispiel:
Aus Testzwecken lasse ich mir den Typ in der Konsole ausgeben:
im Plugin Code:
Java:
System.out.println("#### Signature Return: "+Signature.toString(m.getReturnType()));
eine Testdatei auf die ich mein Eclipse-Plugin anwende:
Java:
import java.sql.Date;
public class TestKlasse {
public java.lang.String foo1(){
return "ein String";
}
public String foo2(){
return "ein String";
}
public Date foo3(){
return null;
}
}
mein Plugin sagt mir, dass
foo1 vom Typ java.lang.String ist - soweit ok
foo2 vom Typ String ist - nicht toll, aber bei String nicht weiter schlimm
foo3 vom Typ Date - problematisch, wenn ich diese Methode in eine neue Datei kopieren möchte. Woher weiss ich, welcher Typ Date gemeint ist.. bei importierten und selbsterstellten Typen?
Ich will in meiner neuen Klasse/Datei nicht jeden import kopieren müssen, sondern wünsche mir ein
"public java.sql.Date foo3()"
Vorschläge? Ideen? Hilfe?
Ist diese Information überhaupt in ICompilationUnit drin?
(also dass die Importe drin sind, ist mir klar - man kann sich ja den ganzen Code mit getSource ausgeben lassen. Aber weiss es, dass der Rückgabewert java.sql.Date ist?)