KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jicengine > io > ClasspathResource


1 package org.jicengine.io;
2
3 import java.io.InputStream JavaDoc;
4 import java.io.File JavaDoc;
5 import java.io.IOException JavaDoc;
6 import java.io.FileNotFoundException JavaDoc;
7 import java.util.StringTokenizer JavaDoc;
8
9 /**
10  * A resource found in the classpath. The classloader of this
11  * ClassPathResource is used for reading the resource.
12  *
13  *
14     * <p>
15  * Copyright (C) 2004 Timo Laitinen
16  * </p>
17  *
18  * @author Timo Laitinen
19  * @created 2004-09-20
20  * @since JICE-0.10
21  * @version 1.0
22  * @see java.lang.Class
23  * @see java.lang.ClassLoader
24  * @see java.lang.Class#getResourceAsStream
25  * @see java.lang.Class#getResource
26  */

27
28 public class ClasspathResource extends AbstractResource implements UrlReadable {
29
30     private ClassLoader JavaDoc classLoader;
31     private String JavaDoc resourceName;
32
33     /**
34      * The name of the resource, for method ClassLoader.getResourceAsStream().
35      * @see java.lang.Class#getResourceAsStream
36      * @see java.lang.Class#getResource
37      */

38     public ClasspathResource(String JavaDoc resourceName)
39     {
40         super("classpath://" + resourceName);
41         this.classLoader = getClass().getClassLoader();
42         this.resourceName = resourceName;
43     }
44
45     public ClasspathResource(ClassLoader JavaDoc classLoader, String JavaDoc resourceName)
46     {
47         super("classpath://" + resourceName);
48         this.classLoader = classLoader;
49         this.resourceName = resourceName;
50     }
51
52     public ClassLoader JavaDoc getClassLoader()
53     {
54         return this.classLoader;
55     }
56
57     public String JavaDoc getResourceName()
58     {
59         return this.resourceName;
60     }
61
62     public java.net.URL JavaDoc getUrl() throws IOException JavaDoc
63     {
64         java.net.URL JavaDoc url = getClassLoader().getResource(getResourceName());
65         if( url != null ){
66             return url;
67         }
68         else {
69             throw new FileNotFoundException JavaDoc("Resource '" + getResourceName() + "' not available in classpath.");
70         }
71     }
72
73     public boolean isAvailable()
74     {
75         if( getClassLoader().getResource(getResourceName()) != null ){
76             return true;
77         }
78         else {
79             return false;
80         }
81     }
82
83     public InputStream JavaDoc getInputStream() throws java.io.IOException JavaDoc
84         {
85         InputStream JavaDoc stream = getClassLoader().getResourceAsStream(getResourceName());
86
87         if( stream != null ){
88             return stream;
89         }
90         else {
91             throw new java.io.IOException JavaDoc("Resource '" + getResourceName() + "' not available in classpath.");
92         }
93     }
94
95     public Resource getResource(String JavaDoc relativePath) throws java.io.IOException JavaDoc
96     {
97         return new ClasspathResource(PathResolver.getRealPath(getResourceName(), relativePath));
98     }
99 }
100
Popular Tags