Refactor duplicated code (FELIX-2035)

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@949048 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java b/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
index f308265..32a2084 100644
--- a/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
+++ b/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
@@ -282,17 +282,7 @@
 
                 // Remove host's existing exported packages from index.
                 List<Capability> caps = host.getCapabilities();
-                for (int i = 0; (caps != null) && (i < caps.size()); i++)
-                {
-                    if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-                    {
-                        m_modCapSet.removeCapability(caps.get(i));
-                    }
-                    else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-                    {
-                        m_pkgCapSet.removeCapability(caps.get(i));
-                    }
-                }
+                removeCapabilities(caps);
 
                 // Attach the new fragments to the host.
                 fragments = (newFragments.isEmpty()) ? null : newFragments;
@@ -316,17 +306,7 @@
 
                 // Reindex the host's exported packages.
                 caps = host.getCapabilities();
-                for (int i = 0; (caps != null) && (i < caps.size()); i++)
-                {
-                    if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-                    {
-                        m_modCapSet.addCapability(caps.get(i));
-                    }
-                    else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-                    {
-                        m_pkgCapSet.addCapability(caps.get(i));
-                    }
-                }
+                addCapabilities(caps);
             }
         }
     }
@@ -361,17 +341,7 @@
 
                     // Remove host's existing exported packages from index.
                     List<Capability> caps = host.getCapabilities();
-                    for (int i = 0; (caps != null) && (i < caps.size()); i++)
-                    {
-                        if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-                        {
-                            m_modCapSet.removeCapability(caps.get(i));
-                        }
-                        else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-                        {
-                            m_pkgCapSet.removeCapability(caps.get(i));
-                        }
-                    }
+                    removeCapabilities(caps);
 
                     // Attach the fragments to the host.
                     try
@@ -394,17 +364,43 @@
 
                     // Reindex the host's exported packages.
                     caps = host.getCapabilities();
-                    for (int i = 0; (caps != null) && (i < caps.size()); i++)
-                    {
-                        if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-                        {
-                            m_modCapSet.addCapability(caps.get(i));
-                        }
-                        else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-                        {
-                            m_pkgCapSet.addCapability(caps.get(i));
-                        }
-                    }
+                    addCapabilities(caps);
+                }
+            }
+        }
+    }
+
+    private void addCapabilities(List<Capability> caps)
+    {
+        if (caps != null)
+        {
+            for (Capability cap : caps)
+            {
+                if (cap.getNamespace().equals(Capability.MODULE_NAMESPACE))
+                {
+                    m_modCapSet.addCapability(cap);
+                }
+                else if (cap.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
+                {
+                    m_pkgCapSet.addCapability(cap);
+                }
+            }
+        }
+    }
+
+    private void removeCapabilities(List<Capability> caps)
+    {
+        if (caps != null)
+        {
+            for (Capability cap : caps)
+            {
+                if (cap.getNamespace().equals(Capability.MODULE_NAMESPACE))
+                {
+                    m_modCapSet.removeCapability(cap);
+                }
+                else if (cap.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
+                {
+                    m_pkgCapSet.removeCapability(cap);
                 }
             }
         }
@@ -515,17 +511,7 @@
         caps = host.getCapabilities();
 
         // Add exports to unresolved package map.
-        for (int i = 0; (caps != null) && (i < caps.size()); i++)
-        {
-            if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-            {
-                m_modCapSet.addCapability(caps.get(i));
-            }
-            else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-            {
-                m_pkgCapSet.addCapability(caps.get(i));
-            }
-        }
+        addCapabilities(caps);
     }
 
     private void removeHost(Module host)
@@ -542,17 +528,7 @@
 
         // Remove exports from package maps.
         caps = host.getCapabilities();
-        for (int i = 0; (caps != null) && (i < caps.size()); i++)
-        {
-            if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-            {
-                m_modCapSet.removeCapability(caps.get(i));
-            }
-            else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-            {
-                m_pkgCapSet.removeCapability(caps.get(i));
-            }
-        }
+        removeCapabilities(caps);
 
         // Set fragments to null, which will remove the module from all
         // of its dependent fragment modules.
@@ -699,17 +675,7 @@
         // The system bundle module should always be resolved, so we only need
         // to update the resolved capability map.
         List<Capability> caps = module.getCapabilities();
-        for (int i = 0; (caps != null) && (i < caps.size()); i++)
-        {
-            if (caps.get(i).getNamespace().equals(Capability.MODULE_NAMESPACE))
-            {
-                m_modCapSet.addCapability(caps.get(i));
-            }
-            else if (caps.get(i).getNamespace().equals(Capability.PACKAGE_NAMESPACE))
-            {
-                m_pkgCapSet.addCapability(caps.get(i));
-            }
-        }
+        addCapabilities(caps);
     }
 
     public synchronized void moduleResolved(Module module)