001    package org.apache.myfaces.tobago.bean;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more
005     * contributor license agreements.  See the NOTICE file distributed with
006     * this work for additional information regarding copyright ownership.
007     * The ASF licenses this file to You under the Apache License, Version 2.0
008     * (the "License"); you may not use this file except in compliance with
009     * the License.  You may obtain a copy of the License at
010     *
011     *      http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing, software
014     * distributed under the License is distributed on an "AS IS" BASIS,
015     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    /*
021     * Created 26.10.2004 11:51:00.
022     * $Id: ResourceMap.java 923623 2010-03-16 08:23:23Z lofwyr $
023     */
024    
025    import org.apache.commons.logging.Log;
026    import org.apache.commons.logging.LogFactory;
027    
028    import java.io.IOException;
029    import java.io.InputStream;
030    import java.util.Properties;
031    
032    /**
033     * @deprecated
034     */
035    @Deprecated
036    public class ResourceMap extends Properties {
037    
038      private static final Log LOG = LogFactory.getLog(ResourceMap.class);
039      private static final long serialVersionUID = -6696019120255349519L;
040    
041      public ResourceMap() {
042        if (LOG.isDebugEnabled()) {
043          LOG.debug("creating ResourceMap");
044        }
045      }
046    
047      public void setFilename(String filename) {
048        if (LOG.isDebugEnabled()) {
049          LOG.debug("filename = '" + filename + "'");
050        }
051        try {
052          InputStream is = getClass().getClassLoader().getResourceAsStream(filename);
053          if (is == null) {
054            LOG.error("Cannot load resource map from file: " + filename);
055          }
056          load(is);
057        } catch (IOException e) {
058          LOG.error("Cannot load resource map from file: " + filename, e);
059        }
060        if (LOG.isDebugEnabled()) {
061          LOG.debug("size() = \"" + size() + "\"");
062          for (Object x : keySet()) {
063            LOG.debug(x);
064          }
065        }
066      }
067    
068      // setFilename() is never called with myfaces implementation,
069      // because we implement Map. This hotfix enables filename setting via put().
070      public Object put(Object key, Object value) {
071        if ("filename".equals(key)) {
072          if (LOG.isDebugEnabled()) {
073            LOG.debug("put(\"filename\", \"" + value + "\")");
074          }
075          setFilename(value.toString());
076        }
077        return super.put(key, value);
078      }
079    
080      public Object get(Object key) {
081        Object value = super.get(key);
082        if (LOG.isDebugEnabled()) {
083          LOG.debug("Query value for key='" + key + "' -> '" + value + "'");
084        }
085        if (value == null) {
086          LOG.warn("Unknown value for key='" + key + "'");
087        }
088        return value;
089      }
090    }