CaptchaServiceSingleton.java

package sk.iway.iwcm.system.captcha;

import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Logger;

/**
 *  CaptchaServiceSingleton.java
 *
 *@Title        webjet4
 *@Company      Interway s.r.o. (www.interway.sk)
 *@Copyright    Interway s.r.o. (c) 2001-2010
 *@author       $Author: jeeff $
 *@version      $Revision: 1.1 $
 *@created      Date: 2.2.2010 10:58:11
 *@modified     $Date: 2010/02/09 08:56:19 $
 */
public class CaptchaServiceSingleton
{
	private static WebJETImageCaptchaService instance;
	private static String lastUsedMode = null;
	private static String lastBackgroundMode = null;
	private static int lastWaveSize = -9999;

   public static WebJETImageCaptchaService getInstance()
   {
	   if (instance==null || isConfigChange())
	   {
	   	Logger.debug(CaptchaServiceSingleton.class, "Creating Captcha instance");
		   instance = new WebJETImageCaptchaService();
		   
	   }
	   
	   return instance;
   }
   
   private static boolean isConfigChange()
   {
   	boolean isChange = false;
   	
   	if (lastUsedMode == null || lastUsedMode.equals(Constants.getString("captchaMode"))==false) isChange = true;
   	if (lastBackgroundMode == null || lastBackgroundMode.equals(Constants.getString("captchaBackgroundMode"))==false) isChange = true;
   	if (lastWaveSize == -9999 || lastWaveSize != Constants.getInt("captchaWaveSize")) isChange = true;
   	
   	if (isChange)
   	{
   		lastUsedMode = Constants.getString("captchaMode");
   		lastBackgroundMode = Constants.getString("captchaBackgroundMode");
		   lastWaveSize = Constants.getInt("captchaWaveSize");
   	}
   	
   	return isChange;
   }
   
   public static void flush()
   {
	   instance = null;
   }
}