Класс AttachmentPart
- java.lang.Object
-
- javax.xml.soap.AttachmentPart
public abstract class AttachmentPart extends Object
Один вложение к объекту SOAPMessage. Объект SOAPMessage может содержать ноль, один или несколько объектов AttachmentPart. Каждый объект AttachmentPart состоит из двух частей: данных, специфичных для приложения, и связанных заголовков MIME. Заголовки MIME представляют собой пары «имя/значение», которые могут использоваться для идентификации и описания содержимого.
Объект AttachmentPart должен соответствовать определённым стандартам.
- Он должен соответствовать стандартам MIME [RFC2045] .
- Он ДОЛЖЕН содержать данные.
- Часть заголовка ДОЛЖНА включать следующий заголовок:
-
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 с указанным именем и значением в этот объект |
abstract void |
clearContent() Очищает содержимое этого объекта |
abstract Iterator |
getAllMimeHeaders() Возвращает все заголовки для этого объекта |
abstract InputStream |
getBase64Content() Возвращает объект |
abstract Object |
getContent() Возвращает содержимое этого объекта |
String |
getContentId() Возвращает значение заголовка MIME с именем «Content-ID». |
String |
getContentLocation() Возвращает значение заголовка MIME с именем «Content-Location». |
String |
getContentType() Возвращает значение заголовка MIME с именем «Content-Type». |
abstract DataHandler |
getDataHandler() Возвращает объект |
abstract Iterator |
getMatchingMimeHeaders(String[] names) Возвращает все объекты |
abstract String[] |
getMimeHeader(String name) Возвращает все значения заголовка, идентифицированного данным |
abstract Iterator |
getNonMatchingMimeHeaders(String[] names) Возвращает все объекты |
abstract InputStream |
getRawContent() Возвращает содержимое этого объекта |
abstract byte[] |
getRawContentBytes() Возвращает содержимое этого объекта |
abstract int |
getSize() Возвращает количество байтов в этом объекте |
abstract void |
removeAllMimeHeaders() Удаляет все записи заголовков MIME. |
abstract void |
removeMimeHeader(String header) Удаляет все заголовки MIME, которые соответствуют заданному имени. |
abstract void |
setBase64Content(InputStream content,
String contentType) Устанавливает содержимое этого объекта вложения из базового кодированного источника |
abstract void |
setContent(Object object,
String contentType) Устанавливает содержимое этого объекта вложения в содержимое заданного объекта |
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) Устанавливает данный объект |
abstract void |
setMimeHeader(String name,
String value) Изменяет первую запись заголовка, соответствующую заданному имени, на заданное значение, добавляя новый заголовок, если существующий заголовок не соответствует. |
abstract void |
setRawContent(InputStream content,
String contentType) Устанавливает содержимое этого объекта вложения в содержимое заданного объекта |
abstract void |
setRawContentBytes(byte[] content,
int offset,
int len,
String 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.