package cdac.medinfo.sdk.hl7282.hl7net.commons;

import java.util.Date;
import java.util.Locale;

import cdac.medinfo.sdk.hl7282.utils.HL7Config;
import cdac.medinfo.sdk.hl7282.utils.HL7Exception;
import cdac.medinfo.sdk.hl7282.utils.ResourceBundleWrapper;

/**
 * This InvalidTransactionException will raised in case of any invalid transaction is performed. 
 */
public class InvalidTransactionException extends HL7Exception 
{
	private static final long serialVersionUID = 1L;
	private String strMsg = ResourceBundleWrapper.getValue("exceptions","Trans_InvalidTransaction",new Locale(HL7Config.createInstance().getLocale()));

	/**
	 * Constructs a new Batch Exception with the specified detail message and cause
	 * @param strMessage the detail message 
	 * @param cause the cause 
	 */
	public InvalidTransactionException(String strMessage, Throwable cause)
	{
		super(strMessage,cause);
		strMsg += strMessage;
	}

	/**
	 * Constructs a new Batch Exception with the specified detail message. 
	 * @param strMessage the detail message.
	 */
	public InvalidTransactionException(String strMessage)
	{
		super(strMessage);
		strMsg += strMessage;
	}

	/**
	 * Constructs a new Batch Exception with the specified cause.
	 * This constructor is useful for runtime exceptions that are little more than wrappers for other throwables. 
	 * @param cause the cause (A null value is permitted, and indicates that the cause is nonexistent or unknown.)
	 */
	public InvalidTransactionException(Throwable cause)
	{
		super(cause);
	}

	/**
	 * Returns the detail message string of this throwable. 
	 * @return String - the detail message string of this Throwable instance (which may be null).
	 */
	public String getMessage()
	{
		return new Date().toString()+":"+strMsg;
	}
}
