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)