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);

Reply via email to