Класс DataFlavor
- java.lang.Object
-
- java.awt.datatransfer.DataFlavor
- Все реализованные интерфейсы:
- Externalizable, Serializable, Cloneable
- Прямые известные подклассы:
- ActivationDataFlavor
public class DataFlavor extends Object implements Externalizable, Cloneable
Класс DataFlavor предоставляет метаинформацию о данных. DataFlavor обычно используется для доступа к данным в буфере обмена или во время операции перетаскивания.
Экземпляр DataFlavor инкапсулирует тип содержимого, как определено в RFC 2045 и RFC 2046. Тип содержимого обычно называется типом MIME.
Тип содержимого состоит из типа носителя (называемого основным типом), подтипа и необязательных параметров. Подробности синтаксиса типа MIME см. в RFC 2045.
Реализация передачи данных JRE интерпретирует параметр "class" типа MIME как класс представления. Класс представления отражает класс передаваемого объекта. Другими словами, класс представления — это тип объекта, возвращаемого методом Transferable.getTransferData(java.awt.datatransfer.DataFlavor). Например, тип MIME imageFlavor равен "image/x-java-image;class=java.awt.Image", основной тип — image, подтип — x-java-image, а класс представления — java.awt.Image. При вызове getTransferData с DataFlavor типа imageFlavor, возвращается экземпляр java.awt.Image. Важно отметить, что DataFlavor не выполняет проверки на соответствие классу представления. Задача проверки лежит на потребителях DataFlavor, таких как Transferable.
Примечание: если вы не укажете класс представления при создании DataFlavor, используется класс представления по умолчанию. См. соответствующую документацию для конструкторов DataFlavor.
Также экземпляры DataFlavor с основным типом MIME "text" могут иметь параметр "charset". Подробности о типах MIME "text" и параметре "charset" см. в RFC 2046 и selectBestTextFlavor(java.awt.datatransfer.DataFlavor[]).
Равенство DataFlavors определяется основным типом, подтипом и классом представления. Подробности см. в equals(DataFlavor). При определении равенства все необязательные параметры игнорируются. Например, следующие строки создают два DataFlavors экземпляра, считающиеся идентичными:
DataFlavor flavor1 = new DataFlavor(Object.class, "X-test/test; class=<java.lang.Object>; foo=bar"); DataFlavor flavor2 = new DataFlavor(Object.class, "X-test/test; class=<java.lang.Object>; x=y"); // The following returns true. flavor1.equals(flavor2);Как уже упоминалось,
flavor1 и flavor2 считаются идентичными. Следовательно, обращение к Transferable за DataFlavor возвращает одинаковые результаты. Для получения дополнительной информации об использовании передачи данных со Swing см. раздел «Как использовать перетаскивание и передачу данных» в учебнике Java.
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static DataFlavor |
allHtmlFlavor Представляет собой фрагмент разметки HTML. |
static DataFlavor |
fragmentHtmlFlavor Представляет собой фрагмент разметки HTML. |
static DataFlavor |
imageFlavor Класс |
static DataFlavor |
javaFileListFlavor Для передачи списка файлов в/из Java (и основной платформы) используется тип/подтип |
static String |
javaJVMLocalObjectMimeType Для передачи ссылки на произвольный объект Java без ассоциированного типа MIME содержимого через интерфейс |
static String |
javaRemoteObjectMimeType Для передачи активной ссылки на удаленный объект через операцию перетаскивания |
static String |
javaSerializedObjectMimeType Тип MIME содержимого application/x-java-serialized-object представляет собой граф объектов Java, которые были сделаны постоянными. |
static DataFlavor |
plainTextFlavor Устаревшее. С версии 1.3 используйте |
static DataFlavor |
selectionHtmlFlavor Представляет фрагмент разметки HTML. |
static DataFlavor |
stringFlavor Класс |
Конструкторы
| Конструктор и описание |
|---|
DataFlavor() Создает новый |
DataFlavor(Class<?> representationClass,
String humanPresentableName) Создает |
DataFlavor(String mimeType) Создаёт |
DataFlavor(String mimeType,
String humanPresentableName) Создает |
DataFlavor(String mimeType,
String humanPresentableName,
ClassLoader classLoader) Создает |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Object |
clone() Возвращает клонированную копию этого |
boolean |
equals(DataFlavor that) Этот метод имеет такое же поведение, как и |
boolean |
equals(Object o) Указывает, является ли другой объект "равным" этому. |
boolean |
equals(String s) Устаревшее. Ввиду несоответствия с контрактом |
Class<?> |
getDefaultRepresentationClass() |
String |
getDefaultRepresentationClassAsString() |
String |
getHumanPresentableName() Возвращает удобочитаемое имя формата данных, представленного этим |
String |
getMimeType() Возвращает строку MIME-типа для этого |
String |
getParameter(String paramName) Возвращает удобочитаемое имя этого |
String |
getPrimaryType() Возвращает основной MIME-тип для этого |
Reader |
getReaderForText(Transferable transferable) Возвращает объект Reader для текстового формата, декодированного при необходимости, для ожидаемой кодировки символов. |
Class<?> |
getRepresentationClass() Возвращает |
String |
getSubType() Возвращает подтип MIME этого |
static DataFlavor |
getTextPlainUnicodeFlavor() Возвращает |
int |
hashCode() Возвращает хэш-код для этого |
boolean |
isFlavorJavaFileListType() Возвращает true, если указанный |
boolean |
isFlavorRemoteObjectType() Возвращает true, если указанный |
boolean |
isFlavorSerializedObjectType() Возвращает true, если указанный |
boolean |
isFlavorTextType() Возвращает, является ли этот |
boolean |
isMimeTypeEqual(DataFlavor dataFlavor) Сравнивает |
boolean |
isMimeTypeEqual(String mimeType) Возвращает true, если строковое представление MIME-типа, переданное в качестве аргумента, эквивалентно MIME-типу этого |
boolean |
isMimeTypeSerializedObject() Представляет ли |
boolean |
isRepresentationClassByteBuffer() Возвращает, является ли класс представления для этого |
boolean |
isRepresentationClassCharBuffer() Возвращает, является ли класс представления для этого |
boolean |
isRepresentationClassInputStream() Представляет ли |
boolean |
isRepresentationClassReader() Возвращает, является ли класс представления для этого |
boolean |
isRepresentationClassRemote() Возвращает true, если класс представления является |
boolean |
isRepresentationClassSerializable() Возвращает true, если класс представления может быть сериализован. |
boolean |
match(DataFlavor that) Идентично |
protected String |
normalizeMimeType(String mimeType) Устаревшее. |
protected String |
normalizeMimeTypeParameter(String parameterName,
String parameterValue) Устаревшее. |
void |
readExternal(ObjectInput is) Восстанавливает этот |
static DataFlavor |
selectBestTextFlavor(DataFlavor[] availableFlavors) Выбирает лучший текстовый |
void |
setHumanPresentableName(String humanPresentableName) Устанавливает удобочитаемое имя формата данных, которое представляет этот |
String |
toString() Строковое представление этого |
protected static Class<?> |
tryToLoadClass(String className,
ClassLoader fallback) Пытается загрузить класс из: загрузчика базовой загрузки, системного загрузчика, загрузчика контекста (если он присутствует) и, наконец, указанного загрузчика. |
void |
writeExternal(ObjectOutput os) Сериализует этот |
Методы, унаследованные от класса java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Поля
stringFlavor
public static final DataFlavor stringFlavor
Представляющее класс Java Unicode String, где: DataFlavor
imageFlavor
public static final DataFlavor imageFlavor
Представляющее класс Java Image, где: DataFlavor
plainTextFlavor
@Deprecated public static final DataFlavor plainTextFlavor
Устарело. начиная с версии 1.3. Используйте DataFlavor.getReaderForText(Transferable) вместо Transferable.getTransferData(DataFlavor.plainTextFlavor).
Представляющее обычный текст с кодировкой Unicode, где: DataFlavor Это
representationClass = InputStream
mimeType = "text/plain; charset=unicode" устарело, потому что (1) его представление — это InputStream, представление на основе 8-битных данных, в то время как Unicode — 16-битная кодовая страница; и (2) кодировка «unicode» не определена надёжно. «unicode» подразумевает реализацию Unicode на конкретной платформе, а не кроссплатформенную. javaSerializedObjectMimeType
public static final String javaSerializedObjectMimeType
MIME Content-Type application/x-java-serialized-object представляет граф Java объекта(ов), который был сохранён. Класс представления, связанный с этим DataFlavor определяет тип Java объекта, возвращённого как ссылка из вызова java.awt.datatransfer.getTransferData.
- См. также:
- Значения константного поля
javaFileListFlavor
public static final DataFlavor javaFileListFlavor
Для передачи списка файлов в/из Java (и базовой платформы) используется DataFlavor данного типа/подтипа и класса представления java.util.List. Каждый элемент списка должен/гарантируется, что он имеет тип java.io.File.
javaJVMLocalObjectMimeType
public static final String javaJVMLocalObjectMimeType
Для передачи ссылки на произвольную ссылку на Java-объект без связанного MIME Content-type через интерфейс Transferable В ТОЙ ЖЕ JVM используется DataFlavor с этим типом/подтипом и representationClass равным типу передаваемого класса/интерфейса через Transferable.
Ссылка на объект, возвращённая из Transferable.getTransferData для DataFlavor с этим MIME Content-Type, должна быть экземпляром класса представления DataFlavor.
- См. также:
- Значения константного поля
javaRemoteObjectMimeType
public static final String javaRemoteObjectMimeType
Для передачи живой ссылки на удалённый объект через операцию перетаскивания ACTION_LINK должен использоваться MIME Content Type application/x-java-remote-object, где класс представления DataFlavor представляет тип интерфейса Remote для передачи.
- См. также:
- Значения константного поля
selectionHtmlFlavor
public static DataFlavor selectionHtmlFlavor
Представляет фрагмент HTML-разметки. Разметка состоит из части, выбранной на стороне источника. Следовательно, некоторые теги в разметке могут быть непарными. Если этот тип используется для представления данных в экземпляре Transferable, дополнительные изменения не будут внесены. Этот экземпляр DataFlavor представляет ту же HTML-разметку, что и экземпляры DataFlavor, тип MIME контента которых не содержит параметра документа, а класс представления — класс String.
representationClass = String
mimeType = "text/html" fragmentHtmlFlavor
public static DataFlavor fragmentHtmlFlavor
Представляет фрагмент HTML-разметки. Если это возможно, полученная из нативной системы разметка дополняется парными тегами, чтобы стать правильно сформированной HTML-разметкой. Если этот тип используется для представления данных в экземпляре Transferable, дополнительные изменения не будут внесены.
representationClass = String
mimeType = "text/html" allHtmlFlavor
public static DataFlavor allHtmlFlavor
Представляет фрагмент HTML-разметки. Если это возможно, полученная из нативной системы разметка дополняется дополнительными тегами для создания правильно сформированного HTML-документа. Если этот тип используется для представления данных в экземпляре Transferable, дополнительные изменения не будут внесены.
representationClass = String
mimeType = "text/html" Конструкторы
DataFlavor
public DataFlavor()
Создаёт новый DataFlavor. Этот конструктор предоставляется только для поддержки интерфейса Externalizable. Он не предназначен для использования клиентами.
- С тех пор как:
- 1.2
DataFlavor
public DataFlavor(Class<?> representationClass,
String humanPresentableName) Создаёт DataFlavor для представления класса Java.
Возвращаемый DataFlavor будет иметь следующие характеристики:
representationClass = representationClass
mimeType = application/x-java-serialized-object
- Параметры:
-
representationClass- класс, используемый для передачи данных в этом типе -
humanPresentableName- удобочитаемая строка, используемая для идентификации этого типа; если этот параметрnull, используется значение MIME Content Type - Исключения:
-
NullPointerException- еслиrepresentationClassимеет значение null
DataFlavor
public DataFlavor(String mimeType,
String humanPresentableName) Создаёт DataFlavor для представления MimeType.
Возвращаемый DataFlavor будет иметь следующие характеристики:
Если mimeType равно «application/x-java-serialized-object; class=<класс представления>», результат будет таким же, как при вызове new DataFlavor(Class:forName(<representation class>).
В противном случае:
representationClass = InputStream
mimeType = mimeType
- Параметры:
-
mimeType- строка, используемая для идентификации MIME-типа для этого типа; еслиmimeTypeне указывает параметр «class=», или класс не загружен успешно, выбрасывается исключениеIllegalArgumentException -
humanPresentableName- удобочитаемая строка, используемая для идентификации этого типа; если этот параметрnull, используется значение MIME Content Type - Исключения:
-
IllegalArgumentException- еслиmimeTypeнедопустимо или класс не загружен успешно -
NullPointerException- еслиmimeTypeимеет значение null
DataFlavor
public DataFlavor(String mimeType,
String humanPresentableName,
ClassLoader classLoader)
throws ClassNotFoundException Создаёт DataFlavor для представления MimeType.
Возвращаемый DataFlavor будет иметь следующие характеристики:
Если mimeType равно «application/x-java-serialized-object; class=<класс представления>», результат будет таким же, как при вызове new DataFlavor(Class:forName(<representation class>).
В противном случае:
representationClass = InputStream
mimeType = mimeType
- Параметры:
-
mimeType- строка, используемая для идентификации MIME-типа для этого типа -
humanPresentableName- удобочитаемая строка, используемая для идентификации этого типа -
classLoader- загрузчик классов для использования - Исключения:
-
ClassNotFoundException- если класс не загружен -
IllegalArgumentException- еслиmimeTypeнедопустимо -
NullPointerException- еслиmimeTypeимеет значение null
DataFlavor
public DataFlavor(String mimeType)
throws ClassNotFoundException Создаёт DataFlavor из строки mimeType. Строка может содержать параметр «class=<полное имя Java класса>» для создания DataFlavor с желаемым классом представления. Если строка не содержит параметр «class=», java.io.InputStream используется по умолчанию.
- Параметры:
-
mimeType- строка, используемая для идентификации MIME-типа для этого типа; если класс, указанный в параметре «class=», не загружен успешно, выбрасываетсяClassNotFoundException - Исключения:
-
ClassNotFoundException- если класс не загружен -
IllegalArgumentException- еслиmimeTypeнедопустимо -
NullPointerException- еслиmimeTypeимеет значение null
Методы
tryToLoadClass
protected static final Class<?> tryToLoadClass(String className,
ClassLoader fallback)
throws ClassNotFoundException Попытка загрузить класс из: загрузчика по умолчанию, системного загрузчика, загрузчика контекста (если он есть) и, наконец, указанного загрузчика.
- Параметры:
-
className- имя загружаемого класса -
fallback- загрузчик по умолчанию - Возвращает:
- загруженный класс
- Исключения:
-
ClassNotFoundException- если класс не найден
toString
public String toString()
Строковое представление этого DataFlavor и его параметров. Результирующая String содержит имя класса DataFlavor, MIME-тип этого типа и его класс представления. Если у этого типа основной MIME-тип «text», поддерживается параметр charset и есть кодированное представление, также включается charset типа. См. selectBestTextFlavor для списка текстовых типов, которые поддерживают параметр charset.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этого
DataFlavor - См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
getTextPlainUnicodeFlavor
public static final DataFlavor getTextPlainUnicodeFlavor()
Возвращает DataFlavor, представляющее обычный текст с кодировкой Unicode, где:
representationClass = java.io.InputStream
mimeType = "text/plain;
charset=<platform default Unicode encoding>" Реализация Sun для Microsoft Windows использует кодировку utf-16le. Реализация Sun для Solaris и Linux использует кодировку iso-10646-ucs-2. - Возвращает:
DataFlavor, представляющее обычный текст с кодировкой Unicode- С тех пор как:
- 1.3
selectBestTextFlavor
public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
Выбирает лучший текст DataFlavor из массива
DataFlavor. Для выбора рассматриваются только DataFlavor.stringFlavor, и эквивалентные варианты, а также типы MIME с основным типом "text".
Варианты сначала сортируются по типам MIME в следующем порядке:
- "text/sgml"
- "text/xml"
- "text/html"
- "text/rtf"
- "text/enriched"
- "text/richtext"
- "text/uri-list"
- "text/tab-separated-values"
- "text/t140"
- "text/rfc822-headers"
- "text/parityfec"
- "text/directory"
- "text/css"
- "text/calendar"
- "application/x-java-serialized-object"
- "text/plain"
- "text/<other>"
Например, "text/sgml" будет выбран вместо "text/html", а DataFlavor.stringFlavor будет выбрано вместо DataFlavor.plainTextFlavor.
Если два или более варианта имеют лучший тип MIME в массиве, то этот тип MIME будет проверен на поддержку параметра charset.
Следующие типы MIME поддерживают или считаются поддерживающими параметр charset:
- "text/sgml"
- "text/xml"
- "text/html"
- "text/enriched"
- "text/richtext"
- "text/uri-list"
- "text/directory"
- "text/css"
- "text/calendar"
- "application/x-java-serialized-object"
- "text/plain"
- "text/rtf"
- "text/tab-separated-values"
- "text/t140"
- "text/rfc822-headers"
- "text/parityfec"
DataFlavor, использующем этот тип MIME. Если да, JRE предположит, что тип MIME поддерживает параметр charset, и больше не будет проверять. Если параметр не указан, JRE предположит, что тип MIME не поддерживает параметр charset, и больше не будет проверять. Поскольку эта проверка выполняется на произвольно выбранном DataFlavor, разработчики должны гарантировать, что все DataFlavor с типом MIME "text/<other>" указывают параметр charset, если он поддерживается этим типом MIME. Разработчики не должны полагаться на JRE для подстановки стандартной кодировки платформы для DataFlavor "text/<other>". Несоблюдение этого ограничения приведет к неопределенному поведению. Если лучший тип MIME в массиве не поддерживает параметр charset, то варианты, имеющие этот тип MIME, будут отсортированы по классам представления в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.
Если два или более варианта имеют одинаковый лучший класс представления, или если ни один вариант не имеет одного из трех указанных представлений, то один из этих вариантов будет выбран случайным образом.
Если лучший тип MIME в массиве поддерживает параметр charset, то варианты, имеющие этот тип MIME, будут отсортированы по классам представлений в следующем порядке: java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, <все остальные>.
Если два или более варианта имеют одинаковый лучший класс представления, и это представление является одним из четырёх явно перечисленных, то один из этих вариантов будет выбран случайным образом. Если же ни один вариант не имеет одного из четырёх указанных представлений, то варианты будут отсортированы по кодировкам. Кодировки Unicode, такие как "UTF-16", "UTF-8", "UTF-16BE", "UTF-16LE" и их аналоги, считаются лучшими. После них выбирается стандартная кодировка платформы и ее аналоги. "US-ASCII" и её аналоги являются наихудшими. Все остальные кодировки выбираются в алфавитном порядке, но учитываются только кодировки, поддерживаемые этой реализацией Java платформы.
Если два или более варианта имеют одинаковую лучшую кодировку, то варианты будут снова отсортированы по классам представлений в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.
Если два или более варианта имеют одинаковый лучший класс представления, или если ни один вариант не имеет одного из трёх указанных представлений, то один из этих вариантов будет выбран случайным образом.
- Параметры:
-
availableFlavors- массив доступныхDataFlavor - Возвращает:
- лучший (с наивысшей точностью) вариант в соответствии с правилами, указанными выше, или
null, еслиavailableFlavorsnull, имеет нулевую длину или не содержит текстовых вариантов - С:
- 1.3
getReaderForText
public Reader getReaderForText(Transferable transferable)
throws UnsupportedFlavorException,
IOException Возвращает Reader для текстового варианта, если необходимо, декодированного для ожидаемой кодировки. Поддерживаемые классы представления - java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, java.io.InputStream, java.nio.ByteBuffer, и [B.
Поскольку текстовые варианты, не поддерживающие параметр charset, закодированы в нестандартном формате, этот метод не следует вызывать для таких вариантов. Однако, для поддержания обратной совместимости, если этот метод вызван для такого варианта, он будет рассматривать вариант как поддерживающий параметр charset и попытается декодировать его соответствующим образом. См. selectBestTextFlavor для списка текстовых вариантов, не поддерживающих параметр charset.
- Параметры:
-
transferable-Transferable, данные которого будут запрошены в этом варианте - Возвращает:
Readerдля чтения данныхTransferable- Изначает:
-
IllegalArgumentException- если класс представления не является одним из семи перечисленных выше -
IllegalArgumentException- еслиTransferableсодержитnullданные -
NullPointerException- еслиTransferablenull -
UnsupportedEncodingException- если представление этого варианта являетсяjava.io.InputStream,java.nio.ByteBuffer, или[Bи кодировка этого варианта не поддерживается данной реализацией Java платформы -
UnsupportedFlavorException- еслиTransferableне поддерживает этот вариант -
IOException- если данные не могут быть прочитаны из-за ошибки ввода-вывода - С:
- 1.3
- См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
getMimeType
public String getMimeType()
Возвращает строку типа MIME для этого DataFlavor.
- Возвращает:
- строку типа MIME для этого варианта
getRepresentationClass
public Class<?> getRepresentationClass()
Возвращает Class, которое объекты, поддерживающие этот DataFlavor, вернут при запросе этого DataFlavor.
- Возвращает:
Class, которое объекты, поддерживающие этотDataFlavor, вернут при запросе этогоDataFlavor
getHumanPresentableName
public String getHumanPresentableName()
Возвращает удобочитаемое имя формата данных, которое представляет этот DataFlavor. Это имя локализовано для разных стран.
- Возвращает:
- удобочитаемое имя формата данных, которое представляет этот
DataFlavor
getPrimaryType
public String getPrimaryType()
Возвращает основной тип MIME для этого DataFlavor.
- Возвращает:
- основной тип MIME этого
DataFlavor
getSubType
public String getSubType()
Возвращает подтип MIME этого DataFlavor.
- Возвращает:
- подтип MIME этого
DataFlavor
getParameter
public String getParameter(String paramName)
Возвращает удобочитаемое имя для этого DataFlavor если paramName равно "humanPresentableName". В противном случае возвращает значение типа MIME, связанное с paramName.
- Параметры:
-
paramName- имя запрашиваемого параметра - Возвращает:
- значение параметра с именем, или
nullесли нет связанного значения
setHumanPresentableName
public void setHumanPresentableName(String humanPresentableName)
Устанавливает удобочитаемое имя формата данных, которое представляет этот DataFlavor. Это имя локализовано для разных стран.
- Параметры:
-
humanPresentableName- новое удобочитаемое имя
equals
public boolean equals(Object o)
Указывает, является ли какой-либо другой объект "равным" этому объекту.
Метод equals реализует отношение эквивалентности для ссылок на объекты, отличные от null:
- Он рефлексивен: для любой ссылки на объект, отличную от null,
x,x.equals(x)должен возвращатьtrue. - Он симметричен: для любых значений ссылок на объекты, отличные от null,
xиy,x.equals(y)должен возвращатьtrueтогда и только тогда, когдаy.equals(x)возвращаетtrue. - Он транзитивен: для любых значений ссылок на объекты, отличные от null,
x,y, иz, еслиx.equals(y)возвращаетtrueиy.equals(z)возвращаетtrue, тоx.equals(z)должен возвращатьtrue. - Он постоянен: для любых значений ссылок на объекты, отличные от null,
xиy, многократные вызовыx.equals(y)последовательно возвращаютtrueили последовательно возвращаютfalse, при условии, что информация, используемая в сравненияхequalsпо объектам, не изменяется. - Для любого значения ссылки на объект, отличного от null,
x,x.equals(null)должен возвращатьfalse.
Метод equals для класса Object реализует максимально возможное отношение эквивалентности для объектов; то есть для любых значений ссылок на объекты, отличные от null, x и y, этот метод возвращает true тогда и только тогда, когда x и y ссылаются на один и тот же объект (x == y имеет значение true).
Обратите внимание, что обычно необходимо переопределять метод hashCode всякий раз, когда этот метод переопределяется, чтобы сохранить общий контракт для метода hashCode, который гласит, что равные объекты должны иметь равные коды хеширования.
Сравнение на равенство для класса DataFlavor реализуется следующим образом: Два объекта DataFlavor считаются равными тогда и только тогда, когда их основной тип и подтип MIME и класс представления равны. Кроме того, если основной тип равен "text", подтип обозначает вид текста, который поддерживает параметр charset, и класс представления не равен java.io.Reader, java.lang.String, java.nio.CharBuffer, или [C, параметр charset также должен быть равен. Если для одного или обоих объектов DataFlavor явно не указан charset, предполагается платформа кодировка по умолчанию. Список видов текста, которые поддерживают параметр charset, см. в selectBestTextFlavor.
- Overrides:
-
equalsв классеObject - Parameters:
-
o- сравниваемый объектObjectсthis - Returns:
-
trueеслиthatэквивалентен этомуDataFlavor;falseв противном случае - См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
equals
public boolean equals(DataFlavor that)
Этот метод имеет такое же поведение, как equals(Object). Единственное отличие заключается в том, что в качестве параметра используется экземпляр DataFlavor.
- Parameters:
-
that- сравниваемый объектDataFlavorсthis - Returns:
-
trueеслиthatэквивалентен этомуDataFlavor;falseв противном случае - См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
equals
@Deprecated public boolean equals(String s)
Устарело. Несовместимо с контрактом hashCode(), используйте isMimeTypeEqual(String) вместо этого.
Сравнивает только mimeType с переданным String, и representationClass в сравнении не учитывается. Если representationClass необходимо сравнить, то можно использовать equals(new DataFlavor(s)).
- Parameters:
-
s- сравниваемыйmimeType. - Returns:
- true, если строка (MimeType) равна; false в противном случае или если
sравноnull
hashCode
public int hashCode()
Возвращает код хэширования для данного DataFlavor. Для двух равных DataFlavor коды хэширования равны. Для String которые соответствуют DataFlavor.equals(String), не гарантируется, что код хэширования DataFlavor равен коду хэширования String.
- Overrides:
-
hashCodeв классеObject - Returns:
- код хэширования для данного
DataFlavor - См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
match
public boolean match(DataFlavor that)
Идентично equals(DataFlavor).
- Parameters:
-
that- сравниваемый объектDataFlavorсthis - Returns:
-
trueеслиthatэквивалентен этомуDataFlavor;falseв противном случае - Since:
- 1.3
- См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
isMimeTypeEqual
public boolean isMimeTypeEqual(String mimeType)
Возвращает, эквивалентно ли строковое представление типа MIME, переданное в качестве параметра, типу MIME этого DataFlavor. Параметры в сравнении не учитываются.
- Parameters:
-
mimeType- строковое представление типа MIME - Returns:
- true, если строковое представление типа MIME, переданное в качестве параметра, эквивалентно типу MIME этого
DataFlavor; false в противном случае - Throws:
-
NullPointerException- если mimeTypenull
isMimeTypeEqual
public final boolean isMimeTypeEqual(DataFlavor dataFlavor)
Сравнивает типы MIME двух объектов DataFlavor. Параметры не учитываются.
- Parameters:
-
dataFlavor- сравниваемый объектDataFlavor - Returns:
- true, если типы MIME равны; в противном случае false
isMimeTypeSerializedObject
public boolean isMimeTypeSerializedObject()
Представляет ли DataFlavor сериализованный объект?
getDefaultRepresentationClass
public final Class<?> getDefaultRepresentationClass()
getDefaultRepresentationClassAsString
public final String getDefaultRepresentationClassAsString()
isRepresentationClassInputStream
public boolean isRepresentationClassInputStream()
Представляет ли DataFlavor java.io.InputStream?
isRepresentationClassReader
public boolean isRepresentationClassReader()
Возвращает true, если класс представления для данного DataFlavor равен java.io.Reader или его подклассу.
- Since:
- 1.4
isRepresentationClassCharBuffer
public boolean isRepresentationClassCharBuffer()
Возвращает true, если класс представления для данного DataFlavor равен java.nio.CharBuffer или его подклассу.
- Since:
- 1.4
isRepresentationClassByteBuffer
public boolean isRepresentationClassByteBuffer()
Возвращает true, если класс представления для данного DataFlavor равен java.nio.ByteBuffer или его подклассу.
- Since:
- 1.4
isRepresentationClassSerializable
public boolean isRepresentationClassSerializable()
Возвращает true, если класс представления может быть сериализован.
- Returns:
- true, если класс представления может быть сериализован
isRepresentationClassRemote
public boolean isRepresentationClassRemote()
Возвращает true, если класс представления равен Remote.
- Returns:
- true, если класс представления равен
Remote
isFlavorSerializedObjectType
public boolean isFlavorSerializedObjectType()
Возвращает true, если указанный DataFlavor представляет сериализованный объект.
- Returns:
- true, если указанный
DataFlavorпредставляет сериализованный объект
isFlavorRemoteObjectType
public boolean isFlavorRemoteObjectType()
Возвращает true, если указанный DataFlavor представляет удаленный объект.
- Returns:
- true, если указанный
DataFlavorпредставляет удаленный объект
isFlavorJavaFileListType
public boolean isFlavorJavaFileListType()
Возвращает true, если указанный DataFlavor представляет список объектов файлов.
- Returns:
- true, если указанный
DataFlavorпредставляет список объектов файлов
isFlavorTextType
public boolean isFlavorTextType()
Возвращает, является ли данный DataFlavor допустимым типом текста для данной реализации Java платформы. Только типы, эквивалентные DataFlavor.stringFlavor и DataFlavor с основным типом MIME "text", могут быть допустимыми типами текста.
Если этот тип поддерживает параметр charset, он должен быть эквивалентен DataFlavor.stringFlavor, или его представление должно быть java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, java.io.InputStream, java.nio.ByteBuffer, или [B. Если представление равно java.io.InputStream, java.nio.ByteBuffer, или [B, то параметр charset этого типа должен поддерживаться данной реализацией Java платформы. Если charset не указан, предполагается платформа кодировка по умолчанию, которая всегда поддерживается.
Если этот тип не поддерживает параметр charset, его представление должно быть java.io.InputStream, java.nio.ByteBuffer, или [B.
Список типов текста, которые поддерживают параметр charset, см. в selectBestTextFlavor.
- Возвращает:
-
trueесли этотDataFlavorявляется допустимым типом текста, как описано выше;falseв противном случае - С:
- 1.4
- См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
writeExternal
public void writeExternal(ObjectOutput os)
throws IOException Сериализует этот DataFlavor.
- Определено в:
-
writeExternalв интерфейсеExternalizable - Параметры:
-
os- поток для записи объекта - Исключения:
-
IOException- Включает любые исключения I/O, которые могут возникнуть
readExternal
public void readExternal(ObjectInput is)
throws IOException,
ClassNotFoundException Восстанавливает этот DataFlavor из сериализованного состояния.
- Определено в:
-
readExternalв интерфейсеExternalizable - Параметры:
-
is- поток для чтения данных с целью восстановления объекта - Исключения:
-
IOException- если возникают ошибки I/O -
ClassNotFoundException- Если класс объекта, который восстанавливается, не найден.
clone
public Object clone()
throws CloneNotSupportedException Возвращает копию этого DataFlavor.
- Переопределяет:
-
cloneв классеObject - Возвращает:
- копию этого
DataFlavor - Исключения:
-
CloneNotSupportedException- если класс объекта не поддерживает интерфейсCloneable. Подклассы, которые переопределяют методclone, также могут бросить это исключение, чтобы указать, что экземпляр не может быть скопирован. - См. также:
Cloneable
normalizeMimeTypeParameter
@Deprecated
protected String normalizeMimeTypeParameter(String parameterName,
String parameterValue) Устарело.
Вызывается для каждого параметра MIME-типа в DataFlavor чтобы DataFlavor подклассы могли обрабатывать специальные параметры, такие как параметры text/plain charset, значения которых не зависят от регистра. (Значения параметров MIME-типов должны быть чувствительными к регистру.
Этот метод вызывается для каждой пары имя/значение параметра и должен возвращать нормализованное представление parameterValue. Этот метод никогда не вызывается этим реализацией начиная с версии 1.1.
normalizeMimeType
@Deprecated protected String normalizeMimeType(String mimeType)
Устарело.
Вызывается для каждой строки MIME-типа, чтобы DataFlavor подтипы имели возможность изменить способ нормализации MIME-типов. Одним из возможных применений было бы добавление пар параметр/значение по умолчанию в случаях, когда они отсутствуют в строке MIME-типа, переданной в. Этот метод никогда не вызывается этой реализацией начиная с версии 1.1.
© 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.