Spec-Zone.ru › OpenJDK 25

Класс DataFlavor

java.lang.Object
java.awt.datatransfer.DataFlavor
Все реализованные интерфейсы:
Externalizable, Serializable, Cloneable
public class DataFlavor extends Object implements Externalizable, Cloneable
DataFlavor предоставляет метаинформацию о данных. DataFlavor обычно используется для доступа к данным в буфере обмена или во время операции перетаскивания.

Экземпляр DataFlavor инкапсулирует тип содержимого, определённый в RFC 2045 и RFC 2046. Тип содержимого обычно называют типом MIME.

Тип содержимого состоит из типа носителя (называемого основным типом), подтипа и необязательных параметров. Подробнее о синтаксисе типа MIME см. в RFC 2045.

Реализация передачи данных JRE интерпретирует параметр MIME-типа "class" как класс представления. Класс представления отражает класс передаваемого объекта. Другими словами, класс представления — это тип объекта, возвращаемого методом Transferable.getTransferData(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(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 final DataFlavor allHtmlFlavor
Представляет фрагмент разметки HTML.
static final DataFlavor fragmentHtmlFlavor
Представляет фрагмент разметки HTML.
static final DataFlavor imageFlavor
DataFlavor, представляющий класс Java Image, где:
static final DataFlavor javaFileListFlavor
Для передачи списка файлов в Java или из Java (и нижележащей платформы) используется DataFlavor этого типа/подтипа и класса представления java.util.List.
static final String javaJVMLocalObjectMimeType
Для передачи ссылки на произвольный объект Java, не имеющий связанного типа содержимого MIME, через интерфейс Transferable В ПРЕДЕЛАХ ОДНОЙ JVM используется DataFlavor с этим типом/подтипом и representationClass, равным типу класса/интерфейса, передаваемого через Transferable.
static final String javaRemoteObjectMimeType
Чтобы передать действующую ссылку на удалённый объект с помощью операции перетаскивания ACTION_LINK, следует использовать тип содержимого MIME application/x-java-remote-object, где класс представления DataFlavor указывает тип интерфейса Remote, который необходимо передать.
static final String javaSerializedObjectMimeType
Тип содержимого MIME application/x-java-serialized-object представляет граф объектов Java, сохранённых в постоянном хранилище.
static final DataFlavor plainTextFlavor
Устарело.
начиная с версии 1.3.
static final DataFlavor selectionHtmlFlavor
Представляет фрагмент разметки HTML.
static final DataFlavor stringFlavor
DataFlavor, представляющий класс строки Unicode Java, где:

Краткое описание конструкторов

Конструктор Описание
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).
final Class<?> getDefaultRepresentationClass()
Возвращает класс представления по умолчанию.
final 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 final DataFlavor getTextPlainUnicodeFlavor()
Возвращает DataFlavor, представляющий обычный текст в кодировке Unicode, где:
int hashCode()
Возвращает хеш-код этого DataFlavor.
boolean isFlavorJavaFileListType()
Возвращает true, если указанный DataFlavor представляет список файловых объектов.
boolean isFlavorRemoteObjectType()
Возвращает true, если указанный DataFlavor представляет удалённый объект.
boolean isFlavorSerializedObjectType()
Возвращает true, если указанный DataFlavor представляет сериализованный объект.
boolean isFlavorTextType()
Возвращает значение, указывающее, является ли этот DataFlavor допустимым текстовым форматом для данной реализации платформы Java.
final 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 final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors)
Выбирает наилучший текстовый DataFlavor из массива DataFlavor.
void setHumanPresentableName(String humanPresentableName)
Задаёт понятное пользователю имя формата данных, представленного этим DataFlavor.
String toString()
Строковое представление этого DataFlavor и его параметров.
protected static final Class<?> tryToLoadClass(String className, ClassLoader fallback)
Пытается загрузить класс с помощью загрузчика начальной загрузки, системного загрузчика, загрузчика контекста (если он имеется) и, наконец, указанного загрузчика.
void writeExternal(ObjectOutput os)
Сериализует этот DataFlavor.

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

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

Подробное описание полей

stringFlavor

public static final DataFlavor stringFlavor
DataFlavor, представляющий класс Java Unicode String, где:
    representationClass = java.lang.String
    mimeType            = "application/x-java-serialized-object"

imageFlavor

public static final DataFlavor imageFlavor
DataFlavor, представляющий класс 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. Вместо Transferable.getTransferData(DataFlavor.plainTextFlavor) используйте getReaderForText(Transferable).
DataFlavor, представляющий обычный текст в кодировке Unicode, где:
    representationClass = InputStream
    mimeType            = "text/plain; charset=unicode"
Этот DataFlavor был объявлен устаревшим по следующим причинам:
  • Его представление — это InputStream, основанный на 8-битном представлении, тогда как Unicode — 16-битный набор символов
  • Набор символов "unicode" не имеет точного определения. "unicode" подразумевает конкретную платформенную реализацию Unicode, а не кросс-платформенную

javaSerializedObjectMimeType

public static final String javaSerializedObjectMimeType
Тип содержимого MIME application/x-java-serialized-object представляет граф постоянных объектов Java.

Класс представления, связанный с этим DataFlavor, определяет тип Java-объекта, возвращаемого как ссылка при вызове java.awt.datatransfer.getTransferData.

См. также:
  • Значения констант полей

javaFileListFlavor

public static final DataFlavor javaFileListFlavor
Для передачи списка файлов в Java или из Java (и базовой платформы) используется DataFlavor этого типа/подтипа и класса представления java.util.List. Каждый элемент списка должен иметь тип java.io.File.

javaJVMLocalObjectMimeType

public static final String javaJVMLocalObjectMimeType
Для передачи ссылки на произвольный объект Java, для которого не связан тип содержимого MIME, через интерфейс Transferable ВНУТРИ ОДНОЙ JVM используется DataFlavor с этим типом/подтипом и representationClass, равным типу передаваемого класса/интерфейса через Transferable.

Ссылка на объект, возвращаемая из Transferable.getTransferData для DataFlavor с этим типом содержимого MIME, должна быть экземпляром класса представления DataFlavor.

См. также:
  • Значения констант полей

javaRemoteObjectMimeType

public static final String javaRemoteObjectMimeType
Для передачи действующей ссылки на удаленный объект с помощью операции перетаскивания ACTION_LINK следует использовать тип содержимого MIME application/x-java-remote-object, где класс представления DataFlavor представляет тип передаваемого интерфейса Remote.
См. также:
  • Значения констант полей

selectionHtmlFlavor

public static final DataFlavor selectionHtmlFlavor
Представляет фрагмент HTML-разметки. Разметка состоит из части, выбранной на стороне источника. Поэтому некоторые теги в разметке могут быть непарными. Если этот flavor используется для представления данных в экземпляре Transferable, никаких дополнительных изменений не производится. Этот экземпляр DataFlavor представляет ту же HTML-разметку, что и экземпляры DataFlavor, тип содержимого MIME которых не содержит параметр документа, а классом представления является класс String.
    representationClass = String
    mimeType            = "text/html"
Начиная с версии:
1.8

fragmentHtmlFlavor

public static final DataFlavor fragmentHtmlFlavor
Представляет фрагмент HTML-разметки. По возможности разметка, полученная из встроенной системы, дополняется парными тегами, чтобы сформировать корректную HTML-разметку. Если этот flavor используется для представления данных в экземпляре Transferable, никаких дополнительных изменений не производится.
    representationClass = String
    mimeType            = "text/html"
Начиная с версии:
1.8

allHtmlFlavor

public static final DataFlavor allHtmlFlavor
Представляет фрагмент HTML-разметки. По возможности разметка, полученная из встроенной системы, дополняется дополнительными тегами, чтобы сформировать корректный HTML-документ. Если этот flavor используется для представления данных в экземпляре 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 — класс, используемый для передачи данных в этом flavor
humanPresentableName — понятная человеку строка, используемая для идентификации этого flavor; если этот параметр равен null, используется значение типа содержимого MIME
Исключения:
NullPointerException — если representationClass равно null

DataFlavor

public DataFlavor(String mimeType, String humanPresentableName)
Создает DataFlavor, представляющий MimeType.

Возвращаемый DataFlavor будет обладать следующими характеристиками:

Если mimeType имеет значение "application/x-java-serialized-object; class=<representation class>", результат будет таким же, как при вызове new DataFlavor(Class.forName(<representation class>).

В противном случае:

    representationClass = InputStream
    mimeType            = mimeType
Параметры:
mimeType — строка, используемая для идентификации типа MIME этого flavor; если mimeType не содержит параметр "class=" или если класс не удается загрузить, выбрасывается IllegalArgumentException
humanPresentableName — понятная человеку строка, используемая для идентификации этого flavor; если этот параметр равен null, используется значение типа содержимого MIME
Исключения:
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=<representation class>", результат будет таким же, как при вызове new DataFlavor(Class.forName(<representation class>).

В противном случае:

    representationClass = InputStream
    mimeType            = mimeType
Параметры:
mimeType — строка, используемая для идентификации типа MIME этого flavor
humanPresentableName — понятная человеку строка, используемая для идентификации этого flavor
classLoader — загрузчик классов, который следует использовать
Исключения:
ClassNotFoundException — если класс не загружен
IllegalArgumentException — если mimeType имеет недопустимое значение
NullPointerException — если mimeType равно null

DataFlavor

public DataFlavor(String mimeType) throws ClassNotFoundException
Создает DataFlavor из строки mimeType. В строке можно указать параметр "class=<fully specified Java class name>", чтобы создать DataFlavor с желаемым классом представления. Если строка не содержит параметр "class=", по умолчанию используется java.io.InputStream.
Параметры:
mimeType — строка, используемая для идентификации типа MIME этого flavor; если класс, указанный параметром "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 этого flavor и его класс представления. Если основной тип MIME этого flavor — "text", поддерживается параметр charset и представление имеет кодировку, в результат также включается кодировка flavor. Список текстовых flavor, поддерживающих параметр charset, см. в selectBestTextFlavor.
Переопределяет:
toString в классе Object
Возвращаемое значение:
строковое представление этого DataFlavor
См. также:
  • selectBestTextFlavor(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 и эквивалентные flavor, а также flavor с основным типом MIME "text".

Сначала flavor сортируются по типу 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.

Если два или более flavor в массиве имеют наилучший тип 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>" при первой необходимости определить, поддерживает ли тип MIME параметр charset, JRE проверяет, указан ли этот параметр в произвольно выбранном DataFlavor, использующем данный тип MIME. Если параметр указан, JRE будет считать, что этот тип MIME поддерживает параметр charset, и больше не будет выполнять проверку. Если параметр не указан, JRE будет считать, что этот тип MIME не поддерживает параметр charset, и больше не будет выполнять проверку. Поскольку эта проверка выполняется для произвольно выбранного DataFlavor, разработчики должны убедиться, что все DataFlavor с типом MIME "text/<other>" указывают параметр charset, если этот тип MIME его поддерживает. Разработчикам не следует полагаться на то, что JRE подставит кодировку платформы по умолчанию для DataFlavor с типом MIME "text/<other>". Несоблюдение этого ограничения приведет к неопределенному поведению.

Если наилучший тип MIME в массиве не поддерживает параметр charset, flavor с этим типом MIME сортируются по классам представления в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.

Если два или более flavor имеют наилучший класс представления или ни один flavor не имеет одного из трех указанных представлений, один из этих flavor выбирается недетерминированно.

Если наилучший тип MIME в массиве поддерживает параметр charset, flavor с этим типом MIME сортируются по классам представления в следующем порядке: java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, <все остальные>.

Если два или более flavor имеют наилучший класс представления, и это представление входит в число четырех явно перечисленных, один из этих flavor выбирается недетерминированно. Однако, если ни один flavor не имеет одного из четырех указанных представлений, flavor сортируются по кодировкам. Кодировки Unicode, такие как "UTF-16", "UTF-8", "UTF-16BE", "UTF-16LE" и их псевдонимы, считаются наилучшими. За ними следуют кодировка платформы по умолчанию и ее псевдонимы. "US-ASCII" и ее псевдонимы считаются наихудшими. Все остальные кодировки выбираются в алфавитном порядке, но учитываются только кодировки, поддерживаемые этой реализацией платформы Java.

Если два или более flavor имеют наилучшую кодировку, они снова сортируются по классам представления в следующем порядке: java.io.InputStream, java.nio.ByteBuffer, [B, <все остальные>.

Если два или более flavor имеют наилучший класс представления или ни один flavor не имеет одного из трех указанных представлений, один из этих flavor выбирается недетерминированно.

Параметры:
availableFlavors — массив доступных DataFlavor
Возвращаемое значение:
наилучший flavor (с наибольшей точностью) согласно указанным выше правилам или null, если availableFlavors равно null, имеет нулевую длину или не содержит текстовых flavor
Начиная с версии:
1.3

getReaderForText

public Reader getReaderForText(Transferable transferable) throws UnsupportedFlavorException, IOException
Получает Reader для текстового flavor, при необходимости декодируя данные с учетом ожидаемой кодировки (набора символов). Поддерживаются следующие классы представления: java.io.Reader, java.lang.String, java.nio.CharBuffer, [C, java.io.InputStream, java.nio.ByteBuffer и [B.

Поскольку текстовые flavor, не поддерживающие параметр charset, кодируются в нестандартном формате, этот метод не следует вызывать для таких flavor. Однако для обеспечения обратной совместимости при вызове этого метода для такого flavor он будет считать, что flavor поддерживает параметр charset, и попытается выполнить соответствующее декодирование. Список текстовых flavor, не поддерживающих параметр charset, см. в selectBestTextFlavor.

Параметры:
transferable — Transferable, данные которого будут запрошены в этом flavor
Возвращаемое значение:
Reader для чтения данных Transferable
Исключения:
IllegalArgumentException — если класс представления не входит в число семи перечисленных выше
IllegalArgumentException — если Transferable содержит null данные
NullPointerException — если Transferable равно null
UnsupportedEncodingException — если представление этого flavor — java.io.InputStream, java.nio.ByteBuffer или [B, а его кодировка не поддерживается этой реализацией платформы Java
UnsupportedFlavorException — если Transferable не поддерживает этот flavor
IOException — если данные не удается прочитать из-за ошибки ввода-вывода
Начиная с версии:
1.3
См. также:
  • selectBestTextFlavor(DataFlavor[])

getMimeType

public String getMimeType()
Возвращает строку типа MIME для этого DataFlavor.
Возвращаемое значение:
строка типа MIME для этого flavor

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 — запрашиваемое имя параметра
Возвращаемое значение:
значение параметра name или 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.

Отношение эквивалентности разбивает множество рассматриваемых элементов на классы эквивалентности; все элементы одного класса эквивалентны друг другу. Элементы класса эквивалентности взаимозаменяемы, по крайней мере в некоторых случаях.

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

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

equals

public boolean equals(DataFlavor that)
Этот метод ведет себя так же, как equals(Object). Единственное отличие состоит в том, что он принимает в качестве параметра экземпляр DataFlavor.
Параметры:
that — DataFlavor для сравнения с this
Возвращаемое значение:
true, если that эквивалентен этому DataFlavor; в противном случае — false
См. также:
  • selectBestTextFlavor(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(Object)

match

public boolean match(DataFlavor that)
Идентично equals(DataFlavor).
Параметры:
that — DataFlavor для сравнения с this
Возвращает:
true, если that эквивалентен этому DataFlavor; в противном случае false
Начиная с:
1.3
См. также:
  • selectBestTextFlavor(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, его представлением должно быть java.io.InputStream, java.nio.ByteBuffer или [B.

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

Возвращает:
true, если этот DataFlavor является допустимым текстовым типом, как описано выше; в противном случае false
Начиная с:
1.4
См. также:
  • selectBestTextFlavor(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 могли обрабатывать специальные параметры, например параметры charset для text/plain, значения которых не чувствительны к регистру. (Значения параметров типа MIME должны быть чувствительны к регистру.

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

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

normalizeMimeType

@Deprecated protected String normalizeMimeType(String mimeType)
Устарело.
Начиная с версии 1.1 эта реализация больше не вызывает данный метод
Вызывается для каждой строки типа MIME, чтобы предоставить подтипам DataFlavor возможность изменить способ нормализации типов MIME. Например, можно добавлять пары параметр/значение по умолчанию, если в переданной строке типа MIME они отсутствуют.
Параметры:
mimeType — тип MIME
Возвращает:
тип MIME

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.datatransfer/java/awt/datatransfer/DataFlavor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API