package com.finance.iso.iso8583.mediator;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
public class XLinkSessionWrapper implements Observer {
private static final Log log = LogFactory.getLog(XLinkSessionWrapper.class);
private XLinkChannel channel;
private String sessionId;
private boolean sessionClosed = false;
private boolean signOn = false;
public XLinkChannel getChannel() {
return channel;
}
public void setChannel(XLinkChannel channel) {
this.channel = channel;
}
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public void closeConnection() throws IOException {
channel.disconnect();
}
public boolean isSessionClosed() {
return sessionClosed;
}
public void setSessionClosed(boolean sessionClosed) {
this.sessionClosed = sessionClosed;
}
public boolean isSignOn() {
return signOn;
}
public void setSignOn(boolean signOn) {
this.signOn = signOn;
}
public String getNextRequestId(){
return channel.getNextRequestId();
}
public void send(ISOMsg isoMsg) throws IOException, ISOException, XLinkISO8583Exception {
if (channel != null) {
if (channel.isConnected()) {
channel.send(isoMsg);
} else {
log.error("Error while sending message to destination. Channel not connected.");
throw new XLinkISO8583Exception("Error while sending message to destination. Channel not connected.");
// TODO
/*
* Exception Flows: TCP connection from the previous session is
* lost A valid Master Key not being assigned by XLink for the
* ESB connection Key Exchange process between the ESB and XLink
* failing Inability to establish a valid TCP connection between
* the ESB and XLink.
*/
}
}
}
@Override
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
}
}