2011-06-08 5 views
0

友達の開発をEclipseプラグインでsepecifiedインタフェースを実装するJavaクラスを新たにする方法、それは、生成されたサービス・インターフェースへのアクションが含まれており、それがIMPLスタブです。プログラムで

インターフェイスが生成されたので、私はeclipse JDTを使用してsepecifiedインターフェイスを実装するJavaクラスを作成しますが、方法はわかりません。

私たちが持っている情報: インターフェイス名、インプラントクラス名、パッケージ名、javaプロジェクトに含まれています。

ご協力いただきありがとうございます。

答えて

1

新しいクラスウィザードがそれをどのように行うのかを簡単に調べると、このためにAPIを使用するのは簡単ではないようです。 org.eclipse.jdt.ui.wizards.NewTypeWizardPage.createType(IProgressMonitor)メソッドを見れば、JDT自身がどのように新しいクラスを作成するのかを知ることができます。

メソッドを利用できるように、org.eclipse.jdt.ui.wizards.NewTypeWizardPageを拡張する必要があります。

1

おそらく最小限の手順は、ソースコンテンツを正しく配置されたIFileに生成することです。例:

public Object execute(ExecutionEvent event) throws ExecutionException { 
    final String PACKAGE_PATH = "z.ex/src/z/ex/go"; 
    final String CONTENT = "package z.ex.go;\n" 
      + "public class RunAway {\npublic static void main(String[] args) {\n" 
      + "System.out.println(\"Run Away\");\n}\n}\n"; 
    final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
    final IResource packageResource = root.findMember(PACKAGE_PATH); 
    if (packageResource instanceof IFolder) { 
     IFolder packageFolder = (IFolder) packageResource; 
     final IFile file = packageFolder.getFile("RunAway.java"); 
     try { 
      if (!file.exists()) { 
       file.create(new ByteArrayInputStream(CONTENT.getBytes()), 
         true, new NullProgressMonitor()); 
      } else { 
       file.setContents(
         new ByteArrayInputStream(CONTENT.getBytes()), 
         IFile.FORCE | IFile.KEEP_HISTORY, 
         new NullProgressMonitor()); 
      } 
     } catch (CoreException e) { 
      e.printStackTrace(); 
     } 
    } 
    return null; 
} 

はNewTypeWizardPageに似ており、JDTのいくつかのAPIを使用しています小さい例えばAbstractNewClassWizardを参照してください。

1

新しいクラスウィザードを使用してクラスを作成できます。

これは、ユーザーにクラス名などを入力するよう促します。ウィザードページの値を初期化することができます。以下では、ソースフォルダのみを設定しています(そして、ウィザードでは変更できないので、2番目のfalseパラメータ)。インターフェイスとパッケージを設定することもできます。

OpenNewClassWizardAction wizard = new OpenNewClassWizardAction(); 
    wizard.setOpenEditorOnFinish(false); 
    NewClassWizardPage page = new NewClassWizardPage(); 
    page.setPackageFragmentRoot(sourceFolder, false); 
    wizard.setConfiguredWizardPage(page); 
    wizard.run(); 
    return (IType) wizard.getCreatedElement(); 

0

JDT - ASTを使用してJavaファイル全体を作成します。最初にASTを作成し、それをJavaファイルに書き込みます。それは多大な仕事と見えるかもしれませんが、その最高のものです。あなたは完全なコントロールを持っています。