ResourceResolver.java
001 /*
002  * Copyright 2010-2013 the original author or authors.
003  *
004  * Licensed under the Apache License, Version 2.0 (the "License");
005  * you may not use this file except in compliance with the License.
006  * You may obtain a copy of the License at
007  *
008  *      http://www.apache.org/licenses/LICENSE-2.0
009  *
010  * Unless required by applicable law or agreed to in writing, software
011  * distributed under the License is distributed on an "AS IS" BASIS,
012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013  * See the License for the specific language governing permissions and
014  * limitations under the License.
015  */
016 
017 package griffon.core.resources;
018 
019 import java.util.List;
020 import java.util.Locale;
021 import java.util.Map;
022 
023 /**
024  * Interface for resolving resources, with support for the parameterization and internationalization of such resources.
025  *
026  @author Andres Almiray
027  @author Alexander Klein
028  @since 1.1.0
029  */
030 public interface ResourceResolver {
031     /**
032      * Try to resolve the resource.
033      *
034      @param key Key to lookup, such as 'sample.SampleModel.icon'
035      @return The resolved resource at the given key for the default locale
036      @throws NoSuchResourceException if no resource is found
037      */
038     Object resolveResource(String keythrows NoSuchResourceException;
039 
040     /**
041      * Try to resolve the resource.
042      *
043      @param key    Key to lookup, such as 'sample.SampleModel.icon'
044      @param locale Locale in which to lookup
045      @return The resolved resource at the given key for the given locale
046      @throws NoSuchResourceException if no resource is found
047      */
048     Object resolveResource(String key, Locale localethrows NoSuchResourceException;
049 
050     /**
051      * Try to resolve the resource.
052      *
053      @param key  Key to lookup, such as 'sample.SampleModel.icon'
054      @param args Arguments that will be filled in for params within the resource (params look like "{0}" within a
055      *             resource, but this might differ between implementations), or null if none.
056      @return The resolved resource at the given key for the default locale
057      @throws NoSuchResourceException if no resource is found
058      */
059     Object resolveResource(String key, Object[] argsthrows NoSuchResourceException;
060 
061     /**
062      * Try to resolve the resource.
063      *
064      @param key    Key to lookup, such as 'sample.SampleModel.icon'
065      @param args   Arguments that will be filled in for params within the resource (params look like "{0}" within a
066      *               resource, but this might differ between implementations), or null if none.
067      @param locale Locale in which to lookup
068      @return The resolved resource at the given key for the given locale
069      @throws NoSuchResourceException if no resource is found
070      */
071     Object resolveResource(String key, Object[] args, Locale localethrows NoSuchResourceException;
072 
073     /**
074      * Try to resolve the resource.
075      *
076      @param key  Key to lookup, such as 'sample.SampleModel.icon'
077      @param args Arguments that will be filled in for params within the resource (params look like "{0}" within a
078      *             resource, but this might differ between implementations), or null if none.
079      @return The resolved resource at the given key for the default locale
080      @throws NoSuchResourceException if no resource is found
081      */
082     Object resolveResource(String key, List argsthrows NoSuchResourceException;
083 
084     /**
085      * Try to resolve the resource.
086      *
087      @param key    Key to lookup, such as 'sample.SampleModel.icon'
088      @param args   Arguments that will be filled in for params within the resource (params look like "{0}" within a
089      *               resource, but this might differ between implementations), or null if none.
090      @param locale Locale in which to lookup
091      @return The resolved resource at the given key for the given locale
092      @throws NoSuchResourceException if no resource is found
093      */
094     Object resolveResource(String key, List args, Locale localethrows NoSuchResourceException;
095 
096     /**
097      * Try to resolve the resource. Return default resource if no resource was found.
098      *
099      @param key          Key to lookup, such as 'sample.SampleModel.icon'
100      @param defaultValue Message to return if the lookup fails
101      @return The resolved resource at the given key for the default locale
102      */
103     Object resolveResource(String key, Object defaultValue);
104 
105     /**
106      * Try to resolve the resource. Return default resource if no resource was found.
107      *
108      @param key          Key to lookup, such as 'sample.SampleModel.icon'
109      @param defaultValue Message to return if the lookup fails
110      @param locale       Locale in which to lookup
111      @return The resolved resource at the given key for the given locale
112      */
113     Object resolveResource(String key, Object defaultValue, Locale locale);
114 
115     /**
116      * Try to resolve the resource. Return default resource if no resource was found.
117      *
118      @param key          Key to lookup, such as 'sample.SampleModel.icon'
119      @param args         Arguments that will be filled in for params within the resource (params look like "{0}"
120      *                     within a resource, but this might differ between implementations), or null if none.
121      @param defaultValue Message to return if the lookup fails
122      @return The resolved resource at the given key for the default locale
123      */
124     Object resolveResource(String key, Object[] args, Object defaultValue);
125 
126     /**
127      * Try to resolve the resource. Return default resource if no resource was found.
128      *
129      @param key          Key to lookup, such as 'sample.SampleModel.icon'
130      @param args         Arguments that will be filled in for params within the resource (params look like "{0}"
131      *                     within a resource, but this might differ between implementations), or null if none.
132      @param defaultValue Message to return if the lookup fails
133      @param locale       Locale in which to lookup
134      @return The resolved resource at the given key for the given locale
135      */
136     Object resolveResource(String key, Object[] args, Object defaultValue, Locale locale);
137 
138     /**
139      * Try to resolve the resource. Return default resource if no resource was found.
140      *
141      @param key          Key to lookup, such as 'sample.SampleModel.icon'
142      @param args         Arguments that will be filled in for params within the resource (params look like "{0}"
143      *                     within a resource, but this might differ between implementations), or null if none.
144      @param defaultValue Message to return if the lookup fails
145      @return The resolved resource at the given key for the default locale
146      */
147     Object resolveResource(String key, List args, Object defaultValue);
148 
149     /**
150      * Try to resolve the resource. Return default resource if no resource was found.
151      *
152      @param key          Key to lookup, such as 'sample.SampleModel.icon'
153      @param args         Arguments that will be filled in for params within the resource (params look like "{0}"
154      *                     within a resource, but this might differ between implementations), or null if none.
155      @param defaultValue Message to return if the lookup fails
156      @param locale       Locale in which to lookup
157      @return The resolved resource at the given key for the given locale
158      */
159     Object resolveResource(String key, List args, Object defaultValue, Locale locale);
160 
161     /**
162      * Try to resolve the resource.
163      *
164      @param key  Key to lookup, such as 'sample.SampleModel.icon'
165      @param args Arguments that will be filled in for params within the resource (params look like "{:key}"
166      *             within a resource, but this might differ between implementations), or null if none.
167      @return The resolved resource at the given key for the default locale
168      @throws NoSuchResourceException if no resource is found
169      */
170     Object resolveResource(String key, Map<String, Object> argsthrows NoSuchResourceException;
171 
172     /**
173      * Try to resolve the resource.
174      *
175      @param key    Key to lookup, such as 'sample.SampleModel.icon'
176      @param args   Arguments that will be filled in for params within the resource (params look like "{:key}"
177      *               within a resource, but this might differ between implementations), or null if none.
178      @param locale Locale in which to lookup
179      @return The resolved resource at the given key for the given locale
180      @throws NoSuchResourceException if no resource is found
181      */
182     Object resolveResource(String key, Map<String, Object> args, Locale localethrows NoSuchResourceException;
183 
184     /**
185      * Try to resolve the resource. Return default resource if no resource was found.
186      *
187      @param key          Key to lookup, such as 'sample.SampleModel.icon'
188      @param args         Arguments that will be filled in for params within the resource (params look like "{:key}"
189      *                     within a resource, but this might differ between implementations), or null if none.
190      @param defaultValue Message to return if the lookup fails
191      @return The resolved resource at the given key for the default locale
192      */
193     Object resolveResource(String key, Map<String, Object> args, Object defaultValue);
194 
195     /**
196      * Try to resolve the resource. Return default resource if no resource was found.
197      *
198      @param key          Key to lookup, such as 'sample.SampleModel.icon'
199      @param args         Arguments that will be filled in for params within the resource (params look like "{:key}"
200      *                     within a resource, but this might differ between implementations), or null if none.
201      @param defaultValue Message to return if the lookup fails
202      @param locale       Locale in which to lookup
203      @return The resolved resource at the given key for the given locale
204      */
205     Object resolveResource(String key, Map<String, Object> args, Object defaultValue, Locale locale);
206 }