1 // Copyright 2004, 2005 The Apache Software Foundation 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package org.apache.tapestry.asset; 16 17 /** 18 * <p> 19 * Note: This was a class prior to 4.0, at which point it was split into a service interface and a 20 * {@link org.apache.tapestry.asset.AssetExternalizerImpl service implementation}. 21 * 22 * @author Howard M. Lewis Ship 23 * @since 4.0 24 */ 25 public interface AssetExternalizer 26 { 27 /** 28 * Gets the URL to a private resource. If the resource was previously copied out of the 29 * classpath, the previously generated URL is returned. 30 * <p> 31 * If the asset directory and URL are not configured, then returns null. 32 * <p> 33 * Otherwise, the asset is copied out to the asset directory, the URL is constructed (and 34 * recorded for later) and the URL is returned. 35 * <p> 36 * This method is not explicitly synchronized but should work multi-threaded. It synchronizes on 37 * the internal <code>Map</code> used to map resource paths to URLs. 38 * 39 * @param resourcePath 40 * The full path of the resource within the classpath. This is expected to include a 41 * leading slash. For example: <code>/com/skunkworx/Banner.gif</code>. 42 */ 43 public String getURL(String resourcePath); 44 }