Doclet mit classDoc&Entities

Hallo zusammen,

ich bräuchte eure Hilfe. Ich komme bei dem Abschnitt meines Projektes leider nicht weiter.

Das Projekt: , Grob gesagt lese ich ein Javadoc ein und will daraus ein xml file schreiben, mit klassen, enums konstanten usw. Dazu verwende ich das java RootDoc interface, dass mir Klassen in einem ClassDoc Array zurückgibt. Da hole ich die einzelnen Klassennamen raus und sortiere das noch so, dass keine Klassen doppelt auftauchen und das schreibe ich dann als Entitäten in ein File.

So sieht es bisher aus:
<!-- Entities generated by Class Name Entity Doclet, 28.11.2013 16:09:47 -->
<!ENTITY _DefaultTwo '<classname>DefaultTwo</classname>'>
<!ENTITY _DefaultTwo.NonStaticInner '<classname>DefaultTwo.NonStaticInner</classname>'>
<!ENTITY _DefaultTwo.StaticInner '<classname>DefaultTwo.StaticInner</classname>'>
<!ENTITY _DefaultThree '<classname>DefaultThree</classname>'>
<!ENTITY _DefaultOne '<classname>DefaultOne</classname>'>

Nun möchte ich es aber noch so erweitern, dass mir auch Enumkonstanten und normale Klassenkonstanten weggeschrieben werden und es eine Fallunterscheidung gibt.

Fehlt noch

<!ENTITY _Enum.Apfel '<Enumconstant>Enum.Apfel</Enumconstant> bei Enumkonstante
<!ENTITY _DefaultOne.ANZAHL'<constant>DefaultOne.ANZAHL</constant>'> bei Konstanten


Das hier sind die Methoden, welche vermutlich interessant sein können:

Bisher:

Java:
  void writeEntity(Entity e) throws IOException {
    if (options.isVerbose())
      System.out.println("Generating entity for class" + e.name);
    write("<!ENTITY ");
    write(Entity.ENTITY_PREFIX);
    write(e.name);
    write(" '");
    if (options.isGenerateLinks()) {
      write("<link xlink:href=\"");
      write(getJavadocPath(e.classDoc));
      write("\">");
    }
 
    write("<classname>");
    write(e.classDoc.name());
    if (options.isGenerateLinks())
      write("</classname></link>'>");
    else
      write("</classname>'>");
    write(newline);
  }

Und das habe ich mal probiert, es funktioniert aber nicht und zudem fehlen noch die Klassenkonstanten.

Java:
void writeEntity(Entity e) throws IOException {
    if (options.isVerbose())
      System.out.println("Generating entity for class" + e.name);
		if(e.classDoc.isEnumConstant()){ 
			write("<!ENTITY ");
			write(Entity.ENTITY_PREFIX);
			write(e.classDoc.enumConstants());
			write(" '");
			write("<enumConstant>");
			write(e.classDoc.name());
			write("</enumConstant>'>");
			write(newline);

    } else {

		write("<!ENTITY ");
		write(Entity.ENTITY_PREFIX);
		write(e.name);
		write(" '");
		if (options.isGenerateLinks()) {
			write("<link xlink:href=\"");
			write(getJavadocPath(e.classDoc));
			write("\">"); write("<classname>");
			write(e.classDoc.name());
			if (options.isGenerateLinks())
				write("</classname></link>'>");
			else
				write("</classname>'>");
				write(newline);
  }   
}

Würde mich freuen, wenn ihr Ideen und Anregungen habt.

Vielen Dank!!
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben