Âü°í: ÀÌ ¼³¸íÀÇ °æ¿ì, ÄÁÅÙÃ÷¿¡ ´ëÇØ ³íÀÇÇÒ ¶§ ƯÈ÷ ÆÄÀÏÀ̶ó´Â ´Ü¾î¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ·±Å¸ÀÓ ÄÁÅÙÃ÷ ¿£ÁøÀº ÄÁÅÙÃ÷°¡ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖ´Â ÆÄÀÏ¿¡ Æ÷ÇԵǾî ÀÖ´Ù°í °¡Á¤ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ÄÁÅÙÃ÷´Â ÄÁÅÙÃ÷ À¯ÇüÀ» ÆÄÀÏ À̸§ ÁöÁ¤ ÆÐÅϰú ¿¬°ü½Ãų ¼ö ÀÖ´Â ÇÁ·ÎÅäÄÝÀ» Æ÷ÇÔÇÕ´Ï´Ù. ½ÇÁ¦·Î ÀÌ·¯ÇÑ ÆÄÀÏ À̸§Àº ÆÄÀÏ ½Ã½ºÅÛÀÇ ÆÄÀÏÀ» ³ªÅ¸³»Áö¸¸ ÄÁÅÙÃ÷ ½Ã½ºÅÛ ±¸ÇöÀÇ ¾î¶°ÇÑ Ç׸ñµµ ÄÁÅÙÃ÷°¡ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖÀ½À» °¡Á¤ÇÏÁö ¾Ê½À´Ï´Ù. ÆÄÀÏ ÀÎÄÚµù ¹× ÄÁÅÙÃ÷ À¯Çü¿¡¼´Â Ç÷§Æû ÀÚ¿ø Ç÷¯±×Àο¡¼ Á¦°øÇÏ´Â ÆÄÀÏ ÁöÇâ ÄÁÅÙÃ÷ À¯Çü ±â´ÉÀ» ¼³¸íÇϸç, ÇØ´ç ÄÁÅØ½ºÆ®¿¡¼ ÄÁÅÙÃ÷ À¯Çü »ç¿ë¿¡ °ü½ÉÀÌ ÀÖ´Â °³¹ßÀÚ´Â ¹Ýµå½Ã Àоî¾ß ÇÕ´Ï´Ù.
ÄÁÅÙÃ÷ À¯ÇüÀº IContentTypeÀ¸·Î Ç¥½ÃµË´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â µ¥ÀÌÅÍ ½ºÆ®¸²À» Àаí ÄÁÅÙÃ÷ À¯Çü ƯÁ¤ Á¤º¸¸¦ ÇØ¼®ÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ´Â °íÀ¯ ÄÁÅÙÃ÷ À¯ÇüÀ» Ç¥½ÃÇÕ´Ï´Ù. ÄÁÅÙÃ÷ À¯ÇüÀº º»ÁúÀûÀ¸·Î °èÃþ ±¸Á¶ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î XML µ¥ÀÌÅÍÀÇ ÄÁÅÙÃ÷ À¯ÇüÀº ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯ÇüÀÇ ÇÏÀ§·Î °£Áֵ˴ϴÙ. À̸¦ ÅëÇØ »õ ÄÁÅÙÃ÷ À¯ÇüÀº ´õ¿í ÀϹÝÀûÀÎ ÄÁÅÙÃ÷ À¯ÇüÀÇ ¼Ó¼º ¶Ç´Â ÀÛµ¿¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
IContentTypeManager´Â Ç÷§Æû ·±Å¸ÀÓÀÌ Á¦°øÇÏ´Â ´ëºÎºÐÀÇ ÄÁÅÙÃ÷ À¯Çü °ü·Ã API¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÏ´Â ½ÃÀÛÁ¡ÀÔ´Ï´Ù. Ç÷§Æû IContentTypeManager¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¾ò±â À§ÇØ Å¬¶óÀÌ¾ðÆ®´Â Platform API¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
Ŭ¶óÀÌ¾ðÆ®´Â IContentTypeManager¸¦ »ç¿ëÇÏ¿© ½Ã½ºÅÛ¿¡¼ ÄÁÅÙÃ÷ À¯ÇüÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù.
¹ÙÀÌÆ® ½ºÆ®¸²ÀÌ Á¦°øµÇ¸é ´ÙÀ½°ú °°ÀÌ IContentTypeManager API¸¦ È£ÃâÇÏ¿© ÄÁÅÙÃ÷ À¯ÇüÀ» ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù.
InputStream stream = ...; IContentType contentType = contentTypeManager.findContentTypeFor(stream, "file.xml"); stream.close();
ÀÌ´Â ÀÔ·ÂÀÌ Á¦°øµÈ °æ¿ì °¡Àå ÀûÇÕÇÑ IContentType¸¦
¸®ÅÏÇϰųª ¾Æ¹« °Íµµ ãÀ» ¼ö ¾ø´Â °æ¿ì¿¡´Â null
À» ¸®ÅÏÇÕ´Ï´Ù. ÁÖ¾îÁø µ¥ÀÌÅÍ ½ºÆ®¸²¿¡ ´ÙÁß
ÄÁÅÙÃ÷ À¯ÇüÀÌ ÀûÇÕÇÑ °ÍÀ¸·Î °£ÁÖµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì,
Ç÷§ÆûÀº ÀϺΠÈÞ¸®½ºÆ½À» »ç¿ëÇÏ¿© ¼±ÅÃÇØ¾ß ÇÏ´Â À¯ÇüÀ» °áÁ¤ÇÕ´Ï´Ù.
ÆÄÀÏ À̸§Àº ÄÁÅÙÃ÷ À¯ÇüÀ» ¼±ÅÃÇϴ ù ¹øÂ° ±âÁØÀÔ´Ï´Ù. ÆÄÀÏ À̸§À» »ý·«ÇÒ ¼ö ÀÖÁö¸¸
ÀÌ °æ¿ì µÎ °¡Áö ¹®Á¦°¡ ÀÖ½À´Ï´Ù. °ü·ÃµÇÁö ¾ÊÀº ¸¹Àº ÄÁÅÙÃ÷ À¯ÇüÀÌ µ¿ÀÏÇÑ ÀÔ·ÂÀ»
Çã¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ °á°ú°¡ ¿Ã¹Ù¸£Áö ¾ÊÀ» ¼ö ÀÖÀ¸¸ç, Ç÷§ÆûÀÇ ¸ðµç ÄÁÅÙÃ÷ À¯Çü¿¡ ½ºÆ®¸² ºÐ¼® ±âȸ°¡
Á¦°øµÇ¾î¾ß ÇϹǷΠ¼º´É¿¡ Ä¿´Ù¸¥ ¹®Á¦Á¡ÀÌ ÀÖ½À´Ï´Ù. µû¶ó¼ ÆÄÀÏ À̸§À» »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì¸¦ Á¦¿ÜÇϰí Ŭ¶óÀÌ¾ðÆ®´Â
Ç×»ó ½ºÆ®¸²°ú ÇÔ°Ô ÆÄÀÏ À̸§À» Á¦°øÇÕ´Ï´Ù.
Ç÷§Æû¿¡¼ ÄÁÅÙÃ÷ À¯Çü Áö¿øÀÇ Æ¯º°ÇÑ ¶Ç ´Ù¸¥ ±â´ÉÀº 2Áø ¶Ç´Â ¹®ÀÚ ½ºÆ®¸²¿¡ ´ëÇÑ ÄÁÅÙÃ÷ ¼³¸í ±â´ÉÀÔ´Ï´Ù. ´ÙÀ½ ÄÚµå ½º´ÏÆêÀº À̸¦ ¼öÇàÇÏ´Â ¹æ¹ýÀ» Ç¥½ÃÇÕ´Ï´Ù.
InputStream stream = ...; IContentDescription description = contentTypeManager.getDescriptionFor(stream, "file.xml"); stream.close();
¸®ÅÏµÈ IContentDescription ÀνºÅϽº´Â ÄÁÅÙÃ÷ À¯Çü ¹× Á¦°øµÈ ÄÁÅÙÃ÷¿¡¼ ÃßÃâµÈ Ãß°¡ °ü·Ã Á¤º¸¸¦ ¼³¸íÇÕ´Ï´Ù. ÄÁÅÙÃ÷ ¼³¸íÀº Ű/°ª ½Ö ¾ç½ÄÀ¸·Î ÄÁÅÙÃ÷º° Ư¼ºÀ» ÀúÀåÇÕ´Ï´Ù. Ç÷§Æû ÀÚü°¡ ÅØ½ºÆ® ±â¹Ý ½ºÆ®¸²ÀÇ ¹®ÀÚ ¼¼Æ® ¹× ¹ÙÀÌÆ® ¼ø¼¿Í °°Àº Ư¼ºÀ» ¼³¸íÇÒ ¼ö ÀÖÁö¸¸ ÄÁÅÙÃ÷ À¯Çü Á¦°øÀÚ°¡ ´Ù¸¥ Ư¼ºÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
»õ ÄÁÅÙÃ÷ À¯ÇüÀÌ ±âÁ¸ ÄÁÅÙÃ÷ À¯ÇüÀÇ Æ¯¼öÈ·Î Á¤ÀǵǴ °æ¿ì°¡ ¸¹½À´Ï´Ù. ÀÌ °èÃþ ±¸Á¶´Â ÆÄ»ýµÈ ÄÁÅÙÃ÷ À¯Çü°ú ±âº» À¯Çü °£¿¡ "is a" °ü°è¸¦ ¼³Á¤ÇÕ´Ï´Ù. Ç÷¯±×ÀÎ °³¹ßÀÚ´Â ÄÁÅÙÃ÷º° ±â´ÉÀ» ±¸ÇöÇÒ ¶§ À̸¦ ÁؼöÇØ¾ß ÇÕ´Ï´Ù. ÁÖ¾îÁø ±â´ÉÀ» ÁÖ¾îÁø ÄÁÅÙÃ÷ À¯Çü¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì, ÆÄ»ýµÈ ÄÁÅÙÃ÷ À¯Çü¿¡µµ ±â´ÉÀ» Àû¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. IContentType.isKindOf(IContentType superType) ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¸é µÎ °³ÀÇ IContentTypeÀÌ °ü·ÃµÇ¾î ÀÖ´ÂÁö ¿©ºÎ¸¦ ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù. IContentType.getBaseType() ¸Þ¼Òµå¸¦ »ç¿ëÇϸé ÁÖ¾îÁø IContentTypeÀÇ ±âº» À¯ÇüÀ» ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù.