Класс DataFlavor

Все реализованные интерфейсы:
Externalizable, Serializable, Cloneable
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.

С тех пор:
1.1
См. также:
Сериализованная форма

Поля

Модификатор и тип Поле Описание
static DataFlavor allHtmlFlavor

Представляет фрагмент HTML разметки.

static DataFlavor fragmentHtmlFlavor

Представляет фрагмент HTML разметки.

static DataFlavor imageFlavor

Класс DataFlavor представляющий класс Java Image, где:

static DataFlavor javaFileListFlavor

Для передачи списка файлов в/из Java (и платформы) используется тип/подтип DataFlavor и класс представления java.util.List.

static String javaJVMLocalObjectMimeType

Для передачи ссылки на произвольный объект Java без связанного типа MIME через интерфейс Transferable ВНУТРИ ТОГО ЖЕ JVM используется тип/подтип DataFlavor, с классом представления, равным типу передаваемого класса/интерфейса через интерфейс Transferable.

static String javaRemoteObjectMimeType

Для передачи активной ссылки на удалённый объект через операцию перетаскивания ACTION_LINK используется тип MIME application/x-java-remote-object, где класс представления DataFlavor представляет тип интерфейса Remote для передачи.

static String javaSerializedObjectMimeType

Тип MIME application/x-java-serialized-object представляет собой граф объектов Java, которые были сделаны постоянными.

static DataFlavor plainTextFlavor

Устарело.

с версии 1.3.

static DataFlavor selectionHtmlFlavor

Представляет фрагмент HTML разметки.

static DataFlavor stringFlavor

Класс DataFlavor представляющий класс Java Unicode String, где:

Конструкторы

Конструктор Описание
DataFlavor()

Создаёт новый объект DataFlavor.

DataFlavor​(Class<?> representationClass, String humanPresentableName)

Создаёт объект DataFlavor, представляющий класс Java.

DataFlavor​(String mimeType)

Создаёт объект DataFlavor из строки mimeType.

DataFlavor​(String mimeType, String humanPresentableName)

Создаёт объект DataFlavor, представляющий MimeType.

DataFlavor​(String mimeType, String humanPresentableName, ClassLoader classLoader)

Создаёт объект DataFlavor, представляющий MimeType.

Методы

Модификатор и тип Метод Описание
Object clone()

Возвращает клон этого DataFlavor.

boolean equals​(DataFlavor that)

Этот метод имеет такое же поведение, как equals(Object).

boolean equals​(Object o)

Указывает, является ли какой-либо другой объект "равным" этому объекту.

boolean equals​(String s)

Устарело.

Ввиду несовместимости с контрактом hashCode() используйте isMimeTypeEqual(String) вместо этого.

Class<?> getDefaultRepresentationClass()

Возвращает класс представления по умолчанию.

String getDefaultRepresentationClassAsString()

Возвращает имя класса представления по умолчанию.

String getHumanPresentableName()

Возвращает удобочитаемое имя формата данных, который представляет этот DataFlavor.

String getMimeType()

Возвращает строку MIME-типа для этого DataFlavor.

String getParameter​(String paramName)

Возвращает удобочитаемое имя для этого DataFlavor если paramName равно "humanPresentableName".

String getPrimaryType()

Возвращает первичный MIME-тип для этого DataFlavor.

Reader getReaderForText​(Transferable transferable)

Получает объект Reader для текстового представления, декодированный, при необходимости, для ожидаемого набора символов (кодировки).

Class<?> getRepresentationClass()

Возвращает Class, которое объекты, поддерживающие этот DataFlavor будут возвращать при запросе этого DataFlavor.

String getSubType()

Возвращает подтип MIME-типа для этого DataFlavor.

static DataFlavor getTextPlainUnicodeFlavor()

Возвращает DataFlavor, представляющий обычный текст с кодировкой Unicode, где:

int hashCode()

Возвращает код хэша для этого DataFlavor.

boolean isFlavorJavaFileListType()

Возвращает true если указанный DataFlavor представляет список объектов файлов.

boolean isFlavorRemoteObjectType()

Возвращает true если указанный DataFlavor представляет удалённый объект.

boolean isFlavorSerializedObjectType()

Возвращает true если указанный DataFlavor представляет сериализованный объект.

boolean isFlavorTextType()

Возвращает, является ли этот DataFlavor допустимым текстовым представлением для этой реализации Java платформы.

boolean isMimeTypeEqual​(DataFlavor dataFlavor)

Сравнивает mimeType двух объектов DataFlavor.

boolean isMimeTypeEqual​(String mimeType)

Возвращает, эквивалентен ли строковый формат MIME-типа, переданного в качестве параметра, MIME-типу этого DataFlavor.

boolean isMimeTypeSerializedObject()

Представляет ли DataFlavor сериализованный объект?

boolean isRepresentationClassByteBuffer()

Возвращает, является ли класс представления для этого DataFlavor java.nio.ByteBuffer или его подклассом.

boolean isRepresentationClassCharBuffer()

Возвращает, является ли класс представления для этого DataFlavor java.nio.CharBuffer или его подклассом.

boolean isRepresentationClassInputStream()

Представляет ли DataFlavor java.io.InputStream?

boolean isRepresentationClassReader()

Возвращает, является ли класс представления для этого DataFlavor java.io.Reader или его подклассом.

boolean isRepresentationClassRemote()

Возвращает true если класс представления Remote.

boolean isRepresentationClassSerializable()

Возвращает true если класс представления может быть сериализован.

boolean match​(DataFlavor that)

Идентично equals(DataFlavor).

protected String normalizeMimeType​(String mimeType)

Устарело.

Этот метод никогда не вызывается реализацией начиная с версии 1.1

protected String normalizeMimeTypeParameter​(String parameterName, String parameterValue)

Устарело.

Этот метод никогда не вызывается реализацией начиная с версии 1.1

void readExternal​(ObjectInput is)

Восстанавливает этот DataFlavor из сериализованного состояния.

static DataFlavor selectBestTextFlavor​(DataFlavor[] availableFlavors)

Выбирает лучшее текстовое DataFlavor из массива DataFlavor.

void setHumanPresentableName​(String humanPresentableName)

Устанавливает удобочитаемое имя формата данных, которое представляет этот DataFlavor.

String toString()

Строковое представление этого DataFlavor и его параметров.

protected static Class<?> tryToLoadClass​(String className, ClassLoader fallback)

Пытается загрузить класс из: загрузчика Bootstrap, системного загрузчика, контекстного загрузчика (если он присутствует) и, наконец, указанного загрузчика.

void writeExternal​(ObjectOutput os)

Сериализует этот DataFlavor.

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Поля

stringFlavor

public static final DataFlavor stringFlavor

Представляет класс Java Unicode String, где:

representationClass = java.lang.String
     mimeType            = "application/x-java-serialized-object"

imageFlavor

public static final DataFlavor imageFlavor

Представляет класс Java Image, где:

representationClass = java.awt.Image
     mimeType            = "image/x-java-image"
Будет null если java.awt.Image не виден, модуль java.desktop не загружен или модуль java.desktop отсутствует в загружаемой изображении.

plainTextFlavor

@Deprecated
public static final DataFlavor plainTextFlavor
Устарело.
с версии 1.3. Используйте getReaderForText(java.awt.datatransfer.Transferable) вместо Transferable.getTransferData(DataFlavor.plainTextFlavor).

Представляет обычный текст с кодировкой Unicode, где:

representationClass = InputStream
     mimeType            = "text/plain; charset=unicode"
Этот DataFlavor устарел, потому что:
  • Его представление — это поток ввода (InputStream), основанный на 8-битной кодировке, в то время как Unicode — 16-битная кодировка символов
  • Кодировка "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"

С версии:
1.8

fragmentHtmlFlavor

public static DataFlavor fragmentHtmlFlavor

Представляет фрагмент HTML-разметки. Если возможно, разметка, полученная из системного ядра, дополняется спаренными тегами, чтобы стать корректной HTML-разметкой. Если для представления данных используется вкус в экземпляре Transferable, то дополнительные изменения не будут внесены.

representationClass = String
     mimeType            = "text/html"

С версии:
1.8

allHtmlFlavor

public static DataFlavor allHtmlFlavor

Представляет фрагмент HTML-разметки. Если возможно, разметка, полученная из системного ядра, дополняется дополнительными тегами для формирования корректного HTML-документа. Если для представления данных используется вкус в экземпляре Transferable, то дополнительные изменения не будут внесены.

representationClass = String
     mimeType            = "text/html"

С версии:
1.8

Конструкторы

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

Попытка загрузить класс из: загрузчика Bootstrap, системного загрузчика, загрузчика контекста (если он присутствует) и, наконец, указанного загрузчика.

Параметры:
className - имя класса для загрузки
fallback - загрузчик по умолчанию
Возвращает:
загруженный класс
Исключение:
ClassNotFoundException - если класс не найден

toString

public String toString()

Строковое представление этого DataFlavor и его параметров. Результирующая строка содержит имя класса 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>"

Примечание реализации:
Реализация Oracle для Microsoft Windows и macOS использует кодировку utf-16le. Реализация Oracle для 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"
Следующие MIME-типы не поддерживают и считаются не поддерживающими параметр charset:
  • "text/rtf"
  • "text/tab-separated-values"
  • "text/t140"
  • "text/rfc822-headers"
  • "text/parityfec"
Для MIME-типов "text/<other>", в первый раз, когда JRE нужно определить, поддерживает ли MIME-тип параметр charset, он проверит, указан ли параметр явно в произвольно выбранном 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, если availableFlavors пуст, имеет нулевую длину или не содержит текстовых форматов
С:
1.3

getReaderForText

public Reader getReaderForText(Transferable transferable)
                        throws UnsupportedFlavorException,
                               IOException

Получает объект Reader для текстового формата, при необходимости декодированного для ожидаемой кодировки (encoding). Поддерживаемые классы представлений: 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 - если Transferable является null
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 реализует отношение эквивалентности для непустых ссылок на объекты:

  • Он рефлексивен: для любого непустого значения ссылки x, x.equals(x) должен возвращать true.
  • Он симметричен: для любых непустых значений ссылок x и y, x.equals(y) должен возвращать true, если и только если y.equals(x) возвращает true.
  • Он транзитивен: для любых непустых значений ссылок x, y и z, если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должен возвращать true.
  • Он согласован: для любых непустых значений ссылок x и y, множественные вызовы x.equals(y) последовательно возвращают true или последовательно возвращают false, при условии, что никакая информация, используемая в сравнениях equals для объектов, не изменяется.
  • Для любого непустого значения ссылки x, x.equals(null) должен возвращать false.

Метод equals для класса Object реализует наиболее дискриминирующее возможное отношение эквивалентности для объектов; то есть, для любых непустых значений ссылок x и y, этот метод возвращает true, если и только если x и y ссылаются на один и тот же объект (x == y имеет значение true).

Обратите внимание, что обычно необходимо переопределить метод hashCode, когда переопределяется этот метод, чтобы поддерживать общий контракт для метода hashCode, который гласит, что равные объекты должны иметь равные хэш-коды.

Сравнение equals для класса DataFlavor реализовано следующим образом: два DataFlavor считаются равными, если и только если их основной тип и подтип MIME и класс представления равны. Кроме того, если основной тип равен "text", подтип обозначает тип текста, который поддерживает параметр charset, и класс представления не java.io.Reader, java.lang.String, java.nio.CharBuffer или [C, параметр charset также должен быть равен. Если кодировка charset не указана явно для одного или обоих DataFlavor, предполагается кодировка по умолчанию платформы. См. selectBestTextFlavor для списка типов текста, которые поддерживают параметр charset.

Переопределяет:
equals в классе Object
Параметры:
o - Object для сравнения с this
Возвращает:
true, если that эквивалентен этому DataFlavor; false в противном случае
См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

public boolean equals(DataFlavor that)

Этот метод имеет такое же поведение, как equals(Object). Единственное различие состоит в том, что он принимает экземпляр DataFlavor в качестве параметра.

Параметры:
that - DataFlavor для сравнения с this
Возвращает:
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)).

Параметры:
s - mimeType для сравнения
Возвращает:
true, если строка (MimeType) равна; false в противном случае или если s есть null

hashCode

public int hashCode()

Возвращает хэш-код для этого DataFlavor. Для двух равных DataFlavor, хэш-коды равны. Для String, совпадающего с DataFlavor.equals(String), не гарантируется, что хэш-код DataFlavor равен хэш-коду String.

Переопределяет:
hashCode в классе Object
Возвращает:
хэш-код для этого DataFlavor
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

match

public boolean match(DataFlavor that)

Идентично equals(DataFlavor).

Параметры:
that - DataFlavor для сравнения с this
Возвращает:
true, если that эквивалентен этому DataFlavor; false в противном случае
С версии:
1.3
См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

isMimeTypeEqual

public boolean isMimeTypeEqual(String mimeType)

Возвращает, эквивалентно ли строковое представление переданного типа MIME типу MIME этого DataFlavor. Параметры не учитываются в сравнении.

Параметры:
mimeType - строковое представление типа MIME
Возвращает:
true, если строковое представление переданного типа MIME эквивалентно типу MIME этого DataFlavor; false в противном случае
Исключения:
NullPointerException - если mimeType есть null

isMimeTypeEqual

public final boolean isMimeTypeEqual(DataFlavor dataFlavor)

Сравнивает mimeType двух объектов DataFlavor. Параметры не учитываются.

Параметры:
dataFlavor - DataFlavor для сравнения
Возвращает:
true, если MimeType равны, иначе false

isMimeTypeSerializedObject

public boolean isMimeTypeSerializedObject()

Представляет ли DataFlavor сериализованный объект?

Возвращает:
представляет ли сериализованный объект

getDefaultRepresentationClass

public final Class<?> getDefaultRepresentationClass()

Возвращает класс представления по умолчанию.

Возвращает:
класс представления по умолчанию

getDefaultRepresentationClassAsString

public final String getDefaultRepresentationClassAsString()

Возвращает имя класса представления по умолчанию.

Возвращает:
имя класса представления по умолчанию

isRepresentationClassInputStream

public boolean isRepresentationClassInputStream()

Представляет ли DataFlavor java.io.InputStream?

Возвращает:
представляет ли этот DataFlavor java.io.InputStream

isRepresentationClassReader

public boolean isRepresentationClassReader()

Возвращает, является ли класс представления для этого DataFlavor java.io.Reader или его подклассом.

Возвращает:
является ли класс представления для этого DataFlavor java.io.Reader или его подклассом
С версии:
1.4

isRepresentationClassCharBuffer

public boolean isRepresentationClassCharBuffer()

Возвращает, является ли класс представления для этого DataFlavor java.nio.CharBuffer или его подклассом.

Возвращает:
является ли класс представления для этого DataFlavor java.nio.CharBuffer или его подклассом
С версии:
1.4

isRepresentationClassByteBuffer

public boolean isRepresentationClassByteBuffer()

Возвращает, является ли класс представления для этого DataFlavor java.nio.ByteBuffer или его подклассом.

Возвращает:
является ли класс представления для этого DataFlavor java.nio.ByteBuffer или его подклассом
С версии:
1.4

isRepresentationClassSerializable

public boolean isRepresentationClassSerializable()

Возвращает true, если класс представления может быть сериализован.

Возвращает:
true, если класс представления может быть сериализован

isRepresentationClassRemote

public boolean isRepresentationClassRemote()

Возвращает true, если класс представления есть Remote.

Возвращает:
true, если класс представления есть Remote

isFlavorSerializedObjectType

public boolean isFlavorSerializedObjectType()

Возвращает true, если указанный DataFlavor представляет сериализованный объект.

Возвращает:
true, если указанный DataFlavor представляет сериализованный объект

isFlavorRemoteObjectType

public boolean isFlavorRemoteObjectType()

Возвращает true, если указанный DataFlavor представляет удаленный объект.

Возвращает:
true, если указанный DataFlavor представляет удаленный объект

isFlavorJavaFileListType

public boolean isFlavorJavaFileListType()

Возвращает true, если указанный DataFlavor представляет список объектов файлов.

Возвращает:
true если указанный DataFlavor представляет собой java.util.List объектов java.io.File

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.

См. selectBestTextFlavor для списка типов текста, которые поддерживают параметр charset.

Возвращает:
true если этот DataFlavor является допустимым типом текста, как описано выше; false в противном случае
С тех пор:
1.4
См. также:
selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

writeExternal

public void writeExternal(ObjectOutput os)
                   throws IOException

Сериализует этот DataFlavor.

Задано:
writeExternal в интерфейсе Externalizable
Параметры:
os - поток для записи объекта
Изволяет:
IOException - Включает все возможные исключения ввода/вывода

readExternal

public void readExternal(ObjectInput is)
                  throws IOException,
                         ClassNotFoundException

Восстанавливает этот DataFlavor из сериализованного состояния.

Задано:
readExternal в интерфейсе Externalizable
Параметры:
is - поток для чтения данных для восстановления объекта
Изволяет:
IOException - если возникают ошибки ввода/вывода
ClassNotFoundException - Если класс для восстанавливаемого объекта не найден.

clone

public Object clone()
             throws CloneNotSupportedException

Возвращает копию этого DataFlavor.

Переопределяет:
clone в классе Object
Возвращает:
копию этого DataFlavor
Изволяет:
CloneNotSupportedException - если класс объекта не поддерживает интерфейс Cloneable. Подклассы, переопределяющие метод clone, также могут выбросить это исключение, чтобы указать, что экземпляр не может быть скопирован.
См. также:
Cloneable

normalizeMimeTypeParameter

@Deprecated
protected String normalizeMimeTypeParameter(String parameterName,
                                            String parameterValue)
Устаревшее.
Этот метод никогда не вызывается данной реализацией начиная с 1.1

Вызывается для DataFlavor для каждого параметра MIME-типа, чтобы DataFlavor подклассы могли обработать специальные параметры, такие как параметры text/plain charset, значения которых нечувствительны к регистру. (Значения параметров MIME-типов должны быть чувствительны к регистру.)

Этот метод вызывается для каждой пары имя/значение параметра и должен возвращать нормализованное представление parameterValue.

Параметры:
parameterName - имя параметра
parameterValue - значение параметра
Возвращает:
значение параметра

normalizeMimeType

@Deprecated
protected String normalizeMimeType(String mimeType)
Устаревшее.
Этот метод никогда не вызывается данной реализацией начиная с 1.1

Вызывается для каждого MIME-типа, чтобы DataFlavor подтипы имели возможность изменить способ нормализации MIME-типов. Одним из возможных применений было бы добавление пар параметров/значений в случаях, когда они отсутствуют в передаваемой строке MIME-типа.

Параметры:
mimeType - MIME-тип
Возвращает:
MIME-тип

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.datatransfer/java/awt/datatransfer/DataFlavor.html

Spec-Zone .ru
спецификации, руководства, описания, API