Utilizando cópias de trabalho em um editor

O plug-in Núcleo do JDT fornece uma API que permite criar, excluir e modificar elementos Java, através de programação. Consulte manipulando código Java para obter uma introdução à API fornecida pelo Núcleo do JDT.  

Um conceito importante no modelo Java é o uso de uma cópia, em memória, de uma unidade de compilação, a qual é chamada de "cópia de trabalho" (IWorkingCopy).  O uso de uma cópia de trabalho permite alterar, através de programação, uma unidade de compilação antes de consolidar as alterações no recurso subjacente.

Na interface com o usuário Java, um conceito paralelo é permitir ao usuário editar, extensivamente, um recurso antes de consolidar a cópia de trabalho no sistema de arquivos.  Utilizando uma cópia, a implementação da UI pode permitir ao usuário salvar o conteúdo do editor Java no disco ou retorná-lo ao conteúdo original. 

IWorkingCopyManager gerencia as cópias de trabalho de unidades de compilação Java utilizadas em um editor.  Quando desejar modificar uma unidade de compilação em um editor, você deve obter uma cópia de trabalho conectando o elemento de entrada de seu editor ao gerenciador de cópias de trabalho. Edições são efetuadas na cópia de trabalho. 

A seguir encontra-se um trecho de código que demonstra o uso de um gerenciador de cópias de trabalho com um editor da unidade de compilação:

    void modifyCompilationUnit(ICompilationUnit cunit) throws PartInitException, CoreException {        IEditorPart editor= JavaUI.openInEditor(cunit);
        IEditorInput input= editor.getEditorInput();
        IWorkingCopyManager manager= JavaUI.getWorkingCopyManager();
        manager.connect(input);
try {            ICompilationUnit workingCopy= manager.getWorkingCopy(input);
		// fazer as modificações na cópia de trabalho com a API normal do Núcleo do JDT.
  } finally {
            manager.disconnect(input);
        }
	// manter o editor sujo ou utilizar editor.doSave(monitor IProgressMonitor)
        // para salvar as alterações através de programação.
    }

Copyright IBM Corporation e outros 2000, 2003. Todos os Direitos Reservados.