org.apache.wicket.resource.loader.IStringResourceLoader.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.wicket.resource.loader.IStringResourceLoader.java

Source

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.wicket.resource.loader;

import java.util.Locale;

import org.apache.wicket.Component;

/**
 * The string resource loader interface allows a strategy pattern to be applied to the loading of
 * resource strings for an application. The loader (or chain of loaders) that are used is configured
 * via the application settings.
 * <p>
 * Each particular implementation of this interface may define its own mechanism for searching for
 * resources. Please see the documents for each particular implementation to determine its behavior
 * and to see how it can be configured.
 * <p>
 * It is important to note that if a resource is not found by a particular loader than the loader
 * should return <code>null</code> rather than throw an exception. The reason for this is that
 * loaders can be arranged in a chain and it would be very inefficient for loaders earlier in the
 * chain to throw exceptions that must be caught and handled each time until the correct loader in
 * the chain is reached.
 * 
 * @see org.apache.wicket.settings.ResourceSettings
 * 
 * @author Chris Turner
 * @author Juergen Donnerstag
 */
public interface IStringResourceLoader {
    /**
     * Get the string resource for the given combination of component class, resource key, locale
     * and style. The component class provided is used to allow implementation of component specific
     * resource loading (e.g. per page or per reusable component). The key should be a String
     * containing a lookup key into a resource bundle. The locale should contain the locale of the
     * current operation so that the appropriate set of resources can be selected. The style allows
     * the set of resources to select to be varied by skin/brand.
     * 
     * @param clazz
     *            The class to get the string resource for
     * @param key
     *            The key should be a String containing a lookup key into a resource bundle
     * @param locale
     *            The locale should contain the locale of the current operation so that the
     *            appropriate set of resources can be selected
     * @param style
     *            The style identifying the resource set to select the strings from (see
     *            {@link org.apache.wicket.Session})
     * @param variation
     *            The components variation (of the style)
     * @return The string resource value or null if the resource could not be loaded by this loader
     */
    String loadStringResource(Class<?> clazz, String key, Locale locale, String style, String variation);

    /**
     * Get the string resource for the given combination of component, resource key, locale and
     * style. The component provided is used to allow implementation of component specific resource
     * loading (e.g. per page or per reusable component). The key should be a String containing a
     * lookup key into a resource bundle. The Locale and the style will be taken from the Component
     * provided.
     * 
     * @param component
     *            The component to get the string resource for
     * @param key
     *            The key should be a String containing a lookup key into a resource bundle
     * @param locale
     *            Will be preset with the appropriate value. You shall ignore the component's
     *            locale.
     * @param style
     *            Will be preset with the appropriate value. You shall ignore the component's style.
     * @param variation
     *            Will be preset with the appropriate value. You shall ignore the component's
     *            variation.
     * @return The string resource value or null if the resource could not be loaded by this loader
     */
    String loadStringResource(Component component, String key, Locale locale, String style, String variation);
}