package net.ihe.xcpd.resp.action;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;

import net.ihe.gazelle.simulator.common.model.Message;
import net.ihe.xcpd.resp.model.XCPDMessage;

/**
 * @author abderrazek boufahja
 *
 */
@Local
public interface TransactionManagerLocal {
    
    public void setSelectedMessage(Message selectedMessage);
    public Message getSelectedMessage();
	
	public List<net.ihe.gazelle.simulator.common.model.Message> getListOfAllMessage();
	public String getSenderApplication(net.ihe.gazelle.simulator.common.model.Message msg);
	public String getReceiverApplication(net.ihe.gazelle.simulator.common.model.Message msg);
	public String getMessageBegin(String resmgs);
	public String getFormattedMessage();
	
	public String getDate(Date tsp);
	public String getIpAddress(Message msg);
	
	
	public void setSelectedMessageStringValue(String selectedMessageStringValue);
    public String getSelectedMessageStringValue();
    public String getResultValidation();
    public void setResultValidation(String resultValidation);

    public List<XCPDMessage> getListOfAllXCPDMessage();
    public void externalRequestSoapValidation(String request);
    public void externalResponseSoapValidation(String response);
    public String extractRequestFromSoap(String soapRequest);
    public String extractResponseFromSoap(String soapResponse);
    public String getIpAdress(XCPDMessage msg);

    public boolean canViewResponseFromSoap(XCPDMessage currentMessage);
    
    public boolean canValidateMesageHL7V3Received(XCPDMessage msg);
    
    public String getXsdValidationResults();
    public String getCounters();
    public String getDetailedResults();
    
    public void updateOldMessage();
    
    public XCPDMessage getSelectedXCPDMessage();
    public void setSelectedXCPDMessage(XCPDMessage selectedXCPDMessage);
    public void initializeXCPDMessage();
    public String generateLinkForSelectedXCPDMessage();
    public String generateLinkForXCPDMessage(XCPDMessage mss);
    
    public void setFoundsXCPDMessageDataModel(XCPDMessageDataModel foundsXCPDMessageDataModel);
    public XCPDMessageDataModel getFoundsXCPDMessageDataModel();
    public void findXCPDMessageCreated();
    
	public void destroy();
}
