jkffactory.java

来自「主要是对串口驱动的的一些控制源码!!! 在下载javacomm20-win32」· Java 代码 · 共 146 行

JAVA
146
字号
/**
 * $Log: JKFFactory.java,v $
 * Revision 1.3  2003/03/20 14:14:15  mwulff
 * added an error dialog, that is displayed if the initial server connect failed
 *
 * Revision 1.2  2003/03/12 15:04:07  willaxt
 * added javadoc comment
 *
 * Revision 1.1  2003/01/16 13:12:40  mwulff
 * initial version
 *
 * Revision 1.3  2002/12/20 18:52:25  mwulff
 * no message
 *
 * Revision 1.2  2002/12/15 16:55:07  mwulff
 * adjusted to reorganisation of the client logging system
 *
 * Revision 1.1  2002/12/13 20:08:22  mwulff
 * no message
 *
 */
package de.fhm.jkf.comm.cl;

import javax.swing.JOptionPane;

import de.fhm.jkf.resource.cl.JKFClientLogger;

/**
 * <br><br><center><table border="1" width="80%"><hr>
 * <strong><a href="http://jkf.sourceforge.net">The JKF Project</a></strong>
 * <p>
 * Copyright (C) 2002 by Marten Wulff
 * <p>
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * <p>
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * <p>
 * You should have received a copy of the <a href="http://www.gnu.org/copyleft/lesser.html">
 * GNU Lesser General Public License</a> along with this library; if not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA  02111-1307  USA
 * <hr></table></center>
 * 
 * 
 * Factory class to retrieve an <code>ObjectFactry</code>.
 * 
 * @author		marten wulff
 * @version 	1.0
 * 
 * @stereotype singleton
 */
public class JKFFactory {

	private static JKFFactory instance = null;
	private static Object semaphore = new Object();
	private static final String ERROR_MESSAGE =
		"Server is unreachable.\n Please contact your system administrator for further help.\n Shutting down !!";

	/**
	 * Constructor for JKFFactory.
	 */
	private JKFFactory() {
		super();

		// configure the jkf framework
		configure();
	}

	/**
	 * Method for getting a reference to this singleton class.
	 * 
	 * @return JKFFactory 	a reference
	 */
	public static JKFFactory instance() {
		if (instance == null) {
			synchronized (semaphore) {
				if (instance == null) {
					instance = new JKFFactory();
				}
			}
		}

		return instance;
	}

	/**
	 * Method for retrieving an <code>ObjectFactory</code>
	 * 
	 * @return ObjectFactory 	the factory
	 */
	public ObjectFactory getFactory() {
		return new ObjectFactoryImpl();
	}

	/**
	 * Method for configuring the jkf communication component.
	 * The user is registered at the server	and the session info
	 * retrieved as response is stored by the SessionManager. If
	 * no connection to the server could be established, the application
	 * is quited due to a call to <code>System.exit(-1)</code>!
	 */
	private void configure() {
		try {

			if (JKFClientLogger.isDebugEnabled()) {
				JKFClientLogger.debug("Performing user registration ...");
			}

			UserRegistrator registrator = new UserRegistrator();

			// make the inital request			
			registrator.registerUser();

			if (JKFClientLogger.isDebugEnabled()) {
				JKFClientLogger.debug("Inital server connect done ...");
			}

			if (JKFClientLogger.isDebugEnabled()) {
				JKFClientLogger.debug("Starting SessionKeepAliveRunner ...");
			}

			// start the keep alive runner
			Thread t = new Thread(new SessionKeepAliveRunner());
			t.start();

			if (JKFClientLogger.isDebugEnabled()) {
				JKFClientLogger.debug("SessionKeepAliveRunner started ...");
			}

		} catch (Exception ex) {
			JKFClientLogger.fatal(
				"[jkf] Error performing inital server connect...",
				ex);
			JKFClientLogger.fatal("Shutting down ...");
			JOptionPane.showMessageDialog(null, ERROR_MESSAGE);
			System.exit(-1);
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?