package org.mobicents.slee.resource.diameter.cxdx; import javax.slee.resource.SleeEndpoint; import net.java.slee.resource.diameter.base.events.DiameterMessage; import net.java.slee.resource.diameter.base.events.avp.DiameterIdentity; import net.java.slee.resource.diameter.cxdx.CxDxAVPFactory; import net.java.slee.resource.diameter.cxdx.CxDxMessageFactory; import net.java.slee.resource.diameter.cxdx.CxDxSession; import org.jdiameter.api.Answer; import org.jdiameter.api.EventListener; import org.jdiameter.api.Request; import org.jdiameter.api.Session; import org.jdiameter.api.app.StateChangeListener; import org.jdiameter.common.api.app.cxdx.CxDxSessionState; import org.mobicents.slee.resource.diameter.base.DiameterActivityImpl; import org.mobicents.slee.resource.diameter.base.handlers.BaseSessionCreationListener; import org.mobicents.slee.resource.diameter.cxdx.handlers.CxDxSessionCreationListener; /** * * CxDxSessionImpl.java * * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> * @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a> */ public abstract class CxDxSessionImpl extends DiameterActivityImpl implements CxDxSession ,StateChangeListener{ protected CxDxMessageFactory cxdxMessageFactory = null; protected CxDxAVPFactory cxdxAvpFactory = null; protected DiameterMessage lastRequest = null; protected boolean terminated = false; //FIXME: missed this in last release, this has to be fixed in base....!!!!!!!!!!!!!!!!!! protected CxDxSessionCreationListener cxdxSessionListener; public CxDxSessionImpl(CxDxMessageFactory messageFactory, CxDxAVPFactory avpFactory, Session session, EventListener<Request, Answer> raEventListener, long timeout, DiameterIdentity destinationHost, DiameterIdentity destinationRealm, SleeEndpoint endpoint) { super(null, null, session, raEventListener, timeout, destinationHost, destinationRealm, endpoint); this.cxdxMessageFactory = messageFactory; this.cxdxAvpFactory = avpFactory; //this.cxdxSessionListener = (CxDxSessionCreationListener)raEventListener; } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cxdx.CxDxSession#getCxDxAvpFactory() */ public CxDxAVPFactory getCxDxAvpFactory() { return this.cxdxAvpFactory; } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cxdx.CxDxSession#getCxDxMessageFactory() */ public CxDxMessageFactory getCxDxMessageFactory() { return this.cxdxMessageFactory; } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cxdx.CxDxSession#getSessionId() */ public String getSessionId() { return session.getSessionId(); } public void fetchSessionData(DiameterMessage cxdxRequest) { this.lastRequest = cxdxRequest; } public Object getSessionListener() { return cxdxSessionListener; } public void setSessionListener(Object ra) { this.cxdxSessionListener = (CxDxSessionCreationListener) ra; } }