Javadoc を組み込む その 2
IClasspathAttribute オブジェクトに Javadoc の情報が保持されているようだということは分かったのですが、実際に IClasspathAttribute オブジェクトの name と value にはいったいどのような値が設定されているのでしょうか。それをまず調べてみたいと思います。
昨日示した performFinish メソッドに次のようなコードを付け加えてみました。
IClasspathEntry[] initialEntries = javaProject.getRawClasspath(); for (IClasspathEntry entry: initialEntries) { System.out.println("Entry: " + entry); IClasspathAttribute[] attrs = entry.getExtraAttributes(); System.out.println(" Attr Size: " + attrs.length); for (IClasspathAttribute attr: attrs) { System.out.println(" Attr: " + attr); } }
これで実行して、test というプロジェクトを作ってみました。
Entry: /test[CPE_SOURCE][K_SOURCE][isExported:false] Attr Size: 0 Entry: org.eclipse.jdt.launching.JRE_CONTAINER[CPE_CONTAINER][K_SOURCE][isExported:false] Attr Size: 0
ありゃ。これじゃダメですね ^^;; アトリビュートは空っぽでした。
しかたないので、本当のやり方は分からないままコード書いてみましょう。
IClasspathAttribute[] attributes = new IClasspathAttribute[] { JavaCore.newClasspathAttribute(IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME, javadocPath) }; entries[initialEntries.length] = JavaCore.newLibraryEntry(corePath, null, null, new IAccessRule[0], attributes, false);
これで実行してみます。
Entry: D:/lg3d/lib/ext/lg3d-core.jar[CPE_LIBRARY][K_BINARY][isExported:false][attributes:javadoc_location=D:\lg3d/docs/javadoc/api] Attr Size: 1 Attr: javadoc_location=D:\lg3d/docs/javadoc/api
ちゃんとアトリビュートが設定されたようです。
しかし......
がっくし... orz
実際に、Project Looking Glass の 3D API で F1 を押して、Javadoc を表示しようとしても何も表示されませんでした。
さて、どうしたものか。