ModulesRepository.java
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 3k
Category:

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c) JForum Team
  3.  * All rights reserved.
  4.  * 
  5.  * Redistribution and use in source and binary forms, 
  6.  * with or without modification, are permitted provided 
  7.  * that the following conditions are met:
  8.  * 
  9.  * 1) Redistributions of source code must retain the above 
  10.  * copyright notice, this list of conditions and the 
  11.  * following  disclaimer.
  12.  * 2)  Redistributions in binary form must reproduce the 
  13.  * above copyright notice, this list of conditions and 
  14.  * the following disclaimer in the documentation and/or 
  15.  * other materials provided with the distribution.
  16.  * 3) Neither the name of "Rafael Steil" nor 
  17.  * the names of its contributors may be used to endorse 
  18.  * or promote products derived from this software without 
  19.  * specific prior written permission.
  20.  * 
  21.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
  22.  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
  23.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  24.  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  25.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  26.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
  27.  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
  28.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  29.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  30.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
  31.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
  32.  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  33.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
  34.  * IN CONTRACT, STRICT LIABILITY, OR TORT 
  35.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
  36.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  37.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
  38.  * 
  39.  * Created on 29/11/2004 22:53:28
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum.repository;
  44. import java.io.IOException;
  45. import java.util.HashMap;
  46. import java.util.Map;
  47. import java.util.Properties;
  48. import net.jforum.ConfigLoader;
  49. import net.jforum.JForumExecutionContext;
  50. import org.apache.log4j.Logger;
  51. /**
  52.  * @author Rafael Steil
  53.  * @version $Id: ModulesRepository.java,v 1.11 2006/08/20 22:47:38 rafaelsteil Exp $
  54.  */
  55. public class ModulesRepository
  56. {
  57. private static final Logger logger = Logger.getLogger(ModulesRepository.class);
  58. private static Map cache = new HashMap();
  59. private static final String ENTRIES = "entries";
  60. /**
  61.  * Loads all modules mapping.
  62.  * 
  63.  * @param baseDir The directory where the file "modulesMapping.properties"
  64.  * is placed.
  65.  * @throws IOException
  66.  */
  67. public static void init(String baseDir)
  68. {
  69. cache.put(ENTRIES, ConfigLoader.loadModulesMapping(baseDir));
  70. }
  71. public static int size()
  72. {
  73. return cache.size();
  74. }
  75. /**
  76.  * Gets the fully qualified name of some given module name.
  77.  * 
  78.  * @param moduleName The module's name to get its class name
  79.  * @return The class name associated to the module name passed
  80.  * as argument, or <code>null</code> if not found.
  81.  */
  82. public static String getModuleClass(String moduleName) {
  83. Properties p = (Properties)cache.get(ENTRIES);
  84. if (p == null) {
  85. logger.error("Null modules. Askes moduleName: " + moduleName
  86. + ", url=" + JForumExecutionContext.getRequest().getQueryString());
  87. return null;
  88. }
  89. return p.getProperty(moduleName);
  90. }
  91. }