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

ちゃんとアトリビュートが設定されたようです。

しかし......

Javadoc Property

がっくし... orz

実際に、Project Looking Glass の 3D API で F1 を押して、Javadoc を表示しようとしても何も表示されませんでした。

さて、どうしたものか。