ConfigureFactory.java
上传用户:xiekaiwei
上传日期:2015-07-04
资源大小:620k
文件大小:4k
源码类别:

Telnet客户端

开发平台:

Java

  1. /*
  2.  * @(#)ConfigureFactory.java
  3.  * @author  Kenneth J. Pouncey
  4.  * Modified by LDC Luc
  5.  *
  6.  * Copyright:    Copyright (c) 2001, 2002, 2003
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2, or (at your option)
  11.  * any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this software; see the file COPYING.  If not, write to
  20.  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  21.  * Boston, MA 02111-1307 USA
  22.  *
  23.  */
  24. package org.tn5250j.interfaces;
  25. import org.tn5250j.GlobalConfigure;
  26. import java.util.Properties;
  27. /**
  28.  * An interface defining objects that can create Configure
  29.  * instances.
  30.  */
  31. public abstract class ConfigureFactory {
  32.    static final public String SESSIONS = "sessions";
  33. //   static final public File ses = new File(SESSIONS);
  34.    static final public String MACROS = "macros";
  35.    static final public String KEYMAP = "keymap";  
  36.    private static ConfigureFactory  factory;
  37.    /**
  38.     * @return An instance of the Configure.
  39.     */
  40.   public static ConfigureFactory  getInstance()
  41.   {
  42.     ConfigureFactory.setFactory();
  43.     return factory;
  44.   }
  45.   private static final void setFactory()
  46.   {
  47.     if (factory == null)
  48.     {
  49.       try
  50.       {
  51.         String  className = System.getProperty(ConfigureFactory.class.getName());
  52.         if (className != null)
  53.         {
  54.           Class classObject = Class.forName(className);
  55.           Object  object = classObject.newInstance();
  56.           if (object instanceof ConfigureFactory)
  57.           {
  58.             ConfigureFactory.factory = (ConfigureFactory) object;
  59.           }
  60.         }
  61.       }
  62.       catch (Exception  ex)
  63.       {
  64.         ;
  65.       }
  66.       if (ConfigureFactory.factory == null)
  67.       { //take the default
  68. //        ConfigureFactory.factory = new GlobalConfigureFactory();
  69.         ConfigureFactory.factory = new GlobalConfigure();
  70.       }
  71.     }
  72.   }
  73.    abstract public void reloadSettings();
  74.    abstract public void saveSettings();
  75.    abstract public String getProperty(String regKey);
  76.    abstract public String getProperty(String regKey, String defaultValue);
  77.    abstract public void setProperties(String regKey, Properties regProps);
  78.    abstract public void setProperties(String regKey, String fileName, String  header);
  79.    abstract public void setProperties(String regKey, String fileName, String  header,
  80.                               boolean createFile);
  81.    abstract public Properties  getProperties(String regKey);
  82.    abstract public Properties  getProperties(String regKey,String fileName);
  83.    abstract public Properties  getProperties(String regKey,String fileName,
  84.                                                 boolean createFile, String header);
  85.    abstract public Properties  getProperties(String regKey,String fileName,
  86.                                                 boolean createFile, String header,
  87.                                                 boolean reloadIfLoaded);
  88.    abstract public void saveSettings(String regKey);
  89.    abstract public void saveSettings(String regKey, String header);
  90.    abstract public void saveSettings(String regKey, String fileName, String header);
  91. }