01: /****************************************************************
02: * Licensed to the Apache Software Foundation (ASF) under one *
03: * or more contributor license agreements. See the NOTICE file *
04: * distributed with this work for additional information *
05: * regarding copyright ownership. The ASF licenses this file *
06: * to you under the Apache License, Version 2.0 (the *
07: * "License"); you may not use this file except in compliance *
08: * with the License. You may obtain a copy of the License at *
09: * *
10: * http://www.apache.org/licenses/LICENSE-2.0 *
11: * *
12: * Unless required by applicable law or agreed to in writing, *
13: * software distributed under the License is distributed on an *
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15: * KIND, either express or implied. See the License for the *
16: * specific language governing permissions and limitations *
17: * under the License. *
18: ****************************************************************/package org.apache.james.util.mail.handlers;
19:
20: import java.io.IOException;
21: import java.io.OutputStream;
22:
23: import javax.activation.ActivationDataFlavor;
24: import javax.activation.DataSource;
25: import javax.mail.MessagingException;
26:
27: import org.apache.james.util.mail.MimeMultipartReport;
28:
29: /**
30: * <p>Data Content Handler for...</p>
31: * <dl>
32: * <dt>MIME type name</dt><dd>multipart</dd>
33: * <dt>MIME subtype name</dt><dd>report</dd>
34: * </dl>
35: */
36: public class multipart_report extends AbstractDataContentHandler {
37: /**
38: * Default constructor.
39: */
40: public multipart_report() {
41: super ();
42: }
43:
44: /**
45: * @see org.apache.james.util.mail.handlers.AbstractDataContentHandler#computeDataFlavor()
46: */
47: protected ActivationDataFlavor computeDataFlavor() {
48: return new ActivationDataFlavor(MimeMultipartReport.class,
49: "multipart/report", "Multipart Report");
50: }
51:
52: /**
53: * @see javax.activation.DataContentHandler#writeTo(java.lang.Object,
54: * java.lang.String, java.io.OutputStream)
55: */
56: public void writeTo(Object aPart, String aMimeType,
57: OutputStream aStream) throws IOException {
58: if (!(aPart instanceof MimeMultipartReport))
59: throw new IOException("Type \""
60: + aPart.getClass().getName()
61: + "\" is not supported.");
62: try {
63: ((MimeMultipartReport) aPart).writeTo(aStream);
64: } catch (MessagingException e) {
65: throw new IOException(e.getMessage());
66: }
67: }
68:
69: /**
70: * @see org.apache.james.util.mail.handlers.AbstractDataContentHandler#computeContent(javax.activation.DataSource)
71: */
72: protected Object computeContent(DataSource aDataSource)
73: throws MessagingException {
74: return new MimeMultipartReport(aDataSource);
75: }
76: }
|