Spec-Zone.ru › OpenJDK 24

Класс 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 интерпретирует параметр "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 final DataFlavor allHtmlFlavor
Представляет фрагмент разметки HTML.
static final DataFlavor fragmentHtmlFlavor
Представляет фрагмент разметки HTML.
static final DataFlavor imageFlavor
Класс представления, представляющий класс Java Image:
static final DataFlavor javaFileListFlavor
Для передачи списка файлов в/из Java (и основной платформы) используется тип/подтип DataFlavor и класс представления java.util.List.
static final String javaJVMLocalObjectMimeType
Для передачи ссылки на произвольный Java объект, который не имеет связанного MIME типа содержимого, через интерфейс Transferable ВНУТРИ ОДНОЙ JVM используется тип/подтип DataFlavor, с классом представления, равным типу передаваемого класса/интерфейса через интерфейс 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
Класс представления, представляющий класс 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) вместо него.
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)
Пытается загрузить класс из: загрузчика 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-тип 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-типа, через интерфейс Transferable ВНУТРИ ТОГО ЖЕ JVM используется DataFlavor с этим типом/подтипом, с классом представления равным типу пересылаемого класса/интерфейса через интерфейс 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-разметки. Разметка состоит из выделенной части на стороне источника. Следовательно, некоторые теги в разметке могут быть непарными. Если этот тип используется для представления данных в экземпляре Transferable, никаких дополнительных изменений не будет. Этот экземпляр DataFlavor представляет ту же HTML-разметку, что и экземпляры DataFlavor, тип MIME контента которых не содержит параметр документа, а класс представления — класс String.
     representationClass = String
     mimeType            = "text/html"
 
С:
1.8

fragmentHtmlFlavor

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

allHtmlFlavor

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

Подробное описание конструкторов

DataFlavor

public 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-типа
Исключения:
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-типа
Исключения:
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, системного загрузчика, загрузчика контекста (если он присутствует) и, наконец, указанного загрузчика.
Parameters:
className - имя класса, который нужно загрузить
fallback - загрузчик по умолчанию
Returns:
загруженный класс
Throws:
ClassNotFoundException - если класс не найден

toString

public String toString()
Строковое представление этого DataFlavor и его параметров. Результирующая строка содержит имя класса DataFlavor, тип MIME этого варианта и его класс представления. Если у этого варианта основной тип MIME равен "text", поддерживается параметр charset и есть кодированное представление, то также включается charset варианта. См. selectBestTextFlavor для списка текстовых вариантов, которые поддерживают параметр charset.
Overrides:
toString в классе Object
Returns:
строковое представление этого DataFlavor
See Also:
  • 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>"
 
Implementation Note:
Реализация Oracle для Microsoft Windows и macOS использует кодировку utf-16le. Реализация Oracle для Solaris и Linux использует кодировку iso-10646-ucs-2.
Returns:
DataFlavor, представляющий обычный текст с кодировкой Unicode
Since:
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, <все остальные>.

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

Parameters:
availableFlavors - массив доступных DataFlavor
Returns:
лучший (наивысшей точности) вариант в соответствии с указанными выше правилами, или null, если availableFlavors пустой, имеет нулевую длину или не содержит текстовых вариантов
Since:
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.

Parameters:
transferable - Transferable, данные которого будут запрошены в этом варианте
Returns:
Reader для чтения данных Transferable
Throws:
IllegalArgumentException - если класс представления не является одним из семи перечисленных выше
IllegalArgumentException - если Transferable имеет null данные
NullPointerException - если Transferable пустой
UnsupportedEncodingException - если представление этого варианта является java.io.InputStream, java.nio.ByteBuffer или [B, и его кодировка не поддерживается данной реализацией Java-платформы
UnsupportedFlavorException - если Transferable не поддерживает этот вариант
IOException - если данные не могут быть прочитаны из-за ошибки ввода-вывода
Since:
1.3
See Also:
  • selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

getMimeType

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

getRepresentationClass

public Class<?> getRepresentationClass()
Возвращает класс Class, который объекты, поддерживающие этот DataFlavor, будут возвращать при запросе этого DataFlavor.
Returns:
класс Class, который объекты, поддерживающие этот DataFlavor, будут возвращать при запросе этого DataFlavor

getHumanPresentableName

public String getHumanPresentableName()
Возвращает удобочитаемое имя формата данных, которое представляет этот DataFlavor. Это имя может быть локализовано для разных стран.
Returns:
удобочитаемое имя формата данных, которое представляет этот DataFlavor

getPrimaryType

public String getPrimaryType()
Возвращает основной тип MIME для этого DataFlavor.
Returns:
основной тип 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 должен возвращать 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 должен возвращать false.

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

Сравнение на равенство для класса DataFlavor реализовано следующим образом: Два DataFlavor считаются равными тогда и только тогда, когда их основной тип MIME, подтип и класс представления равны. Кроме того, если основной тип равен "text", подтип обозначает тип текста, который поддерживает параметр charset, и класс представления не равен java.io.Reader, java.lang.String, java.nio.CharBuffer или [C, параметр 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)
Сравнивает типы MIME двух объектов DataFlavor. Параметры не учитываются.
Параметры:
dataFlavor - DataFlavor для сравнения
Возвращает:
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?
Возвращает:
представляет ли этот 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", могут быть допустимыми.

Если этот формат поддерживает параметр кодировки символов, он должен быть эквивалентен 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 платформы. Если кодировка символов не указана, предполагается платформа по умолчанию, которая всегда поддерживается.

Если этот формат не поддерживает параметр кодировки символов, его представление должно быть java.io.InputStream, java.nio.ByteBuffer или [B.

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

Возвращает:
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
Вызывается для каждого параметра 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.datatransfer/java/awt/datatransfer/DataFlavor.html

Spec-Zone.ru

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