1 15 package org.apache.tapestry.asset; 16 17 import java.io.InputStream ; 18 import java.net.URL ; 19 20 import org.apache.hivemind.ApplicationRuntimeException; 21 import org.apache.hivemind.Location; 22 import org.apache.hivemind.Resource; 23 import org.apache.hivemind.util.Defense; 24 import org.apache.tapestry.IAsset; 25 import org.apache.tapestry.IRequestCycle; 26 import org.apache.tapestry.Tapestry; 27 28 34 35 public class ContextAsset extends AbstractAsset implements IAsset 36 { 37 private String _contextPath; 38 39 private String _resolvedURL; 40 41 public ContextAsset(String contextPath, Resource resource, Location location) 42 { 43 super(resource, location); 44 45 Defense.notNull(contextPath, "contextPath"); 46 47 _contextPath = contextPath; 48 } 49 50 55 56 public String buildURL(IRequestCycle cycle) 57 { 58 if (_resolvedURL == null) 59 _resolvedURL = _contextPath + getResourceLocation().getPath(); 60 61 return _resolvedURL; 62 } 63 64 public InputStream getResourceAsStream(IRequestCycle cycle) 65 { 66 try 67 { 68 URL url = getResourceLocation().getResourceURL(); 69 70 return url.openStream(); 71 } 72 catch (Exception ex) 73 { 74 throw new ApplicationRuntimeException(Tapestry.format( 75 "ContextAsset.resource-missing", 76 getResourceLocation()), ex); 77 } 78 } 79 } | Popular Tags |