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

ID: org.eclipse.core.resources.natures

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

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

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

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

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

¼Ó¼º¿¡´Â ¶ÇÇÑ ¿¬°üµÈ ÇÁ·ÎÁ§Æ®¿¡¼­ ¸µÅ©µÈ ÀÚ¿øÀÇ ÀÛ¼ºÀ» ±ÝÁöÇÏ´Â ±â´Éµµ ÀÖ½À´Ï´Ù. allowLinking ¼Ó¼ºÀ» "false"·Î ¼³Á¤ÇÏ¿© ¼Ó¼ºÀº ¸µÅ©µÈ ÀÚ¿øÀÌ ÀÛ¼ºµÇÁö ¾Êµµ·Ï ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀº ¸±¸®½º 2.1¿¡¼­ »õ·Î ÀÛ¼ºµÇ¾ú½À´Ï´Ù.

±¸¼º ¸¶Å©¾÷:

   <!ELEMENT extension (runtime , (one-of-nature | requires-nature | builder)* , options?)>

   <!ATTLIST extension
     point CDATA #REQUIRED
     id    CDATA #IMPLIED
     name  CDATA #IMPLIED
   >

   <!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
   >

   <!ELEMENT options EMPTY>

   <!ATTLIST options
     allowLinking (true | false)
   >

¿¹Á¦: ´ÙÀ½Àº ¼Ó¼º ±¸¼ºÀÇ ¼¼ °¡Áö ¿¹Á¦ÀÔ´Ï´Ù. waterNature ¹× fireNature´Â °°Àº µ¶Á¡ ÁýÇÕ¿¡ ¼ÓÇϹǷΠ°°Àº ÇÁ·ÎÁ§Æ®¿¡¼­ °øÁ¸ÇÒ ¼ö ¾ø½À´Ï´Ù. snowNature´Â waterNature¸¦ ÇÊ¿ä·Î Çϱ⠶§¹®¿¡ snowNature´Â waterNature°¡ ¾ø´Â ÇÁ·ÎÁ§Æ®¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ¿¡ µû¶ó snowNature´Â fireNature°¡ ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. 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"/>
       <options allowLinking="false"/>
   </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 (c) 2003 IBM Corporation and others. All rights reserved. º» ÇÁ·Î±×·¥ ¹× º» ÇÁ·Î±×·¥¿¡ µ¿ºÀµÇ´Â ÀÚ·á´Â º» ¹èÆ÷¹°¿¡ µ¿ºÀµÇ¸ç http://www.eclipse.org/legal/cpl-v10.html¿¡¼­ º¼ ¼ö ÀÖ´Â ÀÏ¹Ý °ø¿ë ¶óÀ̼¾½º v1.0ÀÇ Á¶Ç׿¡ ÀǰÅÇÏ¿© »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.