Spec-Zone.ru › OpenJDK 8

Класс AttachmentPart

  • java.lang.Object
    • javax.xml.soap.AttachmentPart

public abstract class AttachmentPart
extends Object

Один вложение к объекту SOAPMessage. Объект SOAPMessage может содержать ноль, один или несколько объектов AttachmentPart. Каждый объект AttachmentPart состоит из двух частей: данных, специфичных для приложения, и связанных заголовков MIME. Заголовки MIME представляют собой пары «имя/значение», которые могут использоваться для идентификации и описания содержимого.

Объект AttachmentPart должен соответствовать определённым стандартам.

  1. Он должен соответствовать стандартам MIME [RFC2045] .
  2. Он ДОЛЖЕН содержать данные.
  3. Часть заголовка ДОЛЖНА включать следующий заголовок:
    • Content-Type
      Этот заголовок идентифицирует тип данных в содержимом объекта AttachmentPart и ДОЛЖЕН соответствовать [RFC2045]. Вот пример заголовка Content-Type:
      Content-Type:  application/xml
      Следующая строка кода, в которой ap является объектом AttachmentPart, устанавливает показанный в предыдущем примере заголовок.
      ap.setMimeHeader("Content-Type", "application/xml");

Нет ограничений на часть содержимого объекта AttachmentPart. Содержимое может быть чем угодно, от простого текстового объекта до сложного XML-документа или файла изображения.

Объект AttachmentPart создаётся методом SOAPMessage.createAttachmentPart. После установки его заголовков MIME объект AttachmentPart добавляется в сообщение, которое его создало, с помощью метода SOAPMessage.addAttachmentPart.

Следующий фрагмент кода, в котором m является объектом SOAPMessage и contentStringl является объектом String, создаёт экземпляр AttachmentPart, устанавливает объект AttachmentPart с некоторым содержимым и информацией о заголовках, и добавляет объект AttachmentPart к объекту SOAPMessage.

AttachmentPart ap1 = m.createAttachmentPart();
     ap1.setContent(contentString1, "text/plain");
     m.addAttachmentPart(ap1);

Следующий фрагмент кода создаёт и добавляет второй экземпляр AttachmentPart к тому же сообщению. jpegData — это двоичный байтовый буфер, представляющий jpeg-файл.

AttachmentPart ap2 = m.createAttachmentPart();
     byte[] jpegData =  ...;
     ap2.setContent(new ByteArrayInputStream(jpegData), "image/jpeg");
     m.addAttachmentPart(ap2);

Метод getContent извлекает содержимое и заголовки из объекта AttachmentPart. В зависимости от присутствующих объектов DataContentHandler, возвращаемый объект Object может быть типизированным Java-объектом, соответствующим типу MIME, или объектом InputStream, содержащим содержимое в виде байтов.

String content1 = ap1.getContent();
     java.io.InputStream content2 = ap2.getContent();
Метод clearContent удаляет всё содержимое из объекта AttachmentPart, но не влияет на информацию в его заголовках.
ap1.clearContent();

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

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

Методы

Модификатор и тип Метод и описание
abstract void addMimeHeader(String name, String value)

Добавляет заголовок MIME с указанным именем и значением в этот объект AttachmentPart.

abstract void clearContent()

Очищает содержимое этого объекта AttachmentPart.

abstract Iterator getAllMimeHeaders()

Возвращает все заголовки для этого объекта AttachmentPart в виде итератора по объектам MimeHeader.

abstract InputStream getBase64Content()

Возвращает объект InputStream, который можно использовать для получения содержимого AttachmentPart в виде закодированных в Base64 символов, этот метод будет кодировать в Base64 исходные байты вложения и возвращать их.

abstract Object getContent()

Возвращает содержимое этого объекта AttachmentPart как Java-объект.

String getContentId()

Возвращает значение заголовка MIME с именем «Content-ID».

String getContentLocation()

Возвращает значение заголовка MIME с именем «Content-Location».

String getContentType()

Возвращает значение заголовка MIME с именем «Content-Type».

abstract DataHandler getDataHandler()

Возвращает объект DataHandler для этого объекта AttachmentPart.

abstract Iterator getMatchingMimeHeaders(String[] names)

Возвращает все объекты MimeHeader , которые соответствуют имени в заданном массиве.

abstract String[] getMimeHeader(String name)

Возвращает все значения заголовка, идентифицированного данным String.

abstract Iterator getNonMatchingMimeHeaders(String[] names)

Возвращает все объекты MimeHeader , чьи имена не совпадают с именами в заданном массиве.

abstract InputStream getRawContent()

Возвращает содержимое этого объекта AttachmentPart в виде потока InputStream так, как если бы был вызван метод getContent и ни один DataContentHandler не был зарегистрирован для content-type этого объекта AttachmentPart.

abstract byte[] getRawContentBytes()

Возвращает содержимое этого объекта AttachmentPart в виде массива байтов byte[] так, как если бы был вызван метод getContent и ни один DataContentHandler не был зарегистрирован для content-type этого объекта AttachmentPart.

abstract int getSize()

Возвращает количество байтов в этом объекте AttachmentPart.

abstract void removeAllMimeHeaders()

Удаляет все записи заголовков MIME.

abstract void removeMimeHeader(String header)

Удаляет все заголовки MIME, которые соответствуют заданному имени.

abstract void setBase64Content(InputStream content, String contentType)

Устанавливает содержимое этого объекта вложения из базового кодированного источника InputStream и устанавливает значение заголовка Content-Type в значение, содержащееся в contentType. Этот метод сначала декодирует входной Base64 и записывает полученные исходные байты во вложение.

abstract void setContent(Object object, String contentType)

Устанавливает содержимое этого объекта вложения в содержимое заданного объекта Object и устанавливает значение заголовка Content-Type в заданный тип.

void setContentId(String contentId)

Устанавливает заголовок MIME с именем «Content-ID» заданным значением.

void setContentLocation(String contentLocation)

Устанавливает заголовок MIME с именем «Content-Location» заданным значением.

void setContentType(String contentType)

Устанавливает заголовок MIME с именем «Content-Type» заданным значением.

abstract void setDataHandler(DataHandler dataHandler)

Устанавливает данный объект DataHandler как обработчик данных для этого объекта AttachmentPart.

abstract void setMimeHeader(String name, String value)

Изменяет первую запись заголовка, соответствующую заданному имени, на заданное значение, добавляя новый заголовок, если существующий заголовок не соответствует.

abstract void setRawContent(InputStream content, String contentType)

Устанавливает содержимое этого объекта вложения в содержимое заданного объекта InputStream content и устанавливает значение заголовка Content-Type в значение, содержащееся в contentType.

abstract void setRawContentBytes(byte[] content, int offset, int len, String contentType)

Устанавливает содержимое этого объекта вложения в массив байтов byte[] content и устанавливает значение заголовка Content-Type в значение, содержащееся в contentType.

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

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

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

AttachmentPart

public AttachmentPart()

Методы

getSize

public abstract int getSize()
                     throws SOAPException

Возвращает количество байтов в этом AttachmentPart объекте.

Возвращает:
размер этого AttachmentPart объекта в байтах или -1, если размер определить невозможно
Выбрасывает:
SOAPException - если содержимое этого вложения повреждено или произошла ошибка при определении размера.

clearContent

public abstract void clearContent()

Очищает содержимое этого AttachmentPart объекта. Часть MIME-заголовка остается без изменений.

getContent

public abstract Object getContent()
                           throws SOAPException

Получает содержимое этого AttachmentPart объекта в виде Java-объекта. Тип возвращаемого Java-объекта зависит от (1) DataContentHandler объекта, используемого для интерпретации байтов, и (2) Content-Type значения, указанного в заголовке.

Для MIME-типов содержимого "text/plain", "text/html" и "text/xml" DataContentHandler объект выполняет преобразования между Java-типами, соответствующими MIME-типам. Для других MIME-типов DataContentHandler объект может вернуть InputStream объект, содержащий данные содержимого в виде сырых байтов.

Реализация, совместимая с SAAJ, должна, как минимум, возвращать java.lang.String объект, соответствующий любому потоку содержимого со значением Content-Type равным text/plain, javax.xml.transform.stream.StreamSource объект, соответствующий потоку содержимого со значением Content-Type равным text/xml, java.awt.Image объект, соответствующий потоку содержимого со значением Content-Type равным image/gif или image/jpeg. Для типов содержимого, которые установленный DataContentHandler объект не понимает, DataContentHandler объект должен вернуть java.io.InputStream объект с сырыми байтами.

Возвращает:
Java-объект со содержимым этого AttachmentPart объекта
Выбрасывает:
SOAPException - если содержимое не задано в этом AttachmentPart объекте или произошла ошибка преобразования данных

getRawContent

public abstract InputStream getRawContent()
                                   throws SOAPException

Получает содержимое этого AttachmentPart объекта в виде потока InputStream, как если бы был вызван getContent и не был зарегистрирован DataContentHandler для content-type этого AttachmentPart.

Обратите внимание, что чтение из возвращаемого InputStream приведет к потреблению данных в потоке. Ответственность вызывающего кода заключается в правильной сбросе InputStream перед вызовом последующего API. Если требуется копия содержимого вложения в сыром виде, необходимо использовать API getRawContentBytes().

Возвращает:
поток InputStream для доступа к сырым данным, содержащимся в AttachmentPart.
Выбрасывает:
SOAPException - если содержимое не задано в этом AttachmentPart объекте или произошла ошибка преобразования данных.
С:
SAAJ 1.3
См. также:
getRawContentBytes()

getRawContentBytes

public abstract byte[] getRawContentBytes()
                                   throws SOAPException

Получает содержимое этого AttachmentPart объекта в виде массива байтов byte[] как если бы был вызван getContent и не был зарегистрирован DataContentHandler для content-type этого AttachmentPart.

Возвращает:
массив byte[] байтов, содержащий сырые данные AttachmentPart.
Выбрасывает:
SOAPException - если содержимое не задано в этом AttachmentPart объекте или произошла ошибка преобразования данных.
С:
SAAJ 1.3

getBase64Content

public abstract InputStream getBase64Content()
                                      throws SOAPException

Возвращает поток InputStream, который можно использовать для получения содержимого AttachmentPart в кодировке Base64, этот метод кодирует сырые байты вложения в Base64 и возвращает результат.

Возвращает:
поток InputStream, из которого можно прочитать содержимое AttachmentPart в кодировке Base64.
Выбрасывает:
SOAPException - если содержимое не задано в этом AttachmentPart объекте или произошла ошибка преобразования данных.
С:
SAAJ 1.3

setContent

public abstract void setContent(Object object,
                                String contentType)

Устанавливает содержимое этого вложения в указанный Object объект и значение заголовка Content-Type в указанный тип. Тип Object объекта должен соответствовать значению, заданному для Content-Type. Это зависит от используемого набора DataContentHandler объектов.

Параметры:
object - Java-объект, содержащий содержимое вложения
contentType - MIME-строка, определяющая тип содержимого
Выбрасывает:
IllegalArgumentException - может быть выброшено, если contentType не соответствует типу объекта содержимого или если нет объекта DataContentHandler для этого объекта содержимого
См. также:
getContent()

setRawContent

public abstract void setRawContent(InputStream content,
                                   String contentType)
                            throws SOAPException

Устанавливает содержимое этого вложения из указанного потока InputStream content и устанавливает значение заголовка Content-Type в значение, указанное в contentType.

Последующий вызов getSize() может не отражать точный размер содержимого.

Параметры:
content - сырые данные для добавления к вложению
contentType - значение для установки в заголовок Content-Type
Выбрасывает:
SOAPException - если возникла ошибка при установке содержимого
NullPointerException - если content равно null
С:
SAAJ 1.3

setRawContentBytes

public abstract void setRawContentBytes(byte[] content,
                                        int offset,
                                        int len,
                                        String contentType)
                                 throws SOAPException

Устанавливает содержимое этого вложения из массива байтов byte[] content и устанавливает значение заголовка Content-Type в значение, указанное в contentType.

Параметры:
content - сырые данные для добавления к вложению
contentType - значение для установки в заголовок Content-Type
offset - смещение в массиве байтов содержимого
len - количество байтов, образующих содержимое
Выбрасывает:
SOAPException - если при установке содержимого или содержимое равно null произошла ошибка
С:
SAAJ 1.3

setBase64Content

public abstract void setBase64Content(InputStream content,
                                      String contentType)
                               throws SOAPException

Устанавливает содержимое этого вложения из Base64 источника InputStream и устанавливает значение заголовка Content-Type в значение, указанное в contentType. Этот метод сначала декодирует входные данные Base64 и записывает полученные сырые байты во вложение.

Последующий вызов getSize() может не отражать точный размер содержимого.

Параметры:
content - данные Base64 для добавления к вложению
contentType - значение для установки в заголовок Content-Type
Выбрасывает:
SOAPException - если при установке содержимого произошла ошибка
NullPointerException - если content равно null
С:
SAAJ 1.3

getDataHandler

public abstract DataHandler getDataHandler()
                                    throws SOAPException

Получает DataHandler объект для этого AttachmentPart объекта.

Возвращает:
DataHandler объект, связанный с этим AttachmentPart объектом
Выбрасывает:
SOAPException - если в этом AttachmentPart объекте нет данных

setDataHandler

public abstract void setDataHandler(DataHandler dataHandler)

Устанавливает заданный DataHandler объект как обработчик данных для этого AttachmentPart объекта. Обычно при получении сообщения обработчик данных автоматически устанавливается. При создании и заполнении сообщения содержимым, метод setDataHandler может использоваться для получения данных из различных источников данных в сообщение.

Параметры:
dataHandler - DataHandler объект для установки
Выбрасывает:
IllegalArgumentException - если возникла проблема с указанным DataHandler объектом

getContentId

public String getContentId()

Получает значение MIME-заголовка с именем "Content-ID".

Возвращает:
строку String, содержащую значение заголовка "Content-ID", или null, если его нет
См. также:
setContentId(java.lang.String)

getContentLocation

public String getContentLocation()

Получает значение MIME-заголовка с именем "Content-Location".

Возвращает:
строку String, содержащую значение заголовка "Content-Location", или null, если его нет

getContentType

public String getContentType()

Получает значение MIME-заголовка с именем "Content-Type".

Возвращает:
строку String, содержащую значение заголовка "Content-Type", или null, если его нет

setContentId

public void setContentId(String contentId)

Устанавливает MIME-заголовок с именем "Content-ID" с указанным значением.

Параметры:
contentId - строка String, содержащая значение заголовка "Content-ID"
Выбрасывает:
IllegalArgumentException - если возникла проблема с указанным значением contentId
См. также:
getContentId()

setContentLocation

public void setContentLocation(String contentLocation)

Устанавливает MIME-заголовок с именем "Content-Location" с указанным значением.

Параметры:
contentLocation - строка String, содержащая значение заголовка "Content-Location"
Выбрасывает:
IllegalArgumentException - если возникла проблема с указанной локацией содержимого

setContentType

public void setContentType(String contentType)

Устанавливает заголовок MIME с именем «Content-Type» заданным значением.

Параметры:
contentType - строка, задающая значение заголовка «Content-Type»
Исключения:
IllegalArgumentException - если возникла проблема со значением типа содержимого

removeMimeHeader

public abstract void removeMimeHeader(String header)

Удаляет все заголовки MIME, соответствующие заданному имени.

Параметры:
header - строковое имя заголовка/заголовков MIME для удаления

removeAllMimeHeaders

public abstract void removeAllMimeHeaders()

Удаляет все записи заголовков MIME.

getMimeHeader

public abstract String[] getMimeHeader(String name)

Возвращает все значения заголовка, идентифицированного заданным именем.

Параметры:
name - имя заголовка; пример: «Content-Type»
Возвращает:
массив строк, содержащий значение указанного заголовка
См. также:
setMimeHeader(java.lang.String, java.lang.String)

setMimeHeader

public abstract void setMimeHeader(String name,
                                   String value)

Изменяет первую запись заголовка, соответствующую заданному имени, на заданное значение, добавив новый заголовок, если соответствующий заголовок не найден. Этот метод также удаляет все совпадающие заголовки, кроме первого.

Обратите внимание, что заголовки RFC822 могут содержать только символы US-ASCII.

Параметры:
name - строка, содержащая имя заголовка для поиска
value - строка, содержащая значение, которое нужно установить для заголовка с совпадающим именем
Исключения:
IllegalArgumentException - если возникла проблема с указанным именем или значением заголовка MIME

addMimeHeader

public abstract void addMimeHeader(String name,
                                   String value)

Добавляет заголовок MIME с указанным именем и значением в этот объект AttachmentPart.

Обратите внимание, что заголовки RFC822 могут содержать только символы US-ASCII.

Параметры:
name - строка, содержащая имя добавляемого заголовка
value - строка, содержащая значение добавляемого заголовка
Исключения:
IllegalArgumentException - если возникла проблема с указанным именем или значением заголовка MIME

getAllMimeHeaders

public abstract Iterator getAllMimeHeaders()

Возвращает все заголовки для этого объекта AttachmentPart как итератор по объектам MimeHeader.

Возвращает:
объект итератора со всеми заголовками MIME для этого объекта AttachmentPart

getMatchingMimeHeaders

public abstract Iterator getMatchingMimeHeaders(String[] names)

Возвращает все объекты MimeHeader , которые соответствуют имени в заданном массиве.

Параметры:
names - массив строк с именем(ами) заголовков MIME, которые нужно вернуть
Возвращает:
все заголовки MIME, которые соответствуют одному из имен в заданном массиве, как объект итератора

getNonMatchingMimeHeaders

public abstract Iterator getNonMatchingMimeHeaders(String[] names)

Возвращает все объекты MimeHeader , имена которых не соответствуют ни одному имени в заданном массиве.

Параметры:
names - массив строк с именем(ами) заголовков MIME, которые не должны быть возвращены
Возвращает:
все заголовки MIME в этом объекте AttachmentPart , за исключением тех, которые соответствуют одному из имен в заданном массиве. Несовпадающие заголовки MIME возвращаются как объект итератора.

© 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