ÇÁ·ÎÁ§Æ® ¼Ó¼º

ID: org.eclipse.core.resources.natures

¼³¸í: ÀÛ¾÷°ø°£Àº ÇÁ·ÎÁ§Æ® ¼Ó¼º(Ãà¾àÇüÀ¸·Î "¼Ó¼º") °³³äÀ» Áö¿øÇÕ´Ï´Ù. ¼Ó¼ºÀº ¶óÀÌÇÁ »çÀÌŬ ÀÛµ¿À» ÇÁ·ÎÁ§Æ®¿¡ ¿¬°ü½Ãŵ´Ï´Ù. ¼Ó¼ºÀº org.eclipse.core.resources.IProject¿¡ Á¤ÀÇµÈ setDescription ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®º°·Î ¼³Ä¡µË´Ï´Ù. ¼Ó¼ºÀº ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡µÉ ¶§ ÀÚµ¿À¸·Î ±¸¼ºµÇ°í ÇÁ·ÎÁ§Æ®¿¡¼­ Á¦°ÅµÉ ¶§ ±¸¼ºÀÌ ÇØÁ¦µË´Ï´Ù. ¿¹¸¦ µé¾î Java ¼Ó¼ºÀº Java ºô´õ¸¦ ¼³Ä¡Çϸç ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡µÉ ¶§ ±âŸ ÇÁ·ÎÁ§Æ® ±¸¼ºÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼Ó¼º È®ÀåÁ¡À» »ç¿ëÇÏ¸é ¼Ó¼º ÀÛ¼º±â´Â ±âÈ£ À̸§À¸·Î ÀÚ½ÅÀÇ Æ¯¼º ±¸ÇöÀ» µî·ÏÇÑ ´ÙÀ½ ¼Ó¼ºÀ» ã¾Æ ±¸¼ºÇϱâ À§ÇØ ÀÛ¾÷°ø°£ ³»¿¡¼­ »ç¿ëµÇ°Ô µË´Ï´Ù. ±âÈ£ À̸§Àº ¼Ó¼º È®ÀåÀÇ IDÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ ¼Ó¼º È®ÀåÀ» Á¤ÀÇÇÒ ¶§ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â °ªÀ» "name" ¼Ó¼º¿¡ ÁöÁ¤ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀÌ À̸§ ¼Ó¼ºÀº Àǹ̸¦ ½Äº°ÇÏ¿© »ç¿ëÀÚ¿¡°Ô Ç¥½ÃµÉ ¼öµµ ÀÖ½À´Ï´Ù.

¼Ó¼ºÀº ´Ù¸¥ ¼Ó¼º°úÀÇ °ü°è Á¦ÇÑÁ¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù. "one-of-nature" Á¦ÇÑÁ¶°ÇÀº ÁÖ¾îÁø ¼¼Æ®¿¡ ¼ÓÇÑ ÃÖ´ë ÇϳªÀÇ ¼Ó¼º¸¸ÀÌ ÁÖ¾îÁø ¼ø°£¿¡ ÇÑ ÇÁ·ÎÁ§Æ®¿¡¼­ Á¸ÀçÇÒ ¼ö ÀÖÀ½À» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ¼­·Î ȣȯµÇÁö ¾Ê´Â ¼Ó¼º °£ÀÇ »óÈ£ ¹èŸ¼ºÀÌ Àû¿ëµË´Ï´Ù. "requires-nature" Á¦ÇÑÁ¶°ÇÀº ´Ù¸¥ ¼Ó¼º¿¡ ´ëÇÑ Á¾¼Ó¼ºÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¼Ó¼ºÀÌ ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡µÉ ¶§ ¸ðµç Çʼö ¼Ó¼ºµµ Ãß°¡µÇ¾î¾ß ÇÕ´Ï´Ù. ¼Ó¼ºÀº Çʼö ¼Ó¼ºÀÌ Ç×»ó ¸ÕÀú ±¸¼ºµÇ°í ³ªÁß¿¡ ±¸¼º ÇØÁ¦µÇ´Â ¹æ½ÄÀ¸·Î ±¸¼ºµÇ°í ±¸¼º ÇØÁ¦µË´Ï´Ù. µû¶ó¼­ ¼Ó¼º °£ÀÇ ¼øÈ¯ Á¾¼Ó¼ºÀÌ Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

¼Ó¼º Ãß°¡³ª Á¦°Å·Î ÀÎÇØ ÀÌÀü¿¡ ¸¸Á·µÇ¾ú´ø Á¦ÇÑÁ¶°ÇÀÌ À§¹ÝµÇ´Â °æ¿ì ¼Ó¼ºÀº ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡µÇ°Å³ª ÇÁ·ÎÁ§Æ®¿¡¼­ Á¦°ÅµÉ ¼ö ¾ø½À´Ï´Ù. ¼Ó¼ºÀÌ ÇÁ·ÎÁ§Æ®¿¡ ±¸¼ºµÇ¾îµµ ³ªÁß¿¡ Á¦ÇÑÁ¶°ÇÀÌ ¸¸Á·µÇÁö ¾Ê´Â °ÍÀÌ ¹ß°ßµÇ¸é ÇØ´ç ¼Ó¼º ¹× ÀÌ ¼Ó¼ºÀ» ¿ä±¸ÇÏ´Â ¸ðµç ¼Ó¼ºÀÌ »ç¿ë ºÒ°¡´ÉÀ¸·Î Ç¥½ÃµÇÁö¸¸ ÇÁ·ÎÁ§Æ®¿¡´Â ³²¾Æ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ÀÌ·± »óȲÀº Çʼö ¼Ó¼ºÀÌ ¼³Ä¡¿¡¼­ ´©¶ôµÉ °æ¿ì¿¡ ¹ß»ýÇÕ´Ï´Ù. ¼³Ä¡¿¡¼­ ´©¶ôµÈ ¼Ó¼º ¹× Á¾¼Ó¼º ÁÖ±â¿Í °ü·ÃµÈ ¼Ó¼ºµµ »ç¿ë ºÒ°¡´ÉÀ¸·Î Ç¥½ÃµË´Ï´Ù.

¼Ó¼ºÀº ¼Ó¼º¿¡¼­ ±¸¼ºµÇ´Â ÁõºÐ ÇÁ·ÎÁ§Æ® ºô´õ(ÀÖ´Ù¸é)¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ Á¤º¸¸¦ »ç¿ëÇÏ¿© ºôµåµÇ´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÀÀÇÏ´Â ¼Ó¼ºÀÌ ÀÖ°í ÀÌ ¼Ó¼ºÀÌ »ç¿ë °¡´ÉÇÑ °æ¿ì¿¡¸¸ ÀÛ¾÷°ø°£¿¡¼­ ºô´õ°¡ ½ÇÇàµË´Ï´Ù. ¼Ó¼ºÀÌ ÇÁ·ÎÁ§Æ®¿¡¼­ Á¦°ÅµÇÁö¸¸ ¼Ó¼ºÀÇ ±¸¼º ÇØÁ¦ ¸Þ¼Òµå°¡ ´ëÀÀÇÏ´Â ºô´õ¸¦ Á¦°ÅÇÏÁö ¸øÇϸé ÀÛ¾÷°ø°£Àº ºôµå ½ºÆå¿¡¼­ ÀÚµ¿À¸·Î ÇØ´ç ºô´õ¸¦ Á¦°ÅÇÕ´Ï´Ù. µÎ °³ÀÇ ¼Ó¼ºÀÌ ¸¶Å©¾÷¿¡¼­ °°Àº ÁõºÐ ÇÁ·ÎÁ§Æ® ºô´õ¸¦ ÁöÁ¤ÇÏ´Â °ÍÀº Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

±¸¼º ¸¶Å©¾÷:

   <!ELEMENT runtime run?>

   <!ELEMENT run parameter*>
   <!ATTLIST run
      class          CDATA #REQUIRED
   >

   <!ELEMENT parameter EMPTY>
   <!ATTLIST parameter
      name         CDATA #REQUIRED
      value        CDATA #REQUIRED
   >    <!ELEMENT one-of-nature EMPTY>
   <!ATTLIST one-of-nature
      id          CDATA #REQUIRED
     <!ELEMENT requires-nature EMPTY>
   <!ATTLIST requires-nature
      id          CDATA #REQUIRED
     <!ELEMENT builder EMPTY>
   <!ATTLIST builder
      id          CDATA #REQUIRED
   >


¿¹:

´ÙÀ½Àº ¼¼ °¡Áö ¼Ó¼º ±¸¼ºÀÇ ¿¹Á¦ÀÔ´Ï´Ù. waterNature ¹× fireNature´Â °°Àº µ¶Á¡ ¼¼Æ®¿¡ ¼ÓÇϹǷΠ°°Àº ÇÁ·ÎÁ§Æ®¿¡ °øÁ¸ÇÒ ¼ö ¾ø½À´Ï´Ù. snowNature´Â waterNature°¡ ÇÊ¿äÇϹǷΠsnowNature´Â waterNature°¡ ´©¶ôµÈ ÇÁ·ÎÁ§Æ®¿¡¼­ »ç¿ë ºÒ°¡´ÉÇÕ´Ï´Ù. µû¶ó¼­ snowNature´Â fireNature°¡ ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

   <extension id="fireNature" name="Fire Nature" point="org.eclipse.core.resources.natures">
      <runtime>
         <run class="com.xyz.natures.Fire"/>
      </runtime>
      <one-of-nature id="com.xyz.stateSet"/>
   </extension>

   <extension id="waterNature" name="Water Nature" point="org.eclipse.core.resources.natures">
      <runtime>
         <run class="com.xyz.natures.Water"/>
      </runtime>
      <one-of-nature id="com.xyz.stateSet"/>
   </extension>

   <extension id="snowNature" name="Snow Nature" point="org.eclipse.core.resources.natures">
      <runtime>
         <run class="com.xyz.natures.Snow">
            <parameter name="installBuilder" value="true"/>
         </run>
      </runtime>
      <requires-nature id="com.xyz.coolplugin.waterNature"/>
      <builder id="com.xyz.snowMaker"/>
   </extension>

ÀÌ È®ÀåÀÌ ID°¡ "com.xyz.coolplugin"ÀÎ Ç÷¯±×Àο¡¼­ Á¤ÀÇµÈ °æ¿ì ÀÌ ¼Ó¼ºÀÇ ¿ÏÀüÇÑ À̸§Àº "com.xyz.coolplugin.fireNature", "com.xyz.coolplugin.waterNature" ¹× "com.xyz.coolplugin.snowNature"ÀÔ´Ï´Ù.

API Á¤º¸: class ¼Ó¼º °ªÀº org.eclipse.core.resources.IProjectNatureÀÇ ±¸ÇöÀÚ¸¦ ³ªÅ¸³»¾ß ÇÕ´Ï´Ù. org.eclipse.core.resources.IProjectNatureDescriptor ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ¼Ó¼º Á¤ÀǸ¦ Á¶»çÇÒ ¼ö ÀÖ½À´Ï´Ù. org.eclipse.core.resources.IWorkspace¿¡¼­ getNatureDescriptor(String) ¹× getNatureDescriptors() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÀÌ ¼³¸íÀÚ ¿ÀºêÁ§Æ®¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

±âº» Á¦°ø ±¸Çö: Ç÷§Æû¿¡ ¹Ì¸® Á¤ÀÇµÈ ¼Ó¼ºÀº ¾ø½À´Ï´Ù. ÇÊ¿äÇÑ °æ¿ì ƯÁ¤ Á¦Ç° ¼³Ä¡¿¡ ÇÊ¿äÇÑ ¼Ó¼ºÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

Copyright IBM Corp. 2000, 2002.  All Rights Reserved.