Ç÷¯±×ÀÎÀº JDT API¸¦ »ç¿ëÇÏ¿© ¸Þ¼Òµå ÂüÁ¶, ÇÊµå ¼±¾ð, ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀÚ µî°ú °°Àº Java ¿ä¼ÒÀÇ ÀÛ¾÷°ø°£¿¡¼ Java ÇÁ·ÎÁ§Æ®¸¦ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java °Ë»öÀÇ ½ÃÀÛÁ¡Àº SearchEngine Ŭ·¡½ºÀÔ´Ï´Ù. Java ¿ä¼Ò ³»¿¡¼ ƯÁ¤ ÆÐÅÏÀ» Ž»öÇÒ ¼ö ÀÖ½À´Ï´Ù. °Ë»ö ÆÐÅÏÀº createSearchPatternÀ» »ç¿ëÇÏ¿© ÀÛ¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ÆÐÅÏ ¹üÀ§´Â createJavaSearchScope¸¦ »ç¿ëÇÏ¿© ÁöÁ¤µË´Ï´Ù. ÆÐÅÏ ¹× ¹üÀ§°¡ Á¤ÀǵǸé search ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© °á°ú¸¦ ¼öÁýÇÕ´Ï´Ù.
°Ë»ö °á°ú´Â °á°ú¿¡ ¾×¼¼½ºÇϱâ À§ÇØ ±¸ÇöÇØ¾ß ÇÏ´Â IJavaSearchResultCollector¿¡ º¸°íµË´Ï´Ù.
°Ë»ö Á¶ÀÛÀº °Ë»öÀÇ ¼Ó¼ºÀ» ¼³¸íÇÏ´Â ÆÐÅϰú Á¶»ç ¹üÀ§¸¦ Á¦ÇÑÇÏ´Â ¹üÀ§¸¦ ¸ðµÎ »ç¿ëÇÕ´Ï´Ù.
°Ë»ö ÆÐÅÏÀº °Ë»ö °á°ú¸¦ ã´Â ¹æ¹ýÀ» Á¤ÀÇÇÕ´Ï´Ù. Java ¿ä¼Ò(createSearchPattern(IJavaElement, int) ÂüÁ¶) ¶Ç´Â ¹®ÀÚ¿(createSearchPattern(String, int, int, boolean) ÂüÁ¶)¿¡¼ °Ë»ö ÆÐÅÏÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¶Áö¸· ¸Þ¼Òµå´Â ¿ÍÀϵåÄ«µå(¿¹: '*')¸¦ Áö¿øÇÏ°í °Ë»ö °á°ú¸¦ È®´ëÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î, ÁöÁ¤ÇÑ ¸Þ¼Òµå¿¡ ´ëÇÑ ÂüÁ¶¸¦ °Ë»öÇÏ´Â °Ë»ö ÆÐÅÏÀº ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù.
// Get the method IMethod method = ...; // Create search pattern ISearchPattern pattern = SearchEngine.createSearchPattern(method, IJavaSearchConstants.REFERENCES);
¶Ç´Â "Obj"·Î ½ÃÀÛÇÏ´Â ¸ðµç À¯ÇüÀÇ ¼±¾ðÀ» °Ë»öÇÏ´Â °Ë»ö ÆÐÅÏÀº ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù.
// Create search pattern ISearchPattern pattern = SearchEngine.createSearchPattern("Obj*", IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, true);
´ÙÀ½ °Ë»ö ÆÐÅÏÀ» Áö¿øÇÕ´Ï´Ù.
ÁöÁ¤ÇÑ ÇÁ·ÎÁ§Æ®¿¡¼ ¶Ç´Â ÁöÁ¤ÇÑ ÆÐŰÁö¿¡¼ÀÇ °Ë»ö °á°ú¿¡ °ü½ÉÀÌ ÀÖ´Â °æ¿ì ¶Ç´Â °Ë»ö °á°ú°¡ ÁöÁ¤ÇÑ À¯ÇüÀÇ °èÃþ ±¸Á¶¿¡¼¸¸ ÀÖÀ» ¼ö ÀÖÀ½À» ¾Ë°í ÀÖ´Â °æ¿ì createJavaSearchScope(IJavaElement[]) ¶Ç´Â createHierarchyScope(IType)À» »ç¿ëÇÏ¿© ÀûÀýÇÑ °Ë»ö ¹üÀ§¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î, ÁöÁ¤ÇÑ ÆÐŰÁö¿¡ ´ëÇÑ °Ë»ö ¹üÀ§´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù.
// Get the package IPackageFragment pkg = ...; // Create search scope IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] {pkg});
¶Ç´Â ÁöÁ¤ÇÑ À¯ÇüÀÇ °èÃþ ±¸Á¶¿¡ ´ëÇÑ °Ë»ö ¹üÀ§´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù.
// Get the type IType type = ...; // Create search scope IJavaSearchScope scope = SearchEngine.createHierarchyScope(type);
¸¶Áö¸·À¸·Î Àüü ÀÛ¾÷°ø°£¿¡ ´ëÇÑ °Ë»ö ¹üÀ§¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
// Create search scope IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
°Ë»ö ÆÐÅϰú °Ë»ö ¹üÀ§¸¦ ÀÛ¼ºÇß°í IJavaSearchResultCollector¸¦ ±¸ÇöÇßÀ¸¸é, ´ÙÀ½°ú °°ÀÌ °Ë»ö Á¶È¸¸¦ ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
// Get the search pattern ISearchPattern pattern = ...; // Get the search scope IJavaSearchScope scope = ...; // Get the search result collector IJavaSearchResultCollector collector = ...; // Search SearchEngine searchEngine = new SearchEngine(); searchEngine.search(ResourcesPlugin.getWorkspace(), pattern, scope, collector);
°Ë»ö ½ÃÀÛ °ø°í¸¦ aboutToStart ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© °Ë»ö °á°ú ÄÝ·ºÅÍ·Î Àü¼ÛÇÕ´Ï´Ù. ±×·± ´ÙÀ½, accept ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© °¢ °Ë»ö °á°ú¸¦ º¸°íÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î doneÀº °Ë»öÀÌ Á¾·áµÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù.
°Ë»ö °á°ú´Â accept ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© º¸°íÇÕ´Ï´Ù. ¾Æ·¡ ´Ü¶ôÀº ÀÌ ¸Þ¼Òµå¿¡ ´ëÇÑ °¢ Àμö¸¦ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù.
°Ë»ö °á°ú´Â Java ¿ä¼Ò(¿¹: À¯Çü ¼±¾ð)¿¡ ÇØ´çÇϰųª Java ¿ä¼Ò(¿¹: ¸Þ¼Òµå ³»ºÎ À¯Çü¿¡ ´ëÇÑ ÂüÁ¶)¿¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù. °Ë»ö ¿£ÁøÀº Ç×»ó °Ë»ö °á°ú¿Í ÀÏÄ¡Çϰųª °Ë»ö °á°ú¸¦ Æ÷ÇÔÇÏ´Â °¡Àå ³»ºÎÀÇ Java ¿ä¼Ò¸¦ ãÀ¸·Á°í ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, À̸§º° À¯Çü ¼±¾ðÀ» °Ë»öÇÏ¸é ·ÎÄà À¯Çü ¼±¾ðÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù. Java ¸ðµ¨Àº ·ÎÄà À¯ÇüÀ» ³ªÅ¸³»Áö ¾ÊÀ¸¹Ç·Î ÀÌ ·ÎÄà À¯Çü ¼±¾ðÀ» Æ÷ÇÔÇÏ´Â ¸Þ¼Òµå´Â °á°ú ÄÝ·ºÅÍ¿¡ ºÎ¿©µË´Ï´Ù.
¶ÇÇÑ °Ë»ö ¿£ÁøÀº Java ¿ä¼Ò°¡ µé¾î ÀÖ´Â ÀÚ¿øÀ» °á°ú ÄÝ·ºÅÍ¿¡ Á¦°øÇÏ·Á°í ÇÕ´Ï´Ù. µû¶ó¼ Java ¿ä¼Ò°¡ ÄÄÆÄÀÏ ´ÜÀ§¿¡¼ ¸Þ¼ÒµåÀÎ °æ¿ì ÀÚ¿øÀº ÇØ´çÇÏ´Â IFileÀÔ´Ï´Ù. ¿ä¼Ò°¡ .jar ÆÄÀÏ¿¡ µé¾î ÀÖ´Â °æ¿ì ÀÚ¿øÀº .jar ÆÄÀÏÀÔ´Ï´Ù. ÀÌ °æ¿ì .jar ÆÄÀÏÀº ÀÛ¾÷°ø°£¿¡ ÀÖ½À´Ï´Ù. ÀÚ¿øÀÌ ¿ÜºÎ .jar ÆÄÀÏÀ̸é ÀÚ¿øÀº ³ÎÀÔ´Ï´Ù.
¼Ò½º À§Ä¡´Â °Ë»ö °á°ú¸¦ Æ÷ÇÔÇÏ´Â ÄÄÆÄÀÏ ´ÜÀ§¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. °Ë»ö °á°ú°¡ .jar ÆÄÀÏ¿¡ µé¾î ÀÖ´Â °æ¿ì ¼Ò½º À§Ä¡´Â ÷ºÎµÈ ¼Ò½º¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. .jar ÆÄÀÏ¿¡ ÷ºÎµÈ ¼Ò½º°¡ ¾ø´Â °æ¿ì ¼Ò½º À§Ä¡´Â (-1, -1)ÀÔ´Ï´Ù.
´ëºÎºÐÀÇ °æ¿ì¿¡ °Ë»ö °á°ú´Â Á¤È®Çϸç, À̰ÍÀº ÁöÁ¤µÈ ÀÏÄ¡»çÇ×ÀÌ ¿äûÇÑ °ÍÀÓÀ» °Ë»ö ¿£ÁøÀÌ ÆÇº°ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ±×·¯³ª ÀϺΠ°æ¿ì °Ë»ö ¿£ÁøÀÌ ÆÇº°ÇÒ ¼ö ¾ø´Âµ¥, ÀÌ °°Àº °æ¿ì ÀÏÄ¡»çÇ×Àº ºÎÁ¤È®ÇÕ´Ï´Ù. ÀÏÄ¡»çÇ×ÀÌ ºÎÁ¤È®ÇÒ ¼ö ÀÖ´Â ¸î °¡Áö ÀÌÀ¯´Â ´ÙÀ½°ú °°½À´Ï´Ù.