JavaTM Platform
Standard Ed. 6

javax.activation
클래스 DataHandler

java.lang.Object 
  상위를 확장 javax.activation.DataHandler
모든 구현된 인터페이스:
Transferable


public class DataHandler
extends Object
implements Transferable

DataHandler 클래스는, 다수의 다양한 소스나 형식에 이용할 수 있는 데이터에 대한 일관한 인터페이스를 제공합니다. DataContentHandler 를 사용해, 캐릭터 라인 변환이나 거기에 관련하는 조작을 위한 간단한 스트림을 관리합니다. 또, 데이터를 처리할 수 있는 커멘드에의 액세스도 제공합니다. 이러한 커멘드는, CommandMap 를 사용해 검색할 수 있습니다.

DataHandler 와 Transferable 인터페이스

DataHandler 는, Transferable 인터페이스를 구현해, 컷&페이스트나 드래그&드롭등의 AWT 데이터 전송 조작에 데이터를 사용할 수 있도록(듯이) 합니다. Transferable 인터페이스의 구현은, DataHandler 의 특정의 인스턴스로 표현된 데이터의 MIME 타입에 대응하는, 인스톨 끝난 DataContentHandler 객체의 가용성에 의존합니다.

DataHandler 와 CommandMap

DataHandler 는, 커멘드에 관한 요구 (getCommand,getAllCommands,getPreferredCommands)를 처리하기 위해서 사용하는 현재의 CommandMap 를 추적합니다. DataHandler 의 각 인스턴스에는,setCommandMap 메소드에 의해 CommandMap 를 관련지을 수 있고 있는 경우가 있습니다. CommandMap 가 설정되어 있지 않은 경우는, CommandMap 의 getDefaultCommandMap 메소드를 호출해, 그것이 돌려주는 값을 사용합니다. 상세한 것에 대하여는, 「CommandMap」를 참조해 주세요.

DataHandler 와 URL

현재의 DataHandler 의 구현에서는, DataHandler 가 URL 를 사용해 구축되면(자), URLDataSource 의 private 인스턴스를 작성합니다.

도입된 버젼:
1.6
관련 항목:
CommandMap , DataContentHandler , DataSource , URLDataSource

생성자 의 개요
DataHandler (DataSource  ds)
          지정된 DataSource 를 참조하는 DataHandler 인스턴스를 구축합니다.
DataHandler (Object  obj, String  mimeType)
          이 MIME 타입의 객체를 나타내는 DataHandler 인스턴스를 작성합니다.
DataHandler (URL  url)
          URL 를 참조하는 DataHandler 인스턴스를 작성합니다.
 
메소드의 개요
 CommandInfo [] getAllCommands ()
          이 타입의 데이터의 커멘드를 모두 돌려줍니다.
 Object getBean (CommandInfo  cmdinfo)
          CommandInfo 객체를 취득해, 대응하는 커멘드 (일반적으로은 JavaBean 컴퍼넌트)를 인스턴스화하는 편리한 메소드입니다.
 CommandInfo getCommand (String  cmdName)
          cmdName 라고 하는 커멘드를 가져옵니다.
 Object getContent ()
          적절한 객체 형식에서 데이터를 돌려줍니다.
 String getContentType ()
          이 객체의 MIME 타입을 돌려줍니다.
 DataSource getDataSource ()
          이 DataHandler 의 인스턴스에 관련지을 수 있었던 DataSource 를 돌려줍니다.
 InputStream getInputStream ()
          이 객체의 InputStream 를 가져옵니다.
 String getName ()
          데이터 객체의 이름을 돌려줍니다.
 OutputStream getOutputStream ()
          이 DataHandler 의 OutputStream 를 취득해, 기본으로 되는 데이터를 덧쓰기할 수 있도록(듯이) 합니다.
 CommandInfo [] getPreferredCommands ()
          이 타입의 데이터의 「우선」커멘드를 돌려줍니다.
 Object getTransferData (DataFlavor  flavor)
          전송 되는 데이터를 나타내는 객체를 돌려줍니다.
 DataFlavor [] getTransferDataFlavors ()
          이 데이터를 이용할 수 있는 DataFlavor 를 돌려줍니다.
 boolean isDataFlavorSupported (DataFlavor  flavor)
          지정된 데이타후레이바가, 이 객체에 대해서 지원되고 있는지 어떤지를 돌려줍니다.
 void setCommandMap (CommandMap  commandMap)
          이 DataHandler 가 사용하는 CommandMap 를 설정합니다.
static void setDataContentHandlerFactory (DataContentHandlerFactory  newFactory)
          DataContentHandlerFactory 를 설정합니다.
 void writeTo (OutputStream  os)
          데이터를 OutputStream 에 기입합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

DataHandler

public DataHandler(DataSource  ds)
지정된 DataSource 를 참조하는 DataHandler 인스턴스를 구축합니다. 데이터는, 바이트 스트림 형식에서 포함되고 있습니다. DataSource 는, 데이터에 액세스하기 위한 InputStream 를 제공합니다.

파라미터:
ds - DataSource

DataHandler

public DataHandler(Object  obj,
                   String  mimeType)
이 MIME 타입의 객체를 나타내는 DataHandler 인스턴스를 작성합니다. 이 생성자 은, 어플리케이션이 메모리상에 Java 객체 형식의 데이터 표현을 벌써 가지고 있는 경우에 사용합니다.

파라미터:
obj - Java 객체
mimeType - 객체의 MIME 타입

DataHandler

public DataHandler(URL  url)
URL 를 참조하는 DataHandler 인스턴스를 작성합니다. DataHandler 는, URL 를 나타내기 위해서(때문에) URLDataSource 인스턴스를 내부적으로 작성합니다.

파라미터:
url - URL 객체
메소드의 상세

getDataSource

public DataSource  getDataSource()
이 DataHandler 의 인스턴스에 관련지을 수 있었던 DataSource 를 돌려줍니다.  

DataHandler 가 DataSource 를 사용해 인스턴스화 되었을 경우, 이 메소드는 DataHandler 객체의 작성에 사용된 DataSource 를 돌려줍니다. 그 이외의 경우, DataHandler 는 DataHandler 의 구축에 사용된 데이터로부터 DataSource 를 구축합니다. DataSource 를 사용해 인스턴스화되어 있지 않은 DataHandler 용으로 작성된 DataSource 는, 퍼포먼스상의 이유로써 캐쉬에 포함됩니다.

반환값:
이 DataHandler 의 유효한 DataSource 객체

getName

public String  getName()
데이터 객체의 이름을 돌려줍니다. 이 DataHandler 가 DataSource 를 사용해 작성되었을 경우는,DataSource.getName 메소드를 호출합니다. 그렇지 않은 경우는,null 를 돌려줍니다.

반환값:
객체의 이름

getContentType

public String  getContentType()
이 객체의 MIME 타입을 돌려줍니다. 이것은, 소스 객체로부터 꺼내져서 , 파라미터가 지정되고 있는 「완전한」타입입니다.

반환값:
MIME 타입

getInputStream

public InputStream  getInputStream()
                           throws IOException 
이 객체의 InputStream 를 가져옵니다.

DataHandler 가 DataSource 를 사용해 인스턴스화 되었을 경우, DataHandler 는 DataSource.getInputStream 메소드를 호출해, 그 결과를 호출해 측에 돌려줍니다.  

DataHandler 가 객체를 사용해 인스턴스화 되었을 경우, DataHandler 는 우선 그 객체의 DataContentHandler 를 찾아 내려고 합니다. 이 MIME 타입의 DataContentHandler 이 발견되지 않는 경우는, UnsupportedDataTypeException 를 throw 합니다. 발견되었을 경우는, 파이프와 thread를 작성합니다. thread는 DataContentHandler 의 writeTo 메소드를 사용해, 스트림 데이터를 파이프의 일단에 기입합니다. 파이프의 이제(벌써) 일단은, 호출 측에 돌려주어집니다. 데이터를 카피하기 위해서 thread가 작성되기 (위해)때문에, 카피시에 발생하는 IOException 가 호출해 측에 돌려 보내지지 않은 것이 있습니다. 이 경우는, 빈 상태(empty)의 스트림이 돌려주어집니다.

반환값:
이 데이터를 나타내는 InputStream
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
DataContentHandler.writeTo(java.lang.Object, java.lang.String, java.io.OutputStream) , UnsupportedDataTypeException

writeTo

public void writeTo(OutputStream  os)
             throws IOException 
데이터를 OutputStream 에 기입합니다.

DataHandler 가 DataSource 를 사용해 작성되었을 경우, writeTo 는 InputStream 를 꺼내, InputStream 로부터 꺼낸 바이트를 건네받은 OutputStream 에 카피합니다.  

DataHandler 가 객체를 사용해 작성되었을 경우, writeTo 는 그 객체 타입의 DataContentHandler 를 검색합니다. DataContentHandler 가 발견되면(자),DataContentHandlerwriteTo 메소드를 호출합니다.

파라미터:
os - 기입처의 OutputStream
예외:
IOException - 입출력 에러가 발생했을 경우

getOutputStream

public OutputStream  getOutputStream()
                             throws IOException 
이 DataHandler 의 OutputStream 를 취득해, 기본으로 되는 데이터를 덧쓰기할 수 있도록(듯이) 합니다. DataHandler 가 DataSource 를 사용해 작성되었을 경우는, DataSource 의 getOutputStream 메소드가 불려 갑니다. 그 이외의 경우는,null 가 돌려주어집니다.

반환값:
OutputStream
예외:
IOException
관련 항목:
DataSource.getOutputStream() , URLDataSource

getTransferDataFlavors

public DataFlavor [] getTransferDataFlavors()
이 데이터를 이용할 수 있는 DataFlavor 를 돌려줍니다.

데이터를 제공할 수가 있는 후레이바를 나타내는 DataFlavor 객체의 배열을 돌려줍니다. 배열은 일반적으로, 데이터 제공을 위한 우선 설정에 따라, 가장 자세하게 기술되고 있는 것으로부터, 그렇지 않은 것에 순서 붙이고 됩니다.

DataHandler 는, 데이터의 MIME 타입에 대응하는 DataContentHandler 를 찾아 내려고 합니다. 발견되었을 경우는, 그 DataContentHandler 의 getTransferDataFlavors 메소드를 호출합니다.

DataContentHandler 가 발견되지 않는 경우나, DataHandler 가 DataSource (또는 URL)를 사용해 작성되었을 경우는, 이 객체의 MIME 타입과 java.io.InputStream 클래스를 나타내는 DataFlavor 가 돌려주어집니다. DataHandler 가 객체와 MIME 타입을 사용해 작성되었을 경우는, 이 객체의 MIME 타입과 클래스를 나타내는 DataFlavor 가 돌려주어집니다.

정의:
인터페이스 Transferable 내의 getTransferDataFlavors
반환값:
이 데이터를 전송 할 수 있는 데이타후레이바의 배열
관련 항목:
DataContentHandler.getTransferDataFlavors()

isDataFlavorSupported

public boolean isDataFlavorSupported(DataFlavor  flavor)
지정된 데이타후레이바가, 이 객체에 대해서 지원되고 있는지 어떤지를 돌려줍니다.

이 메소드는,getTransferDataFlavors 로부터 반환되는 각 DataFlavor 를 지정의 후레이바와 비교합니다.

정의:
인터페이스 Transferable 내의 isDataFlavorSupported
파라미터:
flavor - 데이터에 대해서 요구된 후레이바
반환값:
데이타후레이바가 지원되고 있는 경우는 true
관련 항목:
getTransferDataFlavors()

getTransferData

public Object  getTransferData(DataFlavor  flavor)
                       throws UnsupportedFlavorException ,
                              IOException 
전송 되는 데이터를 나타내는 객체를 돌려줍니다. 반환되는 객체의 클래스는, 데이타후레이바의 표현 클래스에서 정의됩니다.

DataHandler 가 DataSource 또는 URL 를 사용해 작성되었을 경우

DataHandler 는, 이 MIME 타입의 DataContentHandler 를 찾아내려고 합니다. 발견되었을 경우는, 건네받은 DataFlavor 와 데이터의 타입이 그 getTransferData 메소드에게 건네집니다. DataContentHandler 가 발견되지 않는 경우는, 후레이바에 이 객체의 MIME 타입과 java.io.InputStream 클래스가 지정되고 있으면, 이 객체의 InputStream 가 돌려주어집니다. 지정되어 있지 않은 경우는, UnsupportedFlavorException 가 throw 됩니다.

DataHandler 가 객체를 사용해 작성되었을 경우

DataHandler 는, 이 MIME 타입의 DataContentHandler 를 찾아내려고 합니다. 발견되었을 경우는, 건네받은 DataFlavor 와 데이터의 타입이 그 getTransferData 메소드에게 건네집니다. DataContentHandler 가 발견되지 않는 경우는, 후레이바에 이 객체의 MIME 타입과 클래스가 지정되고 있으면, 이 DataHandler 가 참조한 객체가 돌려주어집니다. 지정되어 있지 않은 경우는, UnsupportedFlavorException 가 throw 됩니다.

정의:
인터페이스 Transferable 내의 getTransferData
파라미터:
flavor - 데이터에 대해서 요구된 후레이바
반환값:
객체
예외:
UnsupportedFlavorException - 데이터가 요구된 후레이바에 변환되지 않았던 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
ActivationDataFlavor

setCommandMap

public void setCommandMap(CommandMap  commandMap)
이 DataHandler 가 사용하는 CommandMap 를 설정합니다. 이것을 null 로 설정하면(자), CommandMap 은 CommandMap.getDefaultCommandMap 메소드에 의해 반환되는 CommandMap 에 되돌려집니다. CommandMap 를 변경하거나 그것을 null 로 설정하거나 하면(자), 이전의 CommandMap 에 캐쉬되고 있던 데이터는 모두 소거됩니다.

파라미터:
commandMap - 이 DataHandler 로 사용하는 CommandMap
관련 항목:
CommandMap.setDefaultCommandMap(javax.activation.CommandMap)

getPreferredCommands

public CommandInfo [] getPreferredCommands()
이 타입의 데이터의 「우선」커멘드를 돌려줍니다. 이 메소드는, 이 DataHandler 의 인스턴스에 관련지을 수 있었던 CommandMap 의 getPreferredCommands 메소드를 호출합니다. 이 메소드는, 이용할 수 있는 커멘드의 부분집합을 나타내는 배열을 돌려줍니다. 이 DataHandler 에 의해 나타내진 MIME 타입의 커멘드가 다수 있는 경우는, 인스톨 된 CommandMap 에 의해 해당하는 커멘드가 선택됩니다.

반환값:
우선 커멘드를 나타내는 CommandInfo 객체
관련 항목:
CommandMap.getPreferredCommands(java.lang.String)

getAllCommands

public CommandInfo [] getAllCommands()
이 타입의 데이터의 커멘드를 모두 돌려줍니다. 이 메소드는, 이 DataHandler 에 의해 나타내진 타입의 데이터의 커멘드를 모두 포함한 배열을 돌려줍니다. 이 DataHandler 에 의해 나타내진 기본으로 되는 데이터의 MIME 타입은, 이 DataHandler 에 관련지을 수 있었던 CommandMap 의 getAllCommands 메소드의 호출에 사용됩니다.

반환값:
모든 커멘드를 나타내는 CommandInfo 객체
관련 항목:
CommandMap.getAllCommands(java.lang.String)

getCommand

public CommandInfo  getCommand(String  cmdName)
cmdName 라고 하는 커멘드를 가져옵니다. 이 DataHandler 에 인스톨 되고 있는 CommandMap 따라 정의된 검색 시멘틱스를 사용합니다. 이 DataHandler 에 의해 나타내진 기본으로 되는 데이터의 MIME 타입은, 이 DataHandler 에 관련지을 수 있었던 CommandMap 의 getCommand 메소드의 호출에 사용됩니다.

파라미터:
cmdName - 커멘드명
반환값:
이 커멘드에 대응하는 CommandInfo
관련 항목:
CommandMap.getCommand(java.lang.String, java.lang.String)

getContent

public Object  getContent()
                  throws IOException 
적절한 객체 형식에서 데이터를 돌려줍니다.

DataHandler 가 객체를 사용해 인스턴스화 되었을 경우는, 그 객체를 돌려줍니다.

DataHandler 가 DataSource 를 사용해 인스턴스화 되었을 경우는, DataContentHandler 를 사용해, 이 DataHandler 에 의해 나타내진 데이터의 컨텐츠 객체를 돌려줍니다. 이 데이터의 타입의 DataContentHandler 가 발견되지 않는 경우는, DataHandler 에 의해 이 데이터의 InputStream 가 돌려주어집니다.

반환값:
컨텐츠
예외:
IOException - 이 조작시에 IOException 가 발생했을 경우

getBean

public Object  getBean(CommandInfo  cmdinfo)
CommandInfo 객체를 취득해, 대응하는 커멘드 (일반적으로은 JavaBean 컴퍼넌트)를 인스턴스화하는 편리한 메소드입니다.  

이 메소드는,javax.activation.DataHandler 클래스 자체의 로드에 사용된 ClassLoader 를 사용해, CommandInfo 의 getCommandObject 메소드를 호출합니다.

파라미터:
cmdinfo - 커멘드에 대응하는 CommandInfo
반환값:
인스턴스화 된 커멘드 객체

setDataContentHandlerFactory

public static void setDataContentHandlerFactory(DataContentHandlerFactory  newFactory)
DataContentHandlerFactory 를 설정합니다. DataContentHandler 를 검색하는 경우는, 최초로 DataContentHandlerFactory 가 불려 갑니다. DataContentHandlerFactory 는 한 번 밖에 설정할 수 없습니다.  

DataContentHandlerFactory 가 벌써 설정되어 있는 경우는, Error 가 throw 됩니다.

파라미터:
newFactory - DataContentHandlerFactory
예외:
Error - 팩토리가 벌써 정의되고 있는 경우
관련 항목:
DataContentHandlerFactory

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.