diff options
author | Karsten Thoms | 2020-04-29 20:52:38 +0000 |
---|---|---|
committer | Thomas Watson | 2020-05-11 12:23:05 +0000 |
commit | 9b4b66a03b0a82b0d787209860c1b65250da74af (patch) | |
tree | d769948bcc3f914bd7f5a788c381a1d6963013fb | |
parent | e1dc679fbd93d13e945bbbbc29467ad6781feb21 (diff) | |
download | rt.equinox.framework-9b4b66a03b0a82b0d787209860c1b65250da74af.tar.gz rt.equinox.framework-9b4b66a03b0a82b0d787209860c1b65250da74af.tar.xz rt.equinox.framework-9b4b66a03b0a82b0d787209860c1b65250da74af.zip |
Refactoring: Extract multiple usages of getter in loops to variableI20200513-1800I20200512-1800I20200511-1800
Extracted a variable where getters are accessed multiple times in a
loop.
determineRequiresVisibility: removed obsolete variable declaration. The
variable raised a warning as it hides a field.
Save action: Wildcard imports are replaced by regular imports. Also
minor formatting changes.
Change-Id: Ie5db8218368cf64bfb063ad7aad4bb3e1fc9b9a5
Signed-off-by: Karsten Thoms <karsten.thoms@karakun.com>
-rw-r--r-- | bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java | 64 |
1 files changed, 44 insertions, 20 deletions
diff --git a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java index 5f04b6683..78da2ae4a 100644 --- a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java +++ b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java @@ -14,10 +14,31 @@ *******************************************************************************/ package org.eclipse.osgi.internal.resolver; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import org.eclipse.osgi.framework.util.ArrayMap; import org.eclipse.osgi.internal.container.ComputeNodeOrder; -import org.eclipse.osgi.service.resolver.*; +import org.eclipse.osgi.service.resolver.BaseDescription; +import org.eclipse.osgi.service.resolver.BundleDescription; +import org.eclipse.osgi.service.resolver.BundleSpecification; +import org.eclipse.osgi.service.resolver.ExportPackageDescription; +import org.eclipse.osgi.service.resolver.GenericDescription; +import org.eclipse.osgi.service.resolver.GenericSpecification; +import org.eclipse.osgi.service.resolver.HostSpecification; +import org.eclipse.osgi.service.resolver.ImportPackageSpecification; +import org.eclipse.osgi.service.resolver.NativeCodeSpecification; +import org.eclipse.osgi.service.resolver.State; +import org.eclipse.osgi.service.resolver.StateHelper; +import org.eclipse.osgi.service.resolver.VersionConstraint; import org.osgi.framework.Constants; import org.osgi.framework.hooks.resolver.ResolverHook; import org.osgi.framework.hooks.resolver.ResolverHookFactory; @@ -87,10 +108,11 @@ public final class StateHelperImpl implements StateHelper { for (BundleDescription bundle : bundles) { ExportPackageDescription[] packages = bundle.getExportPackages(); for (ExportPackageDescription description : packages) { - List<ExportPackageDescription> exports = result.get(description.getName()); + String name = description.getName(); + List<ExportPackageDescription> exports = result.get(name); if (exports == null) { exports = new ArrayList<>(); - result.put(description.getName(), exports); + result.put(name, exports); } exports.add(description); } @@ -107,10 +129,11 @@ public final class StateHelperImpl implements StateHelper { } GenericDescription[] generics = bundle.getGenericCapabilities(); for (GenericDescription description : generics) { - List<GenericDescription> genericList = result.get(description.getName()); + String name = description.getName(); + List<GenericDescription> genericList = result.get(name); if (genericList == null) { genericList = new ArrayList<>(1); - result.put(description.getName(), genericList); + result.put(name, genericList); } genericList.add(description); } @@ -129,15 +152,16 @@ public final class StateHelperImpl implements StateHelper { VersionConstraint[] constraints = getUnsatisfiedConstraints(description, hook); for (VersionConstraint constraint : constraints) { Collection<BaseDescription> satisfied = null; + String name = constraint.getName(); if (constraint instanceof BundleSpecification || constraint instanceof HostSpecification) { - BundleDescription[] suppliers = state.getBundles(constraint.getName()); + BundleDescription[] suppliers = state.getBundles(name); satisfied = getPossibleCandidates(constraint, suppliers, constraint instanceof HostSpecification ? BundleRevision.HOST_NAMESPACE : null, hook, false); } else if (constraint instanceof ImportPackageSpecification) { - List<ExportPackageDescription> exports = packages.get(constraint.getName()); + List<ExportPackageDescription> exports = packages.get(name); if (exports != null) satisfied = getPossibleCandidates(constraint, exports.toArray(new BaseDescription[exports.size()]), null, hook, false); } else if (constraint instanceof GenericSpecification) { - List<GenericDescription> genericSet = generics.get(constraint.getName()); + List<GenericDescription> genericSet = generics.get(name); if (genericSet != null) satisfied = getPossibleCandidates(constraint, genericSet.toArray(new BaseDescription[genericSet.size()]), null, hook, false); } @@ -361,7 +385,7 @@ public final class StateHelperImpl implements StateHelper { BundleDescription[] hosts = hostSpecification.getHosts(); for (BundleDescription host : hosts) { if (host != description) { - references.add(new Object[]{description, host}); + references.add(new Object[] {description, host}); } } } @@ -391,7 +415,7 @@ public final class StateHelperImpl implements StateHelper { if (fragment.isResolved()) { ExportPackageDescription[] exports = fragment.getExportPackages(); if (exports.length > 0) { - references.add(new Object[]{description, fragment}); + references.add(new Object[] {description, fragment}); } } } @@ -433,7 +457,6 @@ public final class StateHelperImpl implements StateHelper { getPackages(bundleSupplier, bundle.getSymbolicName(), importList, orderedPkgList, pkgSet, visited, strict, importNames, options); } importList.add(imports.getName(i)); // be sure to add to direct import list - } // now find all the packages that are visible from required bundles RequiresHolder requires = new RequiresHolder(bundle, options); @@ -456,15 +479,16 @@ public final class StateHelperImpl implements StateHelper { ExportPackageDescription[] imports = requiredBundle.getResolvedImports(); Set<String> substituteNames = null; // a temporary set used to scope packages we get from getPackages for (ExportPackageDescription substitutedExport : substitutedExports) { - if (pkgNames == null || pkgNames.contains(substitutedExport.getName())) { + String exportName = substitutedExport.getName(); + if (pkgNames == null || pkgNames.contains(exportName)) { for (ExportPackageDescription resolvedImport : imports) { - if (substitutedExport.getName().equals(resolvedImport.getName()) && !pkgSet.contains(resolvedImport)) { + if (exportName.equals(resolvedImport.getName()) && !pkgSet.contains(resolvedImport)) { if (substituteNames == null) substituteNames = new HashSet<>(1); else substituteNames.clear(); // substituteNames is a set of one package containing the single substitute we are trying to get the source for - substituteNames.add(substitutedExport.getName()); + substituteNames.add(exportName); getPackages(resolvedImport.getSupplier(), symbolicName, importList, orderedPkgList, pkgSet, new HashSet<BundleDescription>(0), strict, substituteNames, options); } } @@ -479,12 +503,13 @@ public final class StateHelperImpl implements StateHelper { ExportPackageDescription[] exports = requiredBundle.getSelectedExports(); HashSet<String> exportNames = new HashSet<>(exports.length); // set is used to improve performance of duplicate check. for (ExportPackageDescription export : exports) { - if ((pkgNames == null || pkgNames.contains(export.getName())) && !isSystemExport(export, options) && isFriend(symbolicName, export, strict) && !importList.contains(export.getName()) && !pkgSet.contains(export)) { - if (!exportNames.contains(export.getName())) { + String exportName = export.getName(); + if ((pkgNames == null || pkgNames.contains(exportName)) && !isSystemExport(export, options) && isFriend(symbolicName, export, strict) && !importList.contains(exportName) && !pkgSet.contains(export)) { + if (!exportNames.contains(exportName)) { // only add the first export orderedPkgList.add(export); pkgSet.add(export); - exportNames.add(export.getName()); + exportNames.add(exportName); } } } @@ -631,14 +656,13 @@ class RequiresHolder { * Fragment bundles are also considered. */ private void determineRequiresVisibility(BundleDescription bundle) { - BundleSpecification[] requiredBundles = bundle.getRequiredBundles(); Set<BundleDescription> resolved = new HashSet<>(); for (BundleDescription resolvedRequire : resolvedRequires) { resolved.add(resolvedRequire); } // Get the visibility of all directly required bundles - for (BundleSpecification required : requiredBundles) { + for (BundleSpecification required : bundle.getRequiredBundles()) { if (required.getSupplier() != null) { resolvedBundlesExported.put((BundleDescription) required.getSupplier(), Boolean.valueOf(required.isExported())); resolved.remove(required.getSupplier()); |