You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Apache Wiki <wi...@apache.org> on 2005/11/28 12:09:15 UTC
[Jakarta-commons Wiki] Update of "ResourcesUserGuideCreating" by
NiallPemberton
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Jakarta-commons Wiki" for change notification.
The following page has been changed by NiallPemberton:
http://wiki.apache.org/jakarta-commons/ResourcesUserGuideCreating
The comment on the change is:
add Creating implementation page to user guide
New page:
|| [wiki:ResourcesUserGuide Home] || [wiki:ResourcesUserGuideImplementations Previous] ||
----
= 4. Creating a Resources Implementation =
You can implement the [http://jakarta.apache.org/commons/resources/apidocs/org/apache/commons/resources/Resources.html Resources] and [http://jakarta.apache.org/commons/resources/apidocs/org/apache/commons/resources/ResourcesFactory.html ResourcesFactory] interfaces directly, however, by far the easiest way is to use one of the '''base''' implementations provided.
The two '''base''' Resources classes are:
* [http://jakarta.apache.org/commons/resources/apidocs/org/apache/commons/resources/ResourcesBase.html ResourcesBase] - implements Resources
* '''{{{void:init()}}}''' - (optional) for initialization processing.
* '''{{{Iterator:getKeys()}}}''' - (required) return the set of keys in this Resources
* '''{{{Object:getObject(key, Locale, TimeZone)}}}''' - (required) retrieve the content for a key/Locale/Timezone
* [http://jakarta.apache.org/commons/resources/apidocs/org/apache/commons/resources/CollectionResourcesBase.html CollectionResourcesBase] - extends '''!ResourcesBase''' and provides a mechanism for caching a set of '''Map'''s containing key/value pairs for a Locale.
* '''{{{void:init()}}}''' - (optional) for initialization processing.
* '''{{{Map:getLocaleMap(baseUrl, Locale)}}}''' (required) returns a Map of key/value pairs for a Locale.
== 4.1 ResourcesBase ==
{{{
public class MyResources extends ResourcesBase {
private String config;
public MyResources(String name, config) {
super(name);
this.config = config;
}
public void init() {
// do initialization here, if required
}
public Iterator getKeys() {
// must implement this method
}
public Object getObject(String key, Locale locale, TimeZone timeZone) {
// must implement this method
}
}
}}}
== 4.2 CollectionsResourcesBase ==
{{{
public class MyResources extends CollectionsResourcesBase {
public MyResources(String name, config) {
super(name, config);
}
public void init() {
// do initialization here, if required
}
public Object getLocaleMap(String baseUrl, Locale locale) {
// must implement this method
}
}
}}}
== 4.2 ResourcesFactory ==
To create a '''factory''' for your '''Resources''' implementation, extends the [http://jakarta.apache.org/commons/resources/apidocs/org/apache/commons/resources/ResourcesFactoryBase.html ResourcesFactoryBase] ...
{{{
public class MyResourcesFactory extends ResourcesFactoryBase {
public MyResources() {
super();
}
protected Resources createResources(String name, String config) {
Resources resources = new MyResources(name);
Resources res = new PropertyResources(name, config);
resources.setReturnNull(isReturnNull());
resources.init();
return resources;
}
}
}}}
'''N.B''' for implementations to be used in a Web Application there is a [http://jakarta.apache.org/commons/resources/apidocs/org/apache/commons/resources/WebappResourcesFactoryBase.html WebappResourcesFactoryBase] factory which includes a '''!ServletContext''' property with appropriate read/write methods.
----
|| [wiki:ResourcesUserGuide Home] || [wiki:ResourcesUserGuideImplementations Previous] ||
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org