Класс DataHandler
- java.lang.Object
-
- javax.activation.DataHandler
- Все реализуемые интерфейсы:
- Transferable
public class DataHandler extends Object implements Transferable
Класс DataHandler предоставляет согласованный интерфейс к данным, доступным из различных источников и форматов. Он управляет простыми преобразованиями потоков в строки и связанными операциями с помощью DataContentHandlers. Он предоставляет доступ к командам, которые могут работать с данными. Команды находятся с помощью CommandMap.
DataHandler и интерфейс Transferable
DataHandler реализует интерфейс Transferable, чтобы данные можно было использовать в операциях передачи данных AWT, таких как вырезание и вставка, перетаскивание и падение. Реализация интерфейса Transferable зависит от наличия установленного объекта DataContentHandler, соответствующего MIME-типу данных, представленных в конкретном экземпляре DataHandler.
DataHandler и CommandMap
DataHandler отслеживает текущую CommandMap, которую он использует для обработки запросов на команды (getCommand, getAllCommands, getPreferredCommands). Каждый экземпляр DataHandler может иметь связанную с ним CommandMap с помощью метода setCommandMap. Если CommandMap не был задан, DataHandler вызывает метод getDefaultCommandMap в CommandMap и использует возвращаемое им значение. Дополнительную информацию см. в разделе CommandMap.
DataHandler и URL
Текущая реализация DataHandler создает частный экземпляр URLDataSource, когда она создается с URL.
- С тех пор:
- 1.6
- См. также:
-
CommandMap,DataContentHandler,DataSource,URLDataSource
Конструкторы
| Конструктор и описание |
|---|
DataHandler(DataSource ds) Создает экземпляр |
DataHandler(Object obj,
String mimeType) Создает экземпляр |
DataHandler(URL url) Создает экземпляр |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
CommandInfo[] |
getAllCommands() Возвращает все команды для этого типа данных. |
Object |
getBean(CommandInfo cmdinfo) Удобный метод, который принимает объект CommandInfo и создает соответствующую команду, обычно компонент JavaBean. |
CommandInfo |
getCommand(String cmdName) Получить команду cmdName. |
Object |
getContent() Возвращает данные в предпочтительной форме объекта. |
String |
getContentType() Возвращает MIME-тип этого объекта, полученный из исходного объекта. |
DataSource |
getDataSource() Возвращает DataSource, связанный с этим экземпляром DataHandler. |
InputStream |
getInputStream() Получить InputStream для этого объекта. |
String |
getName() Возвращает имя объекта данных. |
OutputStream |
getOutputStream() Получить OutputStream для этого DataHandler, чтобы разрешить перезапись базовых данных. |
CommandInfo[] |
getPreferredCommands() Возвращает предпочтительные команды для этого типа данных. |
Object |
getTransferData(DataFlavor flavor) Возвращает объект, представляющий передаваемые данные. |
DataFlavor[] |
getTransferDataFlavors() Возвращает DataFlavors, в которых доступны эти данные. |
boolean |
isDataFlavorSupported(DataFlavor flavor) Возвращает, поддерживается ли указанный тип данных для этого объекта. |
void |
setCommandMap(CommandMap commandMap) Установить CommandMap для использования этим DataHandler. |
static void |
setDataContentHandlerFactory(DataContentHandlerFactory newFactory) Устанавливает DataContentHandlerFactory. |
void |
writeTo(OutputStream os) Записать данные в |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
DataHandler
public DataHandler(DataSource ds)
Создайте экземпляр DataHandler, ссылающийся на указанный DataSource. Данные существуют в виде потока байтов. DataSource предоставит InputStream для доступа к данным.
- Параметры:
-
ds- DataSource
DataHandler
public DataHandler(Object obj,
String mimeType) Создайте экземпляр DataHandler, представляющий объект этого MIME-типа. Этот конструктор используется, когда приложение уже имеет представление данных в памяти в виде объекта Java.
- Параметры:
-
obj- объект Java -
mimeType- MIME-тип объекта
DataHandler
public DataHandler(URL url)
Создайте экземпляр DataHandler, ссылающийся на URL. DataHandler внутренне создаёт экземпляр URLDataSource для представления URL.
- Параметры:
-
url- объект URL
Методы
getDataSource
public DataSource getDataSource()
Возвращает DataSource, связанный с этим экземпляром DataHandler.
Для DataHandler, созданных с DataSource, этот метод возвращает DataSource, который был использован для создания объекта DataHandler. В других случаях DataHandler строит DataSource из данных, использованных для создания DataHandler. DataSource, созданные для DataHandler, не созданных с DataSource, кэшируются для повышения производительности.
- Возвращает:
- действительный объект DataSource для этого DataHandler
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 для объекта. Если DataHandler не может найти DataContentHandler для этого MIME-типа, он генерирует исключение UnsupportedDataTypeException. Если поиск успешен, он создаёт pipe и поток. Поток использует метод writeTo DataContentHandler для записи данных потока в один конец pipe. Другой конец pipe возвращается вызывающей стороне. Поскольку для копирования данных создаётся поток, исключения IOException, которые могут возникнуть во время копирования, не могут быть переданы обратно вызывающей стороне. Результатом является пустой поток.
- Возвращает:
- 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 был найден, он вызывает метод writeTo на DataContentHandler.
- Параметры:
-
os- OutputStream, в который необходимо записать - Исключения:
-
IOException- если произошла ошибка ввода-вывода
getOutputStream
public OutputStream getOutputStream()
throws IOException Получить OutputStream для этого DataHandler, чтобы разрешить перезапись базовых данных. Если DataHandler был создан с DataSource, вызывается метод getOutputStream DataSource. В противном случае возвращается null.
- Возвращает:
- OutputStream
- Исключения:
IOException- См. также:
-
DataSource.getOutputStream(),URLDataSource
getTransferDataFlavors
public DataFlavor[] getTransferDataFlavors()
Возвращает DataFlavors, в которых доступны эти данные.
Возвращает массив объектов DataFlavor, указывающих на форматы, в которых могут быть предоставлены данные. Массив обычно упорядочен в соответствии с предпочтениями предоставления данных, от наиболее подробного к наименее подробному.
DataHandler пытается найти DataContentHandler, соответствующий MIME-типу данных. Если он найден, DataHandler вызывает метод getTransferDataFlavors DataContentHandler.
Если DataContentHandler не найден, и если DataHandler был создан с DataSource (или URL), возвращается один DataFlavor, представляющий MIME-тип этого объекта и класс java.io.InputStream. Если DataHandler был создан с объектом и MIME-типом, getTransferDataFlavors возвращает один DataFlavor, представляющий MIME-тип этого объекта и класс объекта.
- Задано в:
-
getTransferDataFlavorsв интерфейсеTransferable - Возвращает:
- массив типов данных, в которых эти данные могут быть переданы
- См. также:
DataContentHandler.getTransferDataFlavors()
isDataFlavorSupported
public boolean isDataFlavorSupported(DataFlavor flavor)
Возвращает, поддерживается ли указанный тип данных для этого объекта.
Этот метод перебирает DataFlavors, возвращённые getTransferDataFlavors, сравнивая каждый с указанным типом.
- Задано в:
-
isDataFlavorSupportedв интерфейсеTransferable - Параметры:
-
flavor- запрашиваемый тип данных - Возвращает:
- true, если тип данных поддерживается
- См. также:
getTransferDataFlavors()
getTransferData
public Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException,
IOException Возвращает объект, представляющий передаваемые данные. Класс возвращаемого объекта определяется классом представления типа данных.
Для DataHandler, созданных с DataSource или URL:
DataHandler пытается найти DataContentHandler для этого MIME-типа. Если он найден, переданный DataFlavor и тип данных передаются его методу getTransferData. Если DataHandler не находит DataContentHandler и тип данных указывает на MIME-тип этого объекта и класс java.io.InputStream, возвращается InputStream этого объекта. В противном случае генерируется исключение UnsupportedFlavorException.
Для DataHandler, созданных с объектами:
DataHandler пытается найти DataContentHandler для этого MIME-типа. Если он найден, переданный DataFlavor и тип данных передаются его методу getTransferData. Если DataHandler не находит DataContentHandler и тип данных указывает на MIME-тип этого объекта и его класс, возвращается объект, на который ссылается этот DataHandler. В противном случае генерируется исключение UnsupportedFlavorException.
- Задано в:
-
getTransferDataв интерфейсеTransferable - Параметры:
-
flavor- запрашиваемый тип данных - Возвращает:
- объект
- Исключения:
-
UnsupportedFlavorException- если данные не могут быть преобразованы в требуемый тип -
IOException- если произошла ошибка ввода-вывода - См. также:
ActivationDataFlavor
setCommandMap
public void setCommandMap(CommandMap commandMap)
Установить CommandMap для использования этим DataHandler. Установка значения null приводит к тому, что CommandMap возвращается методом CommandMap.getDefaultCommandMap. Изменение CommandMap или установка его в null очищает кэшированные данные с предыдущего CommandMap.
- Параметры:
-
commandMap- CommandMap для использования в этом DataHandler - См. также:
CommandMap.setDefaultCommandMap(javax.activation.CommandMap)
getPreferredCommands
public CommandInfo[] getPreferredCommands()
Возвращает предпочтительные команды для этого типа данных. Этот метод вызывает метод getPreferredCommands в CommandMap, связанном с этим экземпляром DataHandler. Этот метод возвращает массив, представляющий подмножество доступных команд. В случаях, когда несколько команд для MIME-типа, представленного этим DataHandler, присутствуют, установленный CommandMap выбирает соответствующие команды.
- Возвращает:
- объекты CommandInfo, представляющие предпочтительные команды
- См. также:
CommandMap.getPreferredCommands(java.lang.String)
getAllCommands
public CommandInfo[] getAllCommands()
Возвращает все команды для этого типа данных. Этот метод возвращает массив, содержащий все команды для типа данных, представленного этим DataHandler. MIME-тип базовых данных, представленных этим DataHandler, используется для вызова метода getAllCommands CommandMap, связанного с этим DataHandler.
- Возвращает:
- объекты CommandInfo, представляющие все команды
- См. также:
CommandMap.getAllCommands(java.lang.String)
getCommand
public CommandInfo getCommand(String cmdName)
Получить команду cmdName. Используйте правила поиска, определённые в CommandMap, установленные в этом DataHandler. MIME-тип базовых данных, представленных этим DataHandler, используется для вызова метода getCommand CommandMap, связанного с этим DataHandler.
- Параметры:
-
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.
Этот метод вызывает метод getCommandObject объекта CommandInfo с ClassLoader , используемым для загрузки класса javax.activation.DataHandler.
- Параметры:
-
cmdinfo- CommandInfo, соответствующий команде - Возвращает:
- созданный объект команды
setDataContentHandlerFactory
public static void setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
Устанавливает DataContentHandlerFactory. DataContentHandlerFactory вызывается в первую очередь для поиска DataContentHandler. DataContentHandlerFactory может быть установлена только один раз.
Если DataContentHandlerFactory уже была установлена, этот метод генерирует ошибку.
- Параметры:
-
newFactory- DataContentHandlerFactory - Издает:
-
Error- если фабрика уже определена. - См. также:
DataContentHandlerFactory
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.