2013-08-13 3 views
2

기존 코드 Java 클래스에서 직렬화 코드 read/writeExternal을 자동으로 작성하는 Eclipse 플러그인을 작성하는 방법은 무엇입니까?기존 클래스의 읽기/쓰기 외부 메소드를 자동으로 작성하는 Eclipse 플러그인 작성 방법

필요한 단계는 활성 탭 (또는 개요 창에서 클래스 필드 정보와 같은 정보)에서 클래스를 가져 와서 각 필드에 대한 코드를 생성합니다. 아마도 리플렉션을 사용하여 도움이 될 수도 있습니다.

+0

같은 것을 궁금 해서요, 내가 필요한 건 Outli에서와 같은 현재 Java 클래스 메타 데이터입니다. ne 창을 닫고 현재 탭에서 열리는 클래스 만 ... – blackuprise

+0

Eclipse JDT [AST Parser] (http://www.vogella.com/tutorials/EclipseJDT/article.html) –

+0

그래, 멋진 정보도 이클립스에서 hashcodeEquals이 소스 코드를 발견 : http://grepcode.com/file/repository.grepcode.com/java/eclipse.org/4.3.1/org.eclipse.jdt/ui/3.9 .1/org/eclipse/jdt/internal/corext/codemanipulation/GenerateHashCodeEqualsOperation.java – blackuprise

답변

0

가장 쉬운 방법은 및 GeneateHashCodeEqualsAction을 구현하기 위해 Eclipse에서 사용하는 org.eclipse.jdt.ui.actions.GenerateMethodAbstractAction 을 빌드하는 것입니다. 기본적으로

:

  1. 당신이 generateCandidates()에서 처리 할 등 모든 필드/속성을 열거 로직을 구현 GenerateMethodAbstractAction
  2. 의 기본 하위 클래스를 구축 할 수 있습니다. 수퍼 클래스로 재귀 여부를 결정해야합니다. 단계 2.
  3. 랩 수집 된 데이터를 이용하여의 readExternal /하는 writeExternal 메소드 MethodDeclaration S를 생성
  4. 구현 로직 편집 ​​그들을 적용되는 IWorkspaceRunnableMethodDeclaration의 생성 (GenerateToStringOperation 참조) createOperation(...)로부터 반환. 이 필요한 코드는 다소 긴

을 사용하고 지침에 대한 기존의 두 액션 클래스를 수행하는 것이 좋습니다 그래서 참여 할 수 있도록

  • 새 행동 "소스"메뉴를 등록합니다.

    :

    는 "소스"메뉴보다 다른 곳에 넣어하기로 선택한 경우

    은 또한

    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor() 
    

    참조와 활성 편집기를 발견 할 수 있습니다

  • +0

    이 체크 아웃 할 것입니다. 이는 계획과 비슷합니다. – blackuprise