/**
 * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
 * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
 * joint initiative of the Federal Chancellery Austria and Graz University of
 * Technology.
 *
 * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
 * the European Commission - subsequent versions of the EUPL (the "Licence");
 * You may not use this work except in compliance with the Licence.
 * You may obtain a copy of the Licence at:
 * http://www.osor.eu/eupl/
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the Licence for the specific language governing permissions and
 * limitations under the Licence.
 *
 * This product combines work with different licenses. See the "NOTICE" text
 * file for details on the various modules and licenses.
 * The "NOTICE" text file is part of the distribution. Any derivative works
 * that you distribute must include a readable copy of the "NOTICE" text file.
 */
package at.knowcenter.wag.egov.egiz.tools;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import at.knowcenter.wag.egov.egiz.sig.connectors.moa.EnvelopingBase64MOAConnector;

/**
 * Contains useful helper methods for debugging.
 * 
 * @author wprinz
 */
public final class DebugHelper
{
  /**
   * The log.
   */
  private static Log log = LogFactory.getLog(DebugHelper.class);

  /**
   * Tells, if Strings should be debugged to a file.
   * 
   * <p>
   * If set to false, the corresponding methods will simply do nothing.
   * </p>
   */
  public static boolean debug_to_file = true;

  /**
   * The directory under which the debug files are to be stored.
   */
  public static File debug_dir = new File("C:\\wprinz\\Filer\\egiz2"); //$NON-NLS-1$

  /**
   * Writes the given String to a file with the given file name in UTF-8
   * encoding.
   * 
   * @param str
   *          The String to be written.
   * @param file_name
   *          The file the String will be written to.
   */
  public static void debugStringToFile(String str, String file_name)
  {
    if (!debug_to_file)
    {
      return;
    }

    try
    {
      File file = new File(debug_dir, file_name);
      FileOutputStream fos = new FileOutputStream(file);
      OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); //$NON-NLS-1$
      osw.write(str);
      osw.close();
    }
    catch (Exception e)
    {
      log.error(e.getMessage(), e);
    }
  }
}