1 package org.jicengine.io; 2 3 import java.io.InputStream ; 4 import java.io.IOException ; 5 import java.io.FileNotFoundException ; 6 import java.util.StringTokenizer ; 7 8 26 27 public class ClassResource extends AbstractResource implements UrlReadable { 28 29 private Class resourceOwnerClass; 30 private String resourceName; 31 32 41 public ClassResource(Class resourceOwnerClass, String resourceName) 42 { 43 super("class://" + resourceOwnerClass.getName() + "/" + resourceName); 44 this.resourceName = resourceName; 45 this.resourceOwnerClass = resourceOwnerClass; 46 } 47 48 public Class getResourceOwnerClass() 49 { 50 return this.resourceOwnerClass; 51 } 52 53 57 public String getResourceName() 58 { 59 return this.resourceName; 60 } 61 62 public java.net.URL getUrl() throws IOException 63 { 64 java.net.URL url = getResourceOwnerClass().getResource(getResourceName()); 65 if( url != null ){ 66 return url; 67 } 68 else { 69 throw new java.io.FileNotFoundException ("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 getInputStream() throws java.io.IOException 84 { 85 InputStream stream = this.resourceOwnerClass.getResourceAsStream(getResourceName()); 86 if( stream != null ){ 87 return stream; 88 } 89 else { 90 throw new java.io.FileNotFoundException ("Resource '" + getResourceName() + "' of class '" + getResourceOwnerClass().getName() + "' not available."); 91 } 92 } 93 94 public Resource getResource(String relativePath) throws java.io.IOException 95 { 96 return new ClassResource(getResourceOwnerClass(), PathResolver.getRealPath(getResourceName(), relativePath)); 97 } 98 99 } 100 | Popular Tags |