package org.restcomm.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;
public abstract class EventGeneratorFactory {
protected String pkgName = null;
protected String eventName = null;
protected boolean isOnEndpoint = false;
public EventGeneratorFactory(String pkgName, String eventName, boolean isOnEndpoint) {
this.pkgName = pkgName;
this.eventName = eventName;
this.isOnEndpoint = isOnEndpoint;
}
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;
}
@Override
public String toString() {
return "EventGeneratorFactory[pkg=" + pkgName + "][event=" + eventName + "][endpoint=" + isOnEndpoint + "]";
}
}