KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > mobilitools > smi > lib > bytearray > ByteArrayURLConnection


1 /*
2 * MobiliTools: an implementation of the Object Management Group's
3 * Mobile Agent Facility specification.
4 * Copyright (C) 2003 France Telecom R&D
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * MobiliTools $Name: $
21 *
22 * Contact: mobilitools-smi@lists.debian-sf.objectweb.org
23 *
24 * Authors: Bruno Dillenseger
25 */

26
27
28 package org.objectweb.mobilitools.smi.lib.bytearray;
29
30
31 import org.objectweb.mobilitools.smi.lib.SMIClassLoader;
32 import java.io.*;
33 import java.net.*;
34
35
36 public class ByteArrayURLConnection extends URLConnection
37 {
38     String JavaDoc codebase, name;
39     SMIClassLoader loader;
40     byte[] bytes;
41
42
43     public ByteArrayURLConnection(URL url, SMIClassLoader classloader)
44     {
45         super(url);
46         name = url.getRef();
47         loader = classloader;
48         connected = false;
49     }
50
51
52     public void connect()
53     {
54         if (! connected)
55         {
56             bytes = loader.getBytes(name);
57             connected = true;
58         }
59     }
60
61
62     public int getContentLength()
63     {
64         if (! connected)
65         {
66             connect();
67         }
68         return bytes.length;
69     }
70
71
72     public String JavaDoc getContentType()
73     {
74         String JavaDoc type = guessContentTypeFromName(name);
75         if (type == null)
76         {
77             if (! connected)
78             {
79                 connect();
80             }
81             try
82             {
83                 type = guessContentTypeFromStream(new ByteArrayInputStream(bytes));
84             }
85             catch (IOException ex)
86             {
87             }
88         }
89         return type;
90     }
91
92
93     public Object JavaDoc getContent()
94         throws IOException
95     {
96         if (! connected)
97         {
98             connect();
99         }
100         return bytes;
101     }
102
103
104     public InputStream getInputStream()
105         throws IOException
106     {
107         if (! connected)
108         {
109             connect();
110         }
111         return new ByteArrayInputStream(bytes);
112     }
113
114
115     public OutputStream getOutputStream()
116         throws IOException
117     {
118         throw new IOException("bytearray URLs cannot by written to");
119     }
120
121
122     public String JavaDoc toString()
123     {
124         return "ByteArrayURLConnection for " + loader + ", URL " + getURL();
125     }
126 }
127
Popular Tags