Search in sources :

Example 31 with Avp

use of org.jdiameter.api.Avp in project jain-slee.diameter by RestComm.

the class AvpUtilities method getAvpsAsCustom.

public static Object[] getAvpsAsCustom(int avpCode, AvpSet set, Class clazz) {
    try {
        AvpSet avpSet = set.getAvps(avpCode);
        Object array = Array.newInstance(clazz, avpSet.size());
        int i = 0;
        Constructor c = clazz.getConstructor(int.class, long.class, int.class, int.class, byte[].class);
        AvpRepresentation rep = null;
        for (Avp avp : avpSet) {
            rep = AvpDictionary.INSTANCE.getAvp(avpCode, avp.getVendorId());
            Array.set(array, i++, c.newInstance(rep.getCode(), rep.getVendorId(), rep.getRuleMandatoryAsInt(), rep.getRuleProtectedAsInt(), avp.getRawData()));
        }
        return (Object[]) array;
    } catch (Exception e) {
        if (logger.isDebugEnabled()) {
            logger.debug("Failed to obtain AVP with code " + avpCode + " as type Custom (Class '" + clazz.getName() + "').", e);
        }
        return (Object[]) Array.newInstance(clazz, 0);
    }
}
Also used : Constructor(java.lang.reflect.Constructor) AvpSet(org.jdiameter.api.AvpSet) Avp(org.jdiameter.api.Avp) AvpRepresentation(org.mobicents.diameter.dictionary.AvpRepresentation) URISyntaxException(java.net.URISyntaxException) ParseException(org.jdiameter.client.api.parser.ParseException) InvocationTargetException(java.lang.reflect.InvocationTargetException) AvpDataException(org.jdiameter.api.AvpDataException)

Example 32 with Avp

use of org.jdiameter.api.Avp in project jain-slee.diameter by RestComm.

the class AvpUtilities method getAvpsAsInteger64.

public static long[] getAvpsAsInteger64(int avpCode, AvpSet set) {
    try {
        AvpSet avpSet = set.getAvps(avpCode);
        long[] values = new long[avpSet.size()];
        int i = 0;
        for (Avp avp : avpSet) {
            values[i++] = avp.getInteger64();
        }
        return values;
    } catch (AvpDataException e) {
        if (logger.isDebugEnabled()) {
            logger.debug("Failed to obtain AVP with code " + avpCode + " as type Integer64.", e);
        }
        return new long[0];
    }
}
Also used : AvpDataException(org.jdiameter.api.AvpDataException) AvpSet(org.jdiameter.api.AvpSet) Avp(org.jdiameter.api.Avp)

Example 33 with Avp

use of org.jdiameter.api.Avp in project jain-slee.diameter by RestComm.

the class AvpUtilities method getAvpsAsInteger64.

public static long[] getAvpsAsInteger64(int avpCode, long vendorId, AvpSet set) {
    try {
        AvpSet avpSet = set.getAvps(avpCode, vendorId);
        long[] values = new long[avpSet.size()];
        int i = 0;
        for (Avp avp : avpSet) {
            values[i++] = avp.getInteger64();
        }
        return values;
    } catch (AvpDataException e) {
        if (logger.isDebugEnabled()) {
            logger.debug("Failed to obtain AVP with code " + avpCode + " and Vendor-Id " + vendorId + " as type Integer64.", e);
        }
        return new long[0];
    }
}
Also used : AvpDataException(org.jdiameter.api.AvpDataException) AvpSet(org.jdiameter.api.AvpSet) Avp(org.jdiameter.api.Avp)

Example 34 with Avp

use of org.jdiameter.api.Avp in project jain-slee.diameter by RestComm.

the class AvpUtilities method getAvpsAsTime.

public static Date[] getAvpsAsTime(int avpCode, AvpSet set) {
    try {
        AvpSet avpSet = set.getAvps(avpCode);
        Date[] values = new Date[avpSet.size()];
        int i = 0;
        for (Avp avp : avpSet) {
            values[i++] = avp.getTime();
        }
        return values;
    } catch (AvpDataException e) {
        if (logger.isDebugEnabled()) {
            logger.debug("Failed to obtain AVP with code " + avpCode + " as type Float64.", e);
        }
        return new Date[0];
    }
}
Also used : AvpDataException(org.jdiameter.api.AvpDataException) AvpSet(org.jdiameter.api.AvpSet) Avp(org.jdiameter.api.Avp) Date(java.util.Date)

Example 35 with Avp

use of org.jdiameter.api.Avp in project jain-slee.diameter by RestComm.

the class DiameterMessageImpl method toString.

@Override
public String toString() {
    DiameterHeader header = this.getHeader();
    StringBuilder sb = new StringBuilder();
    sb.append("\r\n");
    sb.append("+----------------------------------- HEADER ----------------------------------+\r\n");
    sb.append("| Version.................").append(header.getVersion()).append("\r\n");
    sb.append("| Message-Length..........").append(header.getMessageLength()).append("\r\n");
    sb.append("| Command-Flags...........").append("R[" + header.isRequest()).append("] P[").append(header.isProxiable()).append("] ").append("E[").append(header.isError()).append("] T[" + header.isPotentiallyRetransmitted()).append("]").append("\r\n");
    sb.append("| Command-Code............").append(this.getHeader().getCommandCode()).append("\r\n");
    sb.append("| Application-Id..........").append(this.getHeader().getApplicationId()).append("\r\n");
    sb.append("| Hop-By-Hop Identifier...").append(this.getHeader().getHopByHopId()).append("\r\n");
    sb.append("| End-To-End Identifier...").append(this.getHeader().getEndToEndId()).append("\r\n");
    sb.append("+------------------------------------ AVPs -----------------------------------+\r\n");
    for (Avp avp : this.getGenericData().getAvps()) {
        sb.append(printAvp(avp, ""));
    }
    sb.append("+-----------------------------------------------------------------------------+\r\n");
    return sb.toString();
}
Also used : DiameterHeader(net.java.slee.resource.diameter.base.events.DiameterHeader) VendorSpecificApplicationIdAvp(net.java.slee.resource.diameter.base.events.avp.VendorSpecificApplicationIdAvp) Avp(org.jdiameter.api.Avp) DiameterAvp(net.java.slee.resource.diameter.base.events.avp.DiameterAvp) ProxyInfoAvp(net.java.slee.resource.diameter.base.events.avp.ProxyInfoAvp) FailedAvp(net.java.slee.resource.diameter.base.events.avp.FailedAvp)

Aggregations

Avp (org.jdiameter.api.Avp)37 AvpSet (org.jdiameter.api.AvpSet)30 AvpDataException (org.jdiameter.api.AvpDataException)28 InvocationTargetException (java.lang.reflect.InvocationTargetException)6 DiameterAvp (net.java.slee.resource.diameter.base.events.avp.DiameterAvp)6 URISyntaxException (java.net.URISyntaxException)5 ParseException (org.jdiameter.client.api.parser.ParseException)5 AvpRepresentation (org.mobicents.diameter.dictionary.AvpRepresentation)5 ArrayList (java.util.ArrayList)4 FailedAvp (net.java.slee.resource.diameter.base.events.avp.FailedAvp)4 ProxyInfoAvp (net.java.slee.resource.diameter.base.events.avp.ProxyInfoAvp)4 VendorSpecificApplicationIdAvp (net.java.slee.resource.diameter.base.events.avp.VendorSpecificApplicationIdAvp)4 Constructor (java.lang.reflect.Constructor)3 Date (java.util.Date)2 AvpRepresentation (org.jdiameter.api.validation.AvpRepresentation)2 NoSuchAvpException (net.java.slee.resource.diameter.base.NoSuchAvpException)1 DiameterHeader (net.java.slee.resource.diameter.base.events.DiameterHeader)1 AvpNotAllowedException (net.java.slee.resource.diameter.base.events.avp.AvpNotAllowedException)1 ExperimentalResultAvp (net.java.slee.resource.diameter.base.events.avp.ExperimentalResultAvp)1 GroupedAvp (net.java.slee.resource.diameter.base.events.avp.GroupedAvp)1