< prev index next >
jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/InternetHeaders.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -46,28 +46,27 @@
* InternetHeaders is a utility class that manages RFC822 style
* headers. Given an RFC822 format message stream, it reads lines
* until the blank line that indicates end of header. The input stream
* is positioned at the start of the body. The lines are stored
* within the object and can be extracted as either Strings or
- * {@link Header} objects. <p>
- * <p/>
+ * {@link Header} objects.
+ * <p>
* This class is mostly intended for service providers. MimeMessage
- * and MimeBody use this class for holding their headers. <p>
- * <p/>
- * <hr> <strong>A note on RFC822 and MIME headers</strong><p>
- * <p/>
+ * and MimeBody use this class for holding their headers.
+ * <hr> <strong>A note on RFC822 and MIME headers</strong>
+ * <p>
* RFC822 and MIME header fields <strong>must</strong> contain only
* US-ASCII characters. If a header contains non US-ASCII characters,
* it must be encoded as per the rules in RFC 2047. The MimeUtility
* class provided in this package can be used to to achieve this.
* Callers of the <code>setHeader</code>, <code>addHeader</code>, and
* <code>addHeaderLine</code> methods are responsible for enforcing
* the MIME requirements for the specified headers. In addition, these
* header fields must be folded (wrapped) before being sent if they
* exceed the line length limitation for the transport (1000 bytes for
* SMTP). Received headers may have been folded. The application is
- * responsible for folding and unfolding headers as appropriate. <p>
+ * responsible for folding and unfolding headers as appropriate.
*
* @author John Mani
* @author Bill Shannon
* @see MimeUtility
*/
@@ -88,31 +87,33 @@
/**
* Read and parse the given RFC822 message stream till the
* blank line separating the header from the body. The input
* stream is left positioned at the start of the body. The
- * header lines are stored internally. <p>
- * <p/>
+ * header lines are stored internally.
+ * <p>
* For efficiency, wrap a BufferedInputStream around the actual
* input stream and pass it as the parameter.
*
* @param is RFC822 input stream
+ * @exception MessagingException in case of error
*/
public InternetHeaders(InputStream is) throws MessagingException {
load(is);
}
/**
* Read and parse the given RFC822 message stream till the
* blank line separating the header from the body. Store the
- * header lines inside this InternetHeaders object. <p>
- * <p/>
+ * header lines inside this InternetHeaders object.
+ * <p>
* Note that the header lines are added into this InternetHeaders
* object, so any existing headers in this object will not be
* affected.
*
* @param is RFC822 input stream
+ * @exception MessagingException in case of error
*/
public void load(InputStream is) throws MessagingException {
// Read header lines until a blank line. It is valid
// to have BodyParts with no header lines.
String line;
@@ -206,13 +207,13 @@
}
/**
* Change the first header line that matches name
* to have value, adding a new header if no existing header
- * matches. Remove all matching headers but the first. <p>
- * <p/>
- * Note that RFC822 headers can only contain US-ASCII characters
+ * matches. Remove all matching headers but the first.
+ * <p>
+ * Note that RFC822 headers can only contain US-ASCII characters.
*
* @param name header name
* @param value header value
*/
public void setHeader(String name, String value) {
@@ -240,12 +241,11 @@
addHeader(name, value);
}
}
/**
- * Add a header with the specified name and value to the header list. <p>
- * <p/>
+ * Add a header with the specified name and value to the header list.
* Note that RFC822 headers can only contain US-ASCII characters.
*
* @param name header name
* @param value header value
*/
@@ -283,19 +283,19 @@
* Return all the headers as an Enumeration of
* {@link Header} objects.
*
* @return Header objects
*/
- public List<? extends Header> getAllHeaders() {
+ public FinalArrayList<hdr> getAllHeaders() {
return headers; // conceptually it should be read-only, but for performance reason I'm not wrapping it here
}
/**
* Add an RFC822 header line to the header store.
* If the line starts with a space or tab (a continuation line),
- * add it to the last header line in the list. <p>
- * <p/>
+ * add it to the last header line in the list.
+ * <p>
* Note that RFC822 headers can only contain US-ASCII characters
*
* @param line raw RFC822 header line
*/
public void addHeaderLine(String line) {
@@ -314,18 +314,22 @@
}
}
/**
* Return all the header lines as a collection
+ *
+ * @return list of header lines.
*/
public List<String> getAllHeaderLines() {
if(headerValueView==null)
headerValueView = new AbstractList<String>() {
+ @Override
public String get(int index) {
return headers.get(index).line;
}
+ @Override
public int size() {
return headers.size();
}
};
return headerValueView;
@@ -366,17 +370,19 @@
}
/*
* Return the "name" part of the header line.
*/
+ @Override
public String getName() {
return name;
}
/*
* Return the "value" part of the header line.
*/
+ @Override
public String getValue() {
int i = line.indexOf(':');
if (i < 0)
return line;
< prev index next >