001 package org.apache.tapestry.resolver; 002 003 import org.apache.hivemind.Resource; 004 import org.apache.tapestry.IComponent; 005 import org.apache.tapestry.IRequestCycle; 006 007 import java.util.Locale; 008 009 /** 010 * Service responsible for finding resources relative or specific to a {@link org.apache.tapestry.IComponent}. 011 * 012 */ 013 public interface IComponentResourceResolver { 014 015 /** 016 * Searches for a resource relative to the specified {@link IComponent}, optionally also attemping to 017 * find a localized version of the resource using the specified {@link Locale}. 018 * 019 * @param component 020 * The component to find the resource relative to. 021 * @param cycle 022 * The current request. 023 * @param name 024 * Optional resource name to search for, the default is to use the component name. 025 * @param extension 026 * Extension name of the resource, such as <ComponentName>.properties for properties 027 * / <ComponentName>.html for templates and so on. 028 * @param locale 029 * Optional localization specifier. 030 * 031 * @return The resolved resource, or null if none could be found. The returned {@link Resource} may 032 * also be not null but still not valid. To ensure validity check {@link org.apache.hivemind.Resource#getResourceURL()} for 033 * a not null value. 034 */ 035 Resource findComponentResource(IComponent component, IRequestCycle cycle, String name, String extension, Locale locale); 036 }