Skip to content

Package: MultipartDataSource

MultipartDataSource

Coverage

1: /*
2: * Copyright (c) 1997, 2023 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Public License v. 2.0, which is available at
6: * http://www.eclipse.org/legal/epl-2.0.
7: *
8: * This Source Code may also be made available under the following Secondary
9: * Licenses when the conditions for such availability set forth in the
10: * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11: * version 2 with the GNU Classpath Exception, which is available at
12: * https://www.gnu.org/software/classpath/license.html.
13: *
14: * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15: */
16:
17: package jakarta.mail;
18:
19: import jakarta.activation.DataSource;
20:
21: /**
22: * MultipartDataSource is a <code>DataSource</code> that contains body
23: * parts. This allows "mail aware" <code>DataContentHandlers</code> to
24: * be implemented more efficiently by being aware of such
25: * <code>DataSources</code> and using the appropriate methods to access
26: * <code>BodyParts</code>. <p>
27: *
28: * Note that the data of a MultipartDataSource is also available as
29: * an input stream. <p>
30: *
31: * This interface will typically be implemented by providers that
32: * preparse multipart bodies, for example an IMAP provider.
33: *
34: * @author John Mani
35: * @see jakarta.activation.DataSource
36: */
37:
38: public interface MultipartDataSource extends DataSource {
39:
40: /**
41: * Return the number of enclosed BodyPart objects.
42: *
43: * @return number of parts
44: */
45: int getCount();
46:
47: /**
48: * Get the specified Part. Parts are numbered starting at 0.
49: *
50: * @param index the index of the desired Part
51: * @return the Part
52: * @throws IndexOutOfBoundsException if the given index
53: * is out of range.
54: * @throws MessagingException for other failures
55: */
56: BodyPart getBodyPart(int index) throws MessagingException;
57:
58: }