/*
 * LogMessageIdentifier.java
 * Copyright (C) 2008 Cyber Beans Corporation. All rights reserved.
 */
package jp.co.cybec.cb3.util.logging;

/**
 * ログメッセージ識別子を保持するためのクラスです。<br>
 * 下記の表の内容を保持します。
 * <table border=1>
 * <tr>
 *   <th>項目</th>
 *   <th>説明</th>
 * </tr>
 * <tr>
 *   <td>ジョブプロセスID</td>
 *   <td>バッチジョブの実行毎に一意になるID</td>
 * </tr>
 * <tr>
 *   <td>ジョブID</td>
 *   <td>Advancedパッケージのフロー制御設定ファイルのジョブID</td>
 * </tr>
 * <tr>
 *   <td>タスクID</td>
 *   <td>Advancedパッケージのフロー制御設定ファイルのタスクID</td>
 * </tr>
 * <tr>
 *   <td>サービスID</td>
 *   <td>サービス定義ファイルのサービスID</td>
 * </tr>
 * </table>
 * ジョブプロセスIDとジョブIDはバッチジョブの実行時に設定されます。<br>
 * タスクIDとサービスIDはスレッドの開始時点で設定され、ThreadLocalで保持します。<br>
 * CoreパッケージではジョブプロセスIDとサービスIDのみ使用されます。
 * @author Daisuke Suga
 */
public class LogMessageIdentifier {

	/**
	 * ジョブプロセスID
	 */
	private static String jobprocessId;

	/**
	 * ジョブID
	 */
	private static String jobId;

	/**
	 * タスクID
	 */
	private static ThreadLocal<String> taskidThreadLocal = new ThreadLocal<String>();

	/**
	 * サービスID
	 */
	private static ThreadLocal<String> serviceidThreadLocal = new ThreadLocal<String>();

	/**
	 * ジョブプロセスIDを取得します。
	 *
	 * @return ジョブプロセスID
	 */
	public static String getJobProcessId() {
		return jobprocessId;
	}

	/**
	 * ジョブプロセスIDを設定します。
	 *
	 * @param jobprocessid ジョブプロセスID
	 */
	public static void setJobProcessId(String jobprocessid) {
		jobprocessId = jobprocessid;
	}

	/**
	 * ジョブIDを取得します。
	 *
	 * @return ジョブID
	 */
	public static String getJobId() {
		return jobId;
	}

	/**
	 * ジョブIDを設定します。
	 *
	 * @param jobid ジョブID
	 */
	public static void setJobId(String jobid) {
		jobId = jobid;
	}

	/**
	 * タスクIDを取得します。
	 *
	 * @return タスクID
	 */
	public static String getTaskId() {
		return taskidThreadLocal.get();
	}

	/**
	 * タスクIDを設定します。
	 *
	 * @param taskid タスクID
	 */
	public static void setTaskId(String taskid) {
		taskidThreadLocal.set(taskid);
	}

	/**
	 * サービスIDを取得します。
	 *
	 * @return サービスID
	 */
	public static String getServiceId() {
		return serviceidThreadLocal.get();
	}

	/**
	 * サービスIDを設定します。
	 *
	 * @param serviceid サービスID
	 */
	public static void setServiceId(String serviceid) {
		serviceidThreadLocal.set(serviceid);
	}

}
