// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 [[Eclipse/プラグイン開発のTIPS集/ソースコードを解析するパーサASTParser]]でもちょっとやりましたが、パッケージ・エクスプローラからSelection経由でICompilationUnit((Javaのソースとかですね))を取得することができました。その Javaソースは、何とかっていうJavaプロジェクトに属しているわけですが、Javaプロジェクト自体を操作するインタフェースもEclipseに用意されています。Javaプロジェクトを作成したり、削除したり、ソースを生成したりすることができるわけですね。以下にJavaプロジェクトを操作する方法をまとめておきます。 パッケージ・エクスプローラを見てもわかるとおり、Javaプロジェクトはツリー構造になってるわけで、よくあるコンポジットなパタンになってます。このコンポジットたち全部が拡張しているインタフェースが[[org.eclipse.jdt.core.IJavaElement>http://publib.boulder.ibm.com/infocenter/radhelp/v6r0m1/index.jsp?topic=/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/IJavaElement.html]]です。 **org.eclipse.jdt.core.IJavaElement [#ge8dcc8a] 全ての要素が拡張しているインタフェースですね。定数を見るとわかるのですが、コンポジットは int JAVA_MODEL = 1; int JAVA_PROJECT = 2; int PACKAGE_FRAGMENT_ROOT = 3; int PACKAGE_FRAGMENT = 4; int COMPILATION_UNIT = 5; int CLASS_FILE = 6; int TYPE = 7; int FIELD = 8; int METHOD = 9; int INITIALIZER = 10; int PACKAGE_DECLARATION = 11; int IMPORT_CONTAINER = 12; int IMPORT_DECLARATION = 13; int LOCAL_VARIABLE = 14; int TYPE_PARAMETER = 15; くらい種類があるようです。 **org.eclipse.jdt.core.IJavaModel [#w8ab5b31] ワークスペース内のJava要素のルートですね。IJavaElement#getJavaModel()で取得することができます。 **org.eclipse.jdt.core.IJavaProject [#m6444966] Javaプロジェクトです。 IJavaElement#getJavaProject() で取得することができます。よってコンポジットのどの要素からもJavaプロジェクトへの参照は得られるわけです。 **org.eclipse.jdt.core.IPackageFragmentRoot [#cf42b3a1] Javaプロジェクト内のパッケージ階層のトップ要素です。たとえば IPackageFragmentRoot root = null; try { IJavaProject javaProject = element.getJavaProject(); IPackageFragmentRoot[] roots = javaProject .getPackageFragmentRoots(); for (IPackageFragmentRoot rootTmp : roots) { if (rootTmp.getKind() == IPackageFragmentRoot.K_SOURCE) { root = rootTmp; ↑ソースディレクトリだったら } } } catch (JavaModelException e) { e.printStackTrace(); } などとしてソースディレクトリを取得することができます。 **org.eclipse.jdt.core.IPackageFragment[#mfd3abc7] **org.eclipse.jdt.core.ICompilationUnit [#r9ed8ac6] ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}