package net.java.slee.resource.diameter.cxdx; import net.java.slee.resource.diameter.cxdx.events.avp.AssociatedIdentities; import net.java.slee.resource.diameter.cxdx.events.avp.AssociatedRegisteredIdentities; import net.java.slee.resource.diameter.cxdx.events.avp.ChargingInformation; import net.java.slee.resource.diameter.cxdx.events.avp.DeregistrationReason; import net.java.slee.resource.diameter.cxdx.events.avp.ReasonCode; import net.java.slee.resource.diameter.cxdx.events.avp.RestorationInfo; import net.java.slee.resource.diameter.cxdx.events.avp.SCSCFRestorationInfo; import net.java.slee.resource.diameter.cxdx.events.avp.SIPAuthDataItem; import net.java.slee.resource.diameter.cxdx.events.avp.SIPDigestAuthenticate; import net.java.slee.resource.diameter.cxdx.events.avp.SubscriptionInfo; /** * Factory to support the creation of Grouped AVP instances for Cx/Dx. * * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> * @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a> */ public interface CxDxAVPFactory { /** * Create an empty AssociatedIdentities instance. * * @return a new and empty AssociatedIdentities instance */ AssociatedIdentities createAssociatedIdentities(); /** * Create an empty AssociatedRegisteredIdentities instance. * * @return a new and empty AssociatedRegisteredIdentities instance */ AssociatedRegisteredIdentities createAssociatedRegisteredIdentities(); /** * Create an empty ChargingInformation instance. * * @return a new and empty ChargingInformation instance */ ChargingInformation createChargingInformation(); /** * Create an empty DeregistrationReason instance. * * @return a new and empty DeregistrationReason instance */ DeregistrationReason createDeregistrationReason(); /** * Create an DeregistrationReason instance with mandatory AVPs filled. * * @param reasonCode the Reason-Code AVP value * @return a new DeregistrationReason instance */ DeregistrationReason createDeregistrationReason(ReasonCode reasonCode); /** * Create an empty RestorationInfo instance. * * @return a new and empty RestorationInfo instance */ RestorationInfo createRestorationInfo(); /** * Create an RestorationInfo instance with mandatory AVPs filled. * * @param path the Path AVP value * @param contact the Contact AVP value * @return a new RestorationInfo instance */ RestorationInfo createRestorationInfo(String path, String contact); /** * Create an empty SCSCFRestorationInfo instance. * * @return a new and empty SCSCFRestorationInfo instance */ SCSCFRestorationInfo createSCSCFRestorationInfo(); /** * Create an SCSCFRestorationInfo instance with mandatory AVPs filled. * * @param userName the User-Name AVP value * @param restorationInfos the Restoration-Info AVP values * @return a new SCSCFRestorationInfo instance */ SCSCFRestorationInfo createSCSCFRestorationInfo(String userName, RestorationInfo[] restorationInfos); /** * Create an empty SIPAuthDataItem instance. * * @return a new and empty SIPAuthDataItem instance */ SIPAuthDataItem createSIPAuthDataItem(); /** * Create an empty SIPDigestAuthenticate instance. * * @return a new and empty SIPDigestAuthenticate instance */ SIPDigestAuthenticate createSIPDigestAuthenticate(); /** * Create an SIPDigestAuthenticate instance with mandatory AVPs filled. * * @param digestRealm the Digest-Realm AVP value * @param digestQoP the Digest-QoP AVP value * @param digestHA1 the Digest-HA1 AVP value * @return a new SIPDigestAuthenticate instance */ SIPDigestAuthenticate createSIPDigestAuthenticate(String digestRealm, String digestQoP, String digestHA1); /** * Create an empty SubscriptionInfo instance. * * @return a new and empty SubscriptionInfo instance */ SubscriptionInfo createSubscriptionInfo(); /** * Create an SubscriptionInfo instance with mandatory AVPs filled. * * @param callIDSIPHeader the Call-ID-SIP-Header AVP value * @param fromSIPHeader the From-SIP-Header AVP value * @param toSIPHeader the To-SIP-Header AVP value * @param recordRoute the Record-Route AVP value * @param contact the Contact AVP value * @return a new SubscriptionInfo instance */ SubscriptionInfo createSubscriptionInfo(String callIDSIPHeader, String fromSIPHeader, String toSIPHeader, String recordRoute, String contact); }