KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.jicengine.io;
2
3 import java.io.InputStream JavaDoc;
4 import java.io.IOException JavaDoc;
5 import java.io.FileNotFoundException JavaDoc;
6 import java.util.StringTokenizer JavaDoc;
7
8 /**
9  * Resource of some Class. The resource is read by calling
10  * [resource-owner-class].getResourceAsStream([resource-name])
11  *
12  *
13  * <p>
14  * Copyright (C) 2004 Timo Laitinen
15  * </p>
16  *
17  * @author Timo Laitinen
18  * @created 2004-09-20
19  * @since JICE-0.10
20  * @version 1.0
21  * @see java.lang.Class
22  * @see java.lang.ClassLoader
23  * @see java.lang.Class#getResourceAsStream
24  * @see java.lang.Class#getResource
25  */

26
27 public class ClassResource extends AbstractResource implements UrlReadable {
28
29     private Class JavaDoc resourceOwnerClass;
30     private String JavaDoc resourceName;
31
32     /**
33      * @param resourceOwnerClass the Class that own the resource. specifies the
34      * location of the actual file.
35      * @param resourceName The name of the resource, given for method
36      * <code>Class.getResourceAsStream()</code>.
37      *
38      * @see java.lang.Class#getResourceAsStream
39      * @see java.lang.Class#getResource
40      */

41     public ClassResource(Class JavaDoc resourceOwnerClass, String JavaDoc resourceName)
42     {
43         super("class://" + resourceOwnerClass.getName() + "/" + resourceName);
44         this.resourceName = resourceName;
45         this.resourceOwnerClass = resourceOwnerClass;
46     }
47
48     public Class JavaDoc getResourceOwnerClass()
49     {
50         return this.resourceOwnerClass;
51     }
52
53     /**
54      * not same as the getIdentifier(), which is prefixed with the
55      * name of the owner class..
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 = getResourceOwnerClass().getResource(getResourceName());
65         if( url != null ){
66             return url;
67         }
68         else {
69             throw new java.io.FileNotFoundException JavaDoc("Resource '" + getResourceName() + "' of class '" + getResourceOwnerClass().getName() + "' not available.");
70         }
71     }
72
73     public boolean isAvailable()
74     {
75         if( getResourceOwnerClass().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 = this.resourceOwnerClass.getResourceAsStream(getResourceName());
86         if( stream != null ){
87             return stream;
88         }
89         else {
90             throw new java.io.FileNotFoundException JavaDoc("Resource '" + getResourceName() + "' of class '" + getResourceOwnerClass().getName() + "' not available.");
91         }
92     }
93
94     public Resource getResource(String JavaDoc relativePath) throws java.io.IOException JavaDoc
95     {
96         return new ClassResource(getResourceOwnerClass(), PathResolver.getRealPath(getResourceName(), relativePath));
97     }
98
99 }
100
Popular Tags