001 /*
002 * $Id: TestResources.java 354330 2005-12-06 06:05:19Z niallp $
003 * $Revision: 354330 $
004 * $Date: 2005-12-06 06:05:19 +0000 (Tue, 06 Dec 2005) $
005 *
006 * ====================================================================
007 *
008 * Copyright 2003-2005 The Apache Software Foundation
009 *
010 * Licensed under the Apache License, Version 2.0 (the "License");
011 * you may not use this file except in compliance with the License.
012 * You may obtain a copy of the License at
013 *
014 * http://www.apache.org/licenses/LICENSE-2.0
015 *
016 * Unless required by applicable law or agreed to in writing, software
017 * distributed under the License is distributed on an "AS IS" BASIS,
018 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
019 * See the License for the specific language governing permissions and
020 * limitations under the License.
021 *
022 */
023
024 package org.apache.commons.resources.impl;
025
026 import java.util.ArrayList;
027 import java.util.HashMap;
028 import java.util.Iterator;
029 import java.util.List;
030 import java.util.Locale;
031 import java.util.Map;
032
033 import org.apache.commons.resources.ResourcesException;
034 import org.apache.commons.resources.ResourcesKeyException;
035
036 /**
037 * <p>Concrete implementation of {@link org.apache.commons.resources.Resources}
038 * for unit tests.</p>
039 */
040 public class TestResources extends ResourcesBase {
041
042
043 // ----------------------------------------------------------- Constructors
044
045
046 // Construct a test instance with the specified name
047 public TestResources(String name) {
048 super(name);
049 }
050
051
052 // ----------------------------------------------------- Instance Variables
053
054
055 // Has this instance been initialized?
056 protected boolean initialized = false;
057
058
059 // Map of resource String values
060 protected Map map = new HashMap();
061
062
063 // ------------------------------------------------------ Lifecycle Methods
064
065
066 // Initialize this Resources instance
067 public void init() throws ResourcesException {
068
069 super.init();
070 map.put("test.specific", "[test] SPECIFIC");
071 map.put("test.inherit", "[test] INHERIT");
072 initialized = true;
073
074 }
075
076
077 // Destroy this Resources instance
078 public void destroy() throws ResourcesException {
079
080 super.destroy();
081 map.clear();
082 initialized = false;
083
084 }
085
086
087 // ------------------------------------------------------------- Properties
088
089
090 // Return the keys for all defined Resources
091 public Iterator getKeys() {
092
093 List results = new ArrayList();
094 results.add("test.base");
095 results.add("test.specific");
096 results.add("test.inherit");
097 results.add("test.message");
098 results.add("test.message.single");
099 return (results.iterator());
100
101 }
102
103
104 // Has this instance been initialized?
105 public boolean isInitialized() {
106 return (this.initialized);
107 }
108
109
110 // ---------------------------------------------- Content Retrieval Methods
111
112
113 /**
114 * <p>Return the content for the specified <code>key</code> as an
115 * Object, localized based on the specified <code>locale</code>.
116 * </p>
117 *
118 * @param key Identifier for the requested content
119 * @param locale Locale with which to localize retrieval,
120 * or <code>null</code> for the default Locale
121 *
122 * @exception ResourcesException if an error occurs retrieving or
123 * returning the requested content
124 */
125 public Object getObject(String key){
126 return getObject(key, null);
127 }
128 public Object getObject(String key, Locale locale)
129 throws ResourcesException {
130
131 Object value = map.get(key);
132 if (value == null) {
133 if (isReturnNull()) {
134 return (null);
135 } else {
136 throw new ResourcesKeyException(key);
137 }
138 }
139 return (value);
140
141 }
142
143
144 }