KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > xb > binding > sunday > xop > SimpleDataSource


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.xb.binding.sunday.xop;
23
24 import java.io.ByteArrayInputStream JavaDoc;
25 import java.io.ByteArrayOutputStream JavaDoc;
26 import java.io.IOException JavaDoc;
27 import java.io.InputStream JavaDoc;
28 import java.io.ObjectOutputStream JavaDoc;
29 import java.io.OutputStream JavaDoc;
30 import javax.activation.DataSource JavaDoc;
31 import org.jboss.xb.binding.JBossXBRuntimeException;
32
33 /**
34  * @author <a HREF="mailto:alex@jboss.org">Alexey Loubyansky</a>
35  * @version <tt>$Revision: 1958 $</tt>
36  */

37 public class SimpleDataSource
38    implements DataSource JavaDoc
39 {
40    public final byte[] bytes;
41    public final String JavaDoc contentType;
42
43    public SimpleDataSource(Object JavaDoc o, String JavaDoc contentType)
44    {
45       ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc();
46       ObjectOutputStream JavaDoc oos = null;
47       try
48       {
49          oos = new ObjectOutputStream JavaDoc(baos);
50          oos.writeObject(o);
51       }
52       catch(IOException JavaDoc e)
53       {
54          throw new JBossXBRuntimeException("XOP failed to serialize object " + o + ": " + e.getMessage());
55       }
56       finally
57       {
58          if(oos != null)
59          {
60             try
61             {
62                oos.close();
63             }
64             catch(IOException JavaDoc e)
65             {
66             }
67          }
68       }
69       bytes = baos.toByteArray();
70
71       this.contentType = contentType;
72    }
73
74    public String JavaDoc getContentType()
75    {
76       return contentType;
77    }
78
79    public InputStream JavaDoc getInputStream() throws IOException JavaDoc
80    {
81       return new ByteArrayInputStream JavaDoc(bytes);
82    }
83
84    public String JavaDoc getName()
85    {
86       throw new UnsupportedOperationException JavaDoc("getName is not implemented.");
87    }
88
89    public OutputStream JavaDoc getOutputStream() throws IOException JavaDoc
90    {
91       throw new UnsupportedOperationException JavaDoc("getOutputStream is not implemented.");
92    }
93 }
94
Popular Tags