Revision: 19944
Author: brainslog
Date: Wed Aug 31 03:04:29 2011
Log: Fixing "IPFilterRule type handling methods missing in Diameter
RAs"
Fixes Issue 2824
http://code.google.com/p/mobicents/source/detail?r=19944
Modified:
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/net/java/slee/resource/diameter/base/events/avp/AvpUtilities.java
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/org/mobicents/slee/resource/diameter/base/events/DiameterMessageImpl.java
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/org/mobicents/slee/resource/diameter/base/events/avp/GroupedAvpImpl.java
=======================================
---
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/net/java/slee/resource/diameter/base/events/avp/AvpUtilities.java
Tue Jul 26 10:20:26 2011
+++
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/net/java/slee/resource/diameter/base/events/avp/AvpUtilities.java
Wed Aug 31 03:04:29 2011
@@ -1922,6 +1922,58 @@
return (Object[]) array;
}
+
+ public static IPFilterRule getAvpAsIPFilterRule(int avpCode, AvpSet set)
{
+ try {
+ String value = getAvpAsOctetString(avpCode, set);
+
+ return value != null ? new IPFilterRule(value) : null;
+ }
+ catch (Exception e) {
+ if(logger.isDebugEnabled()) {
+ logger.debug("Failed to obtain AVP with code " + avpCode + " as
type IPFilterRule.", e);
+ }
+ return null;
+ }
+ }
+
+ public static IPFilterRule[] getAvpsAsIPFilterRule(int avpCode, AvpSet
set) {
+ List<IPFilterRule> values = new ArrayList<IPFilterRule>();
+
+ for(String value : getAvpsAsOctetString(avpCode, set)) {
+ if(value != null) {
+ values.add(new IPFilterRule(value));
+ }
+ }
+
+ return values.toArray(new IPFilterRule[0]);
+ }
+
+ public static IPFilterRule getAvpAsIPFilterRule(int avpCode, long
vendorId, AvpSet set) {
+ try {
+ String value = getAvpAsOctetString(avpCode, vendorId, set);
+
+ return value != null ? new IPFilterRule(value) : null;
+ }
+ catch (Exception e) {
+ if(logger.isDebugEnabled()) {
+ logger.debug("Failed to obtain AVP with code " + avpCode + " and
Vendor-Id " + vendorId + " as type IPFilterRule.", e);
+ }
+ return null;
+ }
+ }
+
+ public static IPFilterRule[] getAvpsAsIPFilterRule(int avpCode, long
vendorId, AvpSet set) {
+ List<IPFilterRule> values = new ArrayList<IPFilterRule>();
+
+ for(String value : getAvpsAsOctetString(avpCode, set)) {
+ if(value != null) {
+ values.add(new IPFilterRule(value));
+ }
+ }
+
+ return values.toArray(new IPFilterRule[0]);
+ }
/**
* Method for removing AVP with given code.
=======================================
---
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/org/mobicents/slee/resource/diameter/base/events/DiameterMessageImpl.java
Fri Aug 19 07:01:29 2011
+++
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/org/mobicents/slee/resource/diameter/base/events/DiameterMessageImpl.java
Wed Aug 31 03:04:29 2011
@@ -37,6 +37,7 @@
import net.java.slee.resource.diameter.base.events.avp.DiameterIdentity;
import net.java.slee.resource.diameter.base.events.avp.DiameterURI;
import net.java.slee.resource.diameter.base.events.avp.FailedAvp;
+import net.java.slee.resource.diameter.base.events.avp.IPFilterRule;
import net.java.slee.resource.diameter.base.events.avp.ProxyInfoAvp;
import
net.java.slee.resource.diameter.base.events.avp.RedirectHostUsageType;
import
net.java.slee.resource.diameter.base.events.avp.VendorSpecificApplicationIdAvp;
@@ -836,6 +837,22 @@
protected Object[] getAvpsAsEnumerated(int code, long vendorId, Class
clazz) {
return AvpUtilities.getAvpsAsEnumerated(code, vendorId,
message.getAvps(), clazz);
}
+
+ protected IPFilterRule getAvpAsIPFilterRule(int code) {
+ return AvpUtilities.getAvpAsIPFilterRule(code, message.getAvps());
+ }
+
+ protected IPFilterRule getAvpAsIPFilterRule(int code, long vendorId) {
+ return AvpUtilities.getAvpAsIPFilterRule(code, vendorId,
message.getAvps());
+ }
+
+ protected IPFilterRule[] getAvpsAsIPFilterRule(int code) {
+ return AvpUtilities.getAvpsAsIPFilterRule(code, message.getAvps());
+ }
+
+ protected IPFilterRule[] getAvpsAsIPFilterRule(int code, long vendorId) {
+ return AvpUtilities.getAvpsAsIPFilterRule(code, vendorId,
message.getAvps());
+ }
protected void addAvp(String avpName, Object avp) {
AvpUtilities.addAvp(message, avpName, message.getAvps(), avp);
=======================================
---
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/org/mobicents/slee/resource/diameter/base/events/avp/GroupedAvpImpl.java
Thu Jun 30 01:24:48 2011
+++
/trunk/servers/jain-slee/resources/diameter-base/common/events/src/main/java/org/mobicents/slee/resource/diameter/base/events/avp/GroupedAvpImpl.java
Wed Aug 31 03:04:29 2011
@@ -37,6 +37,7 @@
import net.java.slee.resource.diameter.base.events.avp.DiameterIdentity;
import net.java.slee.resource.diameter.base.events.avp.DiameterURI;
import net.java.slee.resource.diameter.base.events.avp.GroupedAvp;
+import net.java.slee.resource.diameter.base.events.avp.IPFilterRule;
import org.apache.log4j.Logger;
import org.jdiameter.api.Avp;
@@ -479,6 +480,22 @@
protected Object[] getAvpsAsEnumerated(int code, long vendorId, Class
clazz) {
return AvpUtilities.getAvpsAsEnumerated(code, vendorId, avpSet, clazz);
}
+
+ protected IPFilterRule getAvpAsIPFilterRule(int code) {
+ return AvpUtilities.getAvpAsIPFilterRule(code, avpSet);
+ }
+
+ protected IPFilterRule getAvpAsIPFilterRule(int code, long vendorId) {
+ return AvpUtilities.getAvpAsIPFilterRule(code, vendorId, avpSet);
+ }
+
+ protected IPFilterRule[] getAvpsAsIPFilterRule(int code) {
+ return AvpUtilities.getAvpsAsIPFilterRule(code, avpSet);
+ }
+
+ protected IPFilterRule[] getAvpsAsIPFilterRule(int code, long vendorId) {
+ return AvpUtilities.getAvpsAsIPFilterRule(code, vendorId, avpSet);
+ }
protected void addAvp(String avpName, Object avp) {
AvpUtilities.addAvp(null, avpName, avpSet, avp);