1 15 package org.apache.hivemind.util; 16 17 import java.net.URL ; 18 import java.util.Locale ; 19 20 import org.apache.hivemind.ClassResolver; 21 import org.apache.hivemind.Resource; 22 23 30 31 public class ClasspathResource extends AbstractResource 32 { 33 private ClassResolver _resolver; 34 35 public ClasspathResource(ClassResolver resolver, String path) 36 { 37 this(resolver, path, null); 38 } 39 40 public ClasspathResource(ClassResolver resolver, String path, Locale locale) 41 { 42 super(path, locale); 43 44 _resolver = resolver; 45 } 46 47 51 52 public Resource getLocalization(Locale locale) 53 { 54 String path = getPath(); 55 LocalizedResourceFinder finder = new LocalizedResourceFinder(_resolver); 56 57 LocalizedResource localizedResource = finder.resolve(path, locale); 58 59 if (localizedResource == null) 60 return null; 61 62 String localizedPath = localizedResource.getResourcePath(); 63 Locale pathLocale = localizedResource.getResourceLocale(); 64 65 if (localizedPath == null) 66 return null; 67 68 if (path.equals(localizedPath)) 69 return this; 70 71 return new ClasspathResource(_resolver, localizedPath, pathLocale); 72 } 73 74 77 78 public URL getResourceURL() 79 { 80 return _resolver.getResource(getPath()); 81 } 82 83 public String toString() 84 { 85 return "classpath:" + getPath(); 86 } 87 88 public int hashCode() 89 { 90 return 4783 & getPath().hashCode(); 91 } 92 93 protected Resource newResource(String path) 94 { 95 return new ClasspathResource(_resolver, path); 96 } 97 98 } 99 | Popular Tags |