JDT ÄÚ¾î Ç÷¯±×ÀÎÀº Java ¿ä¼Ò¸¦ ÇÁ·Î±×·¡¹ÖÇÏ¿© ÀÛ¼º, »èÁ¦, ¼öÁ¤Çϵµ·Ï ÇÏ´Â API¸¦ Á¦°øÇÕ´Ï´Ù. JDT Äھ Á¦°øÇÏ´Â API¿¡ ´ëÇÑ ¼Ò°³´Â Java ÄÚµå Á¶ÀÛÀ» ÂüÁ¶ÇϽʽÿÀ.
Java ¸ðµ¨¿¡¼ Áß¿äÇÑ °³³äÀº "ÀÛ¾÷ »çº»"(IWorkingCopy)À̶ó°í ÇÏ´Â ÄÄÆÄÀÏ ´ÜÀ§ÀÇ Àθ޸𸮠»çº»À» »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÛ¾÷ »çº»À» »ç¿ëÇÏ¸é ±âº» ÀÚ¿ø º¯°æ»çÇ×À» È®¾àÇϱâ Àü¿¡ ÄÄÆÄÀÏ ´ÜÀ§¸¦ ÇÁ·Î±×·¥¿¡ µû¶ó º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¿¡¼, º´·Ä °³³äÀº »ç¿ëÀÚ°¡ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÛ¾÷ »çº»À» È®¾àÇϱâ Àü¿¡ ÀÚ¿øÀ» ±¤¹üÀ§ÇÏ°Ô ÆíÁýÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. »çº»À» »ç¿ëÇϸé UI ±¸ÇöÀ» ÅëÇØ »ç¿ëÀÚ°¡ Java ÆíÁý±âÀÇ ÄÁÅÙÃ÷¸¦ µð½ºÅ©¿¡ ÀúÀåÇϰųª ´Ù½Ã ¿ø·¡ÀÇ ÄÁÅÙÃ÷·Î µÇµ¹¸± ¼ö ÀÖ½À´Ï´Ù.
IWorkingCopyManager´Â ÆíÁý±â ³»¿¡¼ »ç¿ëµÇ´Â Java ÄÄÆÄÀÏ ´ÜÀ§ÀÇ º¹»ç ÀÛ¾÷À» °ü¸®ÇÕ´Ï´Ù. ÆíÁý±â¿¡¼ ÄÄÆÄÀÏ ´ÜÀ§¸¦ ¼öÁ¤ÇÏ·Á°í ÇÒ ¶§, ÆíÁý±âÀÇ ÀÔ·Â ¿ä¼Ò¸¦ ÀÛ¾÷ »çº» °ü¸®ÀÚ¿¡ ¿¬°áÇÏ¿© ÀÛ¾÷ »çº»À» È®º¸ÇØ¾ß ÇÕ´Ï´Ù. ÀÛ¾÷ »çº»¿¡¼ ÆíÁýÀ» ¼öÇàÇÕ´Ï´Ù.
´ÙÀ½Àº ÄÄÆÄÀÏ ´ÜÀ§ ÆíÁý±â¿¡¼ ÀÛ¾÷ »çº» °ü¸®ÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀ» º¸¿©ÁÖ´Â ÄÚµå ½º´ÏÆêÀÔ´Ï´Ù.
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); // do the modifications on workingCopy using the normal JDT Core API. } finally { manager.disconnect(input); } // either keep the editor dirty or use editor.doSave(IProgressMonitor monitor) // to save the changes programmatically. }