1 /* 2 * Copyright 2006 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package org.springframework.ws.mime; 18 19 import java.io.IOException; 20 import java.io.InputStream; 21 import javax.activation.DataHandler; 22 23 /** 24 * Represents an attachment to a {@link org.springframework.ws.mime.MimeMessage} 25 * 26 * @author Arjen Poutsma 27 * @see MimeMessage#getAttachments() 28 * @see MimeMessage#addAttachment 29 * @since 1.0.0 30 */ 31 public interface Attachment { 32 33 /** 34 * Returns the content identifier of the attachment. 35 * 36 * @return the content id, or <code>null</code> if empty or not defined 37 */ 38 String getContentId(); 39 40 /** 41 * Returns the content type of the attachment. 42 * 43 * @return the content type, or <code>null</code> if empty or not defined 44 */ 45 String getContentType(); 46 47 /** 48 * Return an <code>InputStream</code> to read the contents of the attachment from. The user is responsible for 49 * closing the stream. 50 * 51 * @return the contents of the file as stream, or an empty stream if empty 52 * @throws IOException in case of access I/O errors 53 */ 54 InputStream getInputStream() throws IOException; 55 56 /** 57 * Returns the size of the attachment in bytes. Returns <code>-1</code> if the size cannot be determined. 58 * 59 * @return the size of the attachment, <code>0</code> if empty, or <code>-1</code> if the size cannot be determined 60 */ 61 long getSize(); 62 63 /** 64 * Returns the data handler of the attachment. 65 * 66 * @return the data handler of the attachment 67 */ 68 DataHandler getDataHandler(); 69 }