package org.mobicents.javax.media.mscontrol; import jain.protocol.ip.mgcp.message.parms.ConnectionIdentifier; import jain.protocol.ip.mgcp.message.parms.EventName; import jain.protocol.ip.mgcp.pkg.MgcpEvent; import jain.protocol.ip.mgcp.pkg.PackageName; import javax.media.mscontrol.MediaEvent; public abstract class EventDetectorFactory { protected String pkgName = null; protected String eventName = null; protected boolean isOnEndpoint = false; public EventDetectorFactory(String pkgName, String eventName, boolean isOnEndpoint) { this.pkgName = pkgName; this.eventName = eventName; this.isOnEndpoint = isOnEndpoint; } public abstract MediaEvent generateMediaEvent(); public EventName generateMgcpEvent(String params, ConnectionIdentifier connId) { if (this.isOnEndpoint) { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params)); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName)); } } else { if (params != null) { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName).withParm(params), connId); } else { return new EventName(PackageName.factory(pkgName), MgcpEvent.factory(eventName), connId); } } } public String getPkgName() { return pkgName; } public String getEventName() { return eventName; } public boolean isOnEndpoint() { return isOnEndpoint; } }