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);
}
}
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];
}
}
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];
}
}
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];
}
}
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();
}
Aggregations