KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > resource > UrlResource


1 package org.sapia.resource;
2
3 import java.io.FileNotFoundException JavaDoc;
4 import java.io.IOException JavaDoc;
5 import java.io.InputStream JavaDoc;
6 import java.net.URI JavaDoc;
7 import java.net.URL JavaDoc;
8
9 /**
10  * Implements a <code>Resource</code> over a <code>URL</code>
11  *
12  * @see java.net.URL
13  *
14  * @author Yanick Duchesne
15  */

16 public class UrlResource implements Resource {
17   static final long UNDEFINED = -1;
18   private URL JavaDoc _url;
19
20   public UrlResource(URL JavaDoc url) {
21     _url = url;
22   }
23
24   public long lastModified() {
25     return UNDEFINED;
26   }
27
28   public InputStream JavaDoc getInputStream() throws IOException JavaDoc {
29     try{
30       return _url.openStream();
31     }catch(FileNotFoundException JavaDoc e){
32       throw new ResourceNotFoundException(e.getMessage());
33     }
34   }
35
36   public String JavaDoc getURI() {
37     return _url.toExternalForm();
38   }
39
40   public String JavaDoc toString() {
41     return _url.toExternalForm();
42   }
43   
44   public Resource getRelative(String JavaDoc uri) throws IOException JavaDoc {
45     URI JavaDoc u = Utils.toURIObject(uri);
46     if(u.isAbsolute()){
47       throw new IOException JavaDoc("URI is absolute: " + uri + "; must be relative");
48     }
49     if(_url != null){
50       return new UrlResource(new URL JavaDoc(Utils.getRelativePath(_url.toExternalForm(), uri, true)));
51     }
52     else{
53       return new UrlResource(new URL JavaDoc(uri));
54     }
55   }
56   
57 }
58
Popular Tags