Klassen eines Projekts zählen

Bonsai

Bekanntes Mitglied
Hallo,

ich schreibe gerade an einem Plugin, welches Java-Klassen analysiert. nun möchte ich gern, bevor die Analyse los geht zählen wie viel Klassen jedes Project hat. kann mir da zufällig jemand helfen?

Viele Grüße
Bonsai
 
sowohl als auch. Da ich das noch nie gemacht habe würde es unter dem Aspekt lernen laufen. es soll aber für ein ernsthaftes Projekt sein. Ich wollte da jetzt eigentlich nicht extra noch ein Plugin für installieren. Geht das nicht auch so irgendwie?
 
hast du zufällig ein konkretes beispiel dazu aus dem javancss? weil ich hab ehrlich gesagt gerade zu viel um die ohren um mir das komplette teil durchzulesen.
 
Das könnte schwierig werden.
1. Class-Dateien sind erst verfügbar, wenn ein Projekt das erste mal kompiliert wurde.
2. Java-Dateien können durchaus mehrere Klassen (jedoch nur eine öffentliche) definieren. Das Problem mit inneren und anonymen Klassen kommt hier noch erschwerend hinzu.

So ein Feature wäre ja auch eigentlich Sache der Entwicklungsumgebung, deswegen frage ich mich, ob NCSS dafür so eine tolle Idee ist, wenn man trotzdem noch ein Plugin für seine IDE benötigt (which usually doesn' t exist 😉).
PlugIns (bzw. ganze Plugin-Systeme) schreibt man normalerweise ja auch für eine bestimmte Zielumgebung. Für ein derartiges Vorhaben würde ich mir deswegen zunächst erstmal die Ressourcen und sich daraus bietende Möglichkeiten der Zielumgebung ansehen.
Für mich wären dafür also z.B. der Package- oder der Project-Explorer und das PI-System von Eclipse interessant. Mein PlugIn käme dann ohne weitere Libs aus, wäre aber nur in Eclipse lauffähig.
 
@spacerat hättest du dafür irgendwie nen Beispiel, da ich wie gesagt das zum ersten mal mach und noch nicht so recht weiß wie ich an das auslesen der packages oder projects ran gehen soll. Un an sich soll das auch nur in Eclipse laufen.
 
Wie gross sind denn deine Kenntnisse in Eclipse-PlungIn-Entwicklung? Meine sind da leider noch relativ am Anfang. Hiermit brauch' ich dich wohl nicht mehr belasten, denk' ich.
Wenn du das durch hast, hast du mit Sicherheit auch eine Möglichkeit, an die IViewRegistry ranzukommen, um diese nach dem Projekt- bzw. Package-Explorer zu durchsuchen und dir eine Instanz davon zu besorgen. Einer von beiden dürfte dann auch wissen, welche Dateien zu dem Projekt gehören und vor allem, welche, und damit auch wieviele, Klassen er daraus bilden muss, damit das Projekt funktioniert.
Beispiele habe ich leider nicht. Das einzige, was mir in diesem Forum auffällt, ist, das Wildcard immer sehr viel zum Thema Eclipse bringt. Evtl. fragst du ihn mal.
 
ok werd ich mal schauen. vielleicht find ich da was. nja meine Kenntnisse bei Eclipse Plugin Programmierung sind jetzt auch noch nicht so groß. bin da an sich auch grad am anfang. Werd ihn mal anschreiben und schauen was er dazu sagt 🙂
 
Ein Java Projekt (also ein Projekt mit Java Nature) hat ein zugehöriges JavaModel. Über dieses JavaModel kommst du an alle enthaltenen CompilationUnits (Klassen) heran.
Das ist also wirklich nicht weiter schwer. Dein Plugin muss nur eine Abhängigkeit auf jdt.core im Manifest angeben und dann kannst du über die statischen Methoden in JavaCore auf das JavaProject zugreifen.
Java:
IJavaProject javaProject = JavaCore.create(project);
Das hier wird mit neueren Eclipse Versionen vermutlich nicht mehr funktionieren, aber dort kannst du dir Beispiel Code anschauen.
 

Neue Themen


Zurück
Oben