Spec-Zone.ru › OpenJDK 17

Класс 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
Класс DataFlavor представляющий класс Java Image, где:
static final DataFlavor javaFileListFlavor
Для передачи списка файлов в/из Java (и базовой платформы) используется DataFlavor с типом/подтипом и представляющим классом java.util.List.
static final String javaJVMLocalObjectMimeType
Для передачи ссылки на произвольный объект Java, не имеющий связанного MIME Content-type, через интерфейс Transferable ВНУТРИ ОДНОЙ И ТОЙ ЖЕ JVM, используется DataFlavor с этим типом/подтипом, с представляющим классом, равным типу класса/интерфейса, передаваемого через интерфейс Transferable.
static final String javaRemoteObjectMimeType
Для передачи прямой ссылки на удаленный объект через Drag and Drop ACTION_LINK операцию используется MIME Content-Type application/x-java-remote-object, где представляющий класс DataFlavor представляет тип Remote интерфейса, который должен быть передан.
static final String javaSerializedObjectMimeType
MIME Content-Type application/x-java-serialized-object представляет собой граф объектов Java, которые были сделаны постоянными.
static final DataFlavor plainTextFlavor
Устаревший.
с версии 1.3.
static final DataFlavor selectionHtmlFlavor
Представляет часть HTML-разметки.
static final 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) вместо этого.
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)
Получает чтец для текстового типа, декодированный, при необходимости, для ожидаемого набора символов (кодировки).
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 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 с этим типом/подтипом и классом представления равным типу класса/интерфейса, передаваемого через 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 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 Content Type
Исключения:
NullPointerException - если representationClass имеет тип null

DataFlavor

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

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

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

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

     representationClass = InputStream
     mimeType            = mimeType
 
Параметры:
mimeType - строка, используемая для идентификации MIME типа этого флейвора; если MIME Content-Type не содержит параметр "class=", или класс не загружен успешно, выбрасывается IllegalArgumentException
humanPresentableName - удобочитаемая строка, используемая для идентификации этого флейвора; если этот параметр null, используется значение MIME Content Type
Исключения:
IllegalArgumentException - если mimeType недействителен или класс не загружен успешно
NullPointerException - если mimeType имеет тип null

DataFlavor

public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) throws ClassNotFoundException
Создает DataFlavor, представляющий MIME Content-Type.

Возвращаемый 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 из строки MIME Content-Type. Строка может содержать параметр "class=<полное имя класса Java>" для создания DataFlavor с желаемым классом представления. Если строка не содержит параметр "class=", используется значение по умолчанию java.io.InputStream.
Параметры:
mimeType - строка, используемая для идентификации MIME типа этого флейвора; если класс, указанный в параметре "class=", не загружен успешно, выбрасывается ClassNotFoundException
Исключения:
ClassNotFoundException - если класс не загружен
IllegalArgumentException - если mimeType недействителен
NullPointerException - если mimeType имеет тип null

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

tryToLoadClass

protected static final Class<?> tryToLoadClass(String className, ClassLoader fallback) throws ClassNotFoundException
Попытка загрузки класса из: загрузчика базовых классов, системного загрузчика, контекстного загрузчика (если он есть) и, наконец, указанного загрузчика.
Параметры:
className - имя класса для загрузки
fallback - загрузчик по умолчанию
Возвращает:
загруженный класс
Исключения:
ClassNotFoundException - если класс не найден

toString

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

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

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

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

Если два или более типа имеют лучший класс представления, и это представление является одним из четырех явно перечисленных, то один из этих типов будет выбран не детерминированно. Однако если ни один тип не имеет одного из четырех указанных представлений, то типы будут отсортированы по своим charset. Наборы символов Unicode, такие как "UTF-16", "UTF-8", "UTF-16BE", "UTF-16LE" и их псевдонимы, считаются лучшими. За ними следуют значение по умолчанию платформы charset и его псевдонимы. "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 для текстового типа, если необходимо, декодирует его для ожидаемого charset (кодировки). Поддерживаемые классы представлений: 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 имеет null
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.
Returns:
подтип MIME этого DataFlavor

getParameter

public String getParameter(String paramName)
Возвращает удобочитаемое имя для этого DataFlavor если paramName равно "humanPresentableName". В противном случае возвращает значение MIME-типа, связанное с paramName.
Parameters:
paramName - имя запрашиваемого параметра
Returns:
значение параметра, или null если нет связанного значения

setHumanPresentableName

public void setHumanPresentableName(String humanPresentableName)
Устанавливает удобочитаемое имя для формата данных, который представляет этот DataFlavor. Это имя будет локализовано для разных стран.
Parameters:
humanPresentableName - новое удобочитаемое имя

equals

public boolean equals(Object o)
Указывает, является ли какой-либо другой объект "равным" этому.

Метод equals реализует отношение эквивалентности на ссылках на объекты, отличных от null:

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

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

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

Overrides:
equals в классе Object
Parameters:
o - объект для сравнения с this
Returns:
true если that эквивалентен этому DataFlavor; false в противном случае
See Also:
  • selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

public boolean equals(DataFlavor that)
Этот метод имеет такое же поведение, как equals(Object). Единственное отличие заключается в том, что в качестве параметра передаётся экземпляр DataFlavor.
Parameters:
that - объект DataFlavor для сравнения с this
Returns:
true если that эквивалентен этому DataFlavor; false в противном случае
See Also:
  • selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

equals

@Deprecated public boolean equals(String s)
Deprecated.
Несовместимо с контрактом hashCode(), используйте isMimeTypeEqual(String) вместо этого.
Сравнивает только mimeType с переданным String, и representationClass не учитывается при сравнении. Если необходимо сравнить representationClass, то можно использовать equals(new DataFlavor(s)).
Parameters:
s - mimeType для сравнения
Returns:
true если строка (MIME-тип) равна; false в противном случае или если s является null

hashCode

public int hashCode()
Возвращает хеш-код для этого DataFlavor. Для двух равных DataFlavor хеш-коды равны. Для String совпадающего с DataFlavor.equals(String), не гарантируется, что хеш-код DataFlavor равен хеш-коду String.
Overrides:
hashCode в классе Object
Returns:
хеш-код для этого DataFlavor
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

match

public boolean match(DataFlavor that)
Идентично equals(DataFlavor).
Parameters:
that - DataFlavor для сравнения с this
Returns:
true если that эквивалентен этому DataFlavor; false в противном случае
Since:
1.3
See Also:
  • selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])

isMimeTypeEqual

public boolean isMimeTypeEqual(String mimeType)
Возвращает true, если строковое представление MIME-типа, переданное в качестве параметра, эквивалентно MIME-типу этого объекта DataFlavor. Параметры не учитываются при сравнении.
Parameters:
mimeType - строковое представление MIME-типа
Returns:
true если строковое представление MIME-типа, переданное в качестве параметра, эквивалентно MIME-типу этого объекта DataFlavor; false в противном случае
Throws:
NullPointerException - если mimeType является null

isMimeTypeEqual

public final boolean isMimeTypeEqual(DataFlavor dataFlavor)
Сравнивает MIME-типы двух объектов mimeType. Параметры не учитываются.
Parameters:
dataFlavor - объект DataFlavor для сравнения
Returns:
true если MIME-типы равны, иначе false

isMimeTypeSerializedObject

public boolean isMimeTypeSerializedObject()
Представляет ли DataFlavor сериализованный объект?
Returns:
true, если объект сериализован, иначе false

getDefaultRepresentationClass

public final Class<?> getDefaultRepresentationClass()
Возвращает класс представления по умолчанию.
Returns:
класс представления по умолчанию

getDefaultRepresentationClassAsString

public final String getDefaultRepresentationClassAsString()
Возвращает имя класса представления по умолчанию.
Returns:
имя класса представления по умолчанию

isRepresentationClassInputStream

public boolean isRepresentationClassInputStream()
Представляет ли DataFlavor объект типа java.io.InputStream?
Returns:
true, если объект DataFlavor представляет собой java.io.InputStream, иначе false

isRepresentationClassReader

public boolean isRepresentationClassReader()
Возвращает значение, показывающее, является ли класс представления для этого DataFlavor классом java.io.Reader или его подклассом.
Returns:
true, если класс представления для этого DataFlavor является java.io.Reader или его подклассом, иначе false
Since:
1.4

isRepresentationClassCharBuffer

public boolean isRepresentationClassCharBuffer()
Возвращает значение, показывающее, является ли класс представления для этого DataFlavor классом java.nio.CharBuffer или его подклассом.
Returns:
true, если класс представления для этого DataFlavor является java.nio.CharBuffer или его подклассом, иначе false
Since:
1.4

isRepresentationClassByteBuffer

public boolean isRepresentationClassByteBuffer()
Возвращает значение, показывающее, является ли класс представления для этого DataFlavor классом java.nio.ByteBuffer или его подклассом.
Returns:
true, если класс представления для этого DataFlavor является java.nio.ByteBuffer или его подклассом, иначе false
Since:
1.4

isRepresentationClassSerializable

public boolean isRepresentationClassSerializable()
Возвращает true если класс представления может быть сериализован.
Returns:
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 и форматы с первичным 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 в противном случае
Since:
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 Type, чтобы 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, 2021, 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/17/docs/api/java.datatransfer/java/awt/datatransfer/DataFlavor.html

Spec-Zone.ru

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