Spec-Zone.ru › OpenJDK 27

Класс 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(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 (и на нижележащую платформу) или из неё используется 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, представляющий класс 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 для текстового типа данных, при необходимости декодированный с использованием ожидаемой кодировки (charset).
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
Модификатор и тип Метод Описание
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс этого Object во время выполнения.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

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 Content-Type application/x-java-serialized-object представляет граф объектов Java, сохранённых в постоянном хранилище.

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

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

javaFileListFlavor

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

javaJVMLocalObjectMimeType

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

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

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

javaRemoteObjectMimeType

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

selectionHtmlFlavor

public static final DataFlavor selectionHtmlFlavor
Представляет фрагмент HTML-разметки. Разметка состоит из части, выделенной на стороне источника. Поэтому некоторые теги в разметке могут быть непарными. Если этот flavor используется для представления данных в экземпляре Transferable, дополнительные изменения не вносятся. Этот экземпляр DataFlavor представляет ту же HTML-разметку, что и экземпляры DataFlavor, у которых тип содержимого MIME не содержит параметр document, а класс представления — класс 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 Content Type
Вызывает исключение:
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 Content Type
Вызывает исключение:
IllegalArgumentException — если mimeType недопустим или класс не удаётся загрузить
NullPointerException — если mimeType равен null

DataFlavor

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

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

Если mimeType равен "application/x-java-serialized-object; class=<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 и его класс представления. Если этот flavor имеет основной тип MIME "text", поддерживает параметр charset и имеет кодированное представление, в него также включается кодировка flavor. Список текстовых flavors, поддерживающих параметр 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, эквивалентные им flavors, а также flavors с основным типом MIME "text".

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

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

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

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

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

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

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

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

Параметры:
availableFlavors — массив доступных DataFlavor
Возвращает:
наилучший flavor (с наибольшей точностью соответствия) согласно указанным выше правилам или null, если availableFlavors равен null, имеет нулевую длину или не содержит текстовых flavors
Начиная с:
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.

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

Параметры:
transferable — Transferable, данные которого будут запрошены в этом flavor
Возвращает:
Reader для чтения данных Transferable
Вызывает исключение:
IllegalArgumentException — если класс представления не входит в число семи перечисленных выше
IllegalArgumentException — если Transferable содержит null данные
NullPointerException — если Transferable равен null
UnsupportedEncodingException — если представление этого flavor — java.io.InputStream, java.nio.ByteBuffer или [B, а кодировка этого flavor не поддерживается данной реализацией платформы 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.

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

Сравнение equals для класса DataFlavor реализовано следующим образом: два объекта DataFlavor считаются равными тогда и только тогда, когда совпадают их основной тип и подтип MIME, а также класс представления. Кроме того, если основной тип равен "text", подтип обозначает текстовый flavor, поддерживающий параметр charset, а класс представления не равен java.io.Reader, java.lang.String, java.nio.CharBuffer или [C, параметр charset также должен совпадать. Если кодировка явно не задана для одного или обоих объектов DataFlavor, предполагается кодировка платформы по умолчанию. Список текстовых flavors, поддерживающих параметр 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, и DataFlavors с основным типом 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, 2026, 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.

Spec-Zone.ru

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