Spec-Zone.ru › OpenJDK 8

Класс MailcapCommandMap

  • java.lang.Object
    • javax.activation.CommandMap
      • javax.activation.MailcapCommandMap

public class MailcapCommandMap
extends CommandMap

MailcapCommandMap расширяет абстрактный класс CommandMap. Он реализует CommandMap, чья конфигурация основана на файлах mailcap (RFC 1524). MailcapCommandMap может настраиваться как программно, так и через конфигурационные файлы.

Порядок поиска файлов mailcap:

MailcapCommandMap ищет записи в файлах mailcap в различных местах системы пользователя. При запросах на поиск команд в MailcapCommandMap он ищет файлы mailcap в следующем порядке:

  1. Программно добавленные записи в экземпляр MailcapCommandMap.
  2. Файл .mailcap в домашнем каталоге пользователя.
  3. Файл <java.home>/lib/mailcap.
  4. Файл или ресурс с именем META-INF/mailcap.
  5. Файл или ресурс с именем META-INF/mailcap.default (обычно находится только в файле activation.jar).

Формат файла mailcap:

Файлы mailcap должны соответствовать спецификации файла mailcap (RFC 1524, A User Agent Configuration Mechanism For Multimedia Mail Format Information). Формат файла состоит из записей, соответствующих определенным типам MIME. В общем случае, спецификация указывает приложения, которые клиенты должны использовать, когда сами не могут обработать указанный тип MIME. MailcapCommandMap расширяет эту спецификацию, используя механизм параметров в файлах mailcap, который позволяет задавать компоненты JavaBeans(tm) как соответствующие определённым командам для определённого типа MIME.

При парсинге файла mailcap, MailcapCommandMap распознаёт определённые сигнатуры параметров, в частности те, имена параметров, которые начинаются с x-java-. MailcapCommandMap использует эту сигнатуру для поиска записей команд для включения в свои регистры. Имена параметров с формой x-java-<name> считываются MailcapCommandMap как идентификаторы команд с именем имя. Когда имя равно content-handler, MailcapCommandMap распознаёт класс, обозначенный этим параметром, как DataContentHandler. Все остальные команды обрабатываются обобщённо независимо от имени команды. Реализация команды определяется полным квалифицированным именем компонента JavaBean(tm). Например, команда для просмотра некоторых данных может быть задана как: x-java-view=com.foo.ViewBean.

Когда имя команды равно fallback-entry, значение команды может быть true или false. Запись для типа MIME, включающая параметр x-java-fallback-entry=true, определяет резервные команды для этого типа MIME, которые будут использоваться только в том случае, если не найдена запись без резервного копирования. Например, запись в формате text/*; ; x-java-fallback-entry=true; x-java-view=com.sun.TextViewer задаёт команду просмотра, используемую для любого текстового типа MIME. Эта команда просмотра будет использована только в случае, если не найдена команда просмотра без резервного копирования для данного типа MIME.

Файлы mailcap, распознаваемые MailcapCommandMap, имеют следующий общий вид:

# Comments begin with a '#' and continue to the end of the line.
<mime type>; ; <parameter list>
# Where a parameter list consists of one or more parameters,
# where parameters look like: x-java-view=com.sun.TextViewer
# and a parameter list looks like:
text/plain; ; x-java-view=com.sun.TextViewer; x-java-edit=com.sun.TextEdit
# Note that mailcap entries that do not contain 'x-java' parameters
# and comply to RFC 1524 are simply ignored:
image/gif; /usr/dt/bin/sdtimage %s

Since:
1.6

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

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

Конструктор по умолчанию.

MailcapCommandMap(InputStream is)

Конструктор, позволяющий вызывающей стороне указать потоковый ввод содержащий файл mailcap.

MailcapCommandMap(String fileName)

Конструктор, позволяющий вызывающей стороне указать путь к файлу mailcap.

Методы

Модификатор и тип Метод и описание
void addMailcap(String mail_cap)

Добавить записи в реестр.

DataContentHandler createDataContentHandler(String mimeType)

Возвращает DataContentHandler для указанного типа MIME.

CommandInfo[] getAllCommands(String mimeType)

Получить все доступные команды во всех файлах mailcap, известных этому экземпляру MailcapCommandMap для этого типа MIME.

CommandInfo getCommand(String mimeType, String cmdName)

Получить команду, соответствующую cmdName для типа MIME.

String[] getMimeTypes()

Получить все известные этому отображению типов MIME.

String[] getNativeCommands(String mimeType)

Получить собственные команды для заданного типа MIME.

CommandInfo[] getPreferredCommands(String mimeType)

Получить предпочтительный список команд для типа MIME.

Методы, унаследованные от класса javax.activation.CommandMap

createDataContentHandler, getAllCommands, getCommand, getDefaultCommandMap, getPreferredCommands, setDefaultCommandMap

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

MailcapCommandMap

public MailcapCommandMap()

Конструктор по умолчанию.

MailcapCommandMap

public MailcapCommandMap(String fileName)
                  throws IOException

Конструктор, позволяющий вызывающей стороне указать путь к файлу mailcap.

Параметры:
fileName - Имя файла mailcap для открытия
Исключение:
IOException - если к файлу нет доступа

MailcapCommandMap

public MailcapCommandMap(InputStream is)

Конструктор, позволяющий вызывающей стороне указать потоковый ввод содержащий файл mailcap.

Параметры:
is - Потоковый ввод файла mailcap для открытия

Методы

getPreferredCommands

public CommandInfo[] getPreferredCommands(String mimeType)

Получить предпочтительный список команд для типа MIME. MailcapCommandMap ищет файлы mailcap, как описано выше в разделе Порядок поиска файлов mailcap.

Результат поиска — правильное подмножество доступных команд во всех файлах mailcap, известных этому экземпляру MailcapCommandMap. Первая запись для конкретной команды считается предпочтительной командой.

Определено:
getPreferredCommands в классе CommandMap
Параметры:
mimeType - тип MIME
Возвращает:
объекты CommandInfo, представляющие предпочтительные команды.

getAllCommands

public CommandInfo[] getAllCommands(String mimeType)

Получить все доступные команды во всех файлах mailcap, известных этому экземпляру MailcapCommandMap для этого типа MIME.

Определено:
getAllCommands в классе CommandMap
Параметры:
mimeType - тип MIME
Возвращает:
объекты CommandInfo, представляющие все команды.

getCommand

public CommandInfo getCommand(String mimeType,
                              String cmdName)

Получить команду, соответствующую cmdName для типа MIME.

Определено:
getCommand в классе CommandMap
Параметры:
mimeType - тип MIME
cmdName - имя команды
Возвращает:
объект CommandInfo, соответствующий команде.

addMailcap

public void addMailcap(String mail_cap)

Добавить записи в реестр. Программно добавленные записи ищутся перед другими записями.

Передаваемая строка должна быть в формате mailcap.

Параметры:
mail_cap - правильно отформатированная строка mailcap

createDataContentHandler

public DataContentHandler createDataContentHandler(String mimeType)

Возвращает DataContentHandler для указанного типа MIME.

Определено:
createDataContentHandler в классе CommandMap
Параметры:
mimeType - тип MIME
Возвращает:
DataContentHandler

getMimeTypes

public String[] getMimeTypes()

Получить все типы MIME, известные этому отображению.

Переопределяет:
getMimeTypes в классе CommandMap
Возвращает:
массив типов MIME в виде строк
Since:
JAF 1.1

getNativeCommands

public String[] getNativeCommands(String mimeType)

Получить собственные команды для данного типа MIME. Возвращает массив строк, где каждая строка — полная запись файла mailcap. Приложению потребуется разобрать запись, чтобы извлечь фактическую команду и любые необходимые атрибуты. См. RFC 1524 для получения подробностей синтаксиса записи mailcap. Возвращаются только записи mailcap, в которых указана команда просмотра для указанного типа MIME.

Возвращает:
массив записей собственных команд
Since:
JAF 1.1

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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