@Override public List<BundleRequirement> getDeclaredRequirements(String namespace) { return InternalUtils.asListBundleRequirement(getModuleRequirements(namespace)); }
@Override public List<BundleRequirement> getDeclaredRequirements(String namespace) { return InternalUtils.asListBundleRequirement(getModuleRequirements(namespace)); }
@Override public List<BundleRequirement> getDeclaredRequirements(String namespace) { return InternalUtils.asListBundleRequirement(getModuleRequirements(namespace)); }
@Override public List<BundleRequirement> getDeclaredRequirements(String namespace) { return InternalUtils.asListBundleRequirement(getModuleRequirements(namespace)); }
@Override public List<BundleRequirement> getDeclaredRequirements(String namespace) { return InternalUtils.asListBundleRequirement(getModuleRequirements(namespace)); }
@Override public List<BundleRequirement> getDeclaredRequirements(String namespace) { return InternalUtils.asListBundleRequirement(getModuleRequirements(namespace)); }
@Override public Collection<Resource> getOndemandResources(Resource host) { String hostBSN = ((ModuleRevision) host).getSymbolicName(); if (hostBSN == null) { return Collections.emptyList(); } List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); } ModuleCapability hostCap = hostCaps.get(0); String matchFilter = "(" + EquinoxFragmentNamespace.FRAGMENT_NAMESPACE + "=" + hostBSN + ")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ Requirement fragmentRequirement = ModuleContainer.createRequirement(EquinoxFragmentNamespace.FRAGMENT_NAMESPACE, Collections.<String, String> singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, matchFilter), Collections.<String, Object> emptyMap()); List<ModuleCapability> candidates = moduleDatabase.findCapabilities(fragmentRequirement); // filter out disabled fragments and singletons filterDisabled(candidates.listIterator()); Collection<Resource> ondemandFragments = new ArrayList<Resource>(candidates.size()); for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability candidate = iCandidates.next(); ModuleRequirement hostReq = candidate.getRevision().getModuleRequirements(HostNamespace.HOST_NAMESPACE).get(0); if (hostReq.matches(hostCap)) { ondemandFragments.add(candidate.getResource()); } } return ondemandFragments; }
@Override public Collection<Resource> getOndemandResources(Resource host) { String hostBSN = ((ModuleRevision) host).getSymbolicName(); if (hostBSN == null) { return Collections.emptyList(); } List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); } ModuleCapability hostCap = hostCaps.get(0); String matchFilter = "(" + EquinoxFragmentNamespace.FRAGMENT_NAMESPACE + "=" + hostBSN + ")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ Requirement fragmentRequirement = ModuleContainer.createRequirement(EquinoxFragmentNamespace.FRAGMENT_NAMESPACE, Collections.<String, String> singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, matchFilter), Collections.<String, Object> emptyMap()); List<ModuleCapability> candidates = moduleDatabase.findCapabilities(fragmentRequirement); // filter out disabled fragments and singletons filterDisabled(candidates.listIterator()); Collection<Resource> ondemandFragments = new ArrayList<Resource>(candidates.size()); for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability candidate = iCandidates.next(); ModuleRequirement hostReq = candidate.getRevision().getModuleRequirements(HostNamespace.HOST_NAMESPACE).get(0); if (hostReq.matches(hostCap)) { ondemandFragments.add(candidate.getResource()); } } return ondemandFragments; }
@Override public Collection<Resource> getOndemandResources(Resource host) { List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); } Collection<Resource> ondemandFragments = new ArrayList<Resource>(); for (String hostBSN : getHostBSNs(hostCaps)) { String matchFilter = "(" + EquinoxFragmentNamespace.FRAGMENT_NAMESPACE + "=" + hostBSN + ")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ Requirement fragmentRequirement = ModuleContainer.createRequirement(EquinoxFragmentNamespace.FRAGMENT_NAMESPACE, Collections.<String, String> singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, matchFilter), Collections.<String, Object> emptyMap()); List<ModuleCapability> candidates = moduleDatabase.findCapabilities(fragmentRequirement); // filter out disabled fragments and singletons filterDisabled(candidates.listIterator()); for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability candidate = iCandidates.next(); ModuleRequirement hostReq = candidate.getRevision().getModuleRequirements(HostNamespace.HOST_NAMESPACE).get(0); for (ModuleCapability hostCap : hostCaps) { if (hostReq.matches(hostCap)) { ondemandFragments.add(candidate.getResource()); break; } } } } return ondemandFragments; }
@Override public Collection<Resource> findRelatedResources(Resource host) { // for the container we only care about fragments for related resources List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); } Collection<Resource> relatedFragments = new ArrayList<>(); for (String hostBSN : getHostBSNs(hostCaps)) { String matchFilter = "(" + EquinoxFragmentNamespace.FRAGMENT_NAMESPACE + "=" + hostBSN + ")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ Requirement fragmentRequirement = ModuleContainer.createRequirement(EquinoxFragmentNamespace.FRAGMENT_NAMESPACE, Collections.<String, String> singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, matchFilter), Collections.<String, Object> emptyMap()); List<ModuleCapability> candidates = moduleDatabase.findCapabilities(fragmentRequirement); // filter out disabled fragments and singletons filterDisabled(candidates.listIterator()); for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability candidate = iCandidates.next(); ModuleRequirement hostReq = candidate.getRevision().getModuleRequirements(HostNamespace.HOST_NAMESPACE).get(0); for (ModuleCapability hostCap : hostCaps) { if (hostReq.matches(hostCap)) { relatedFragments.add(candidate.getResource()); break; } } } } return relatedFragments; }
@Override public Collection<Resource> getOndemandResources(Resource host) { List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); } Collection<Resource> ondemandFragments = new ArrayList<Resource>(); for (String hostBSN : getHostBSNs(hostCaps)) { String matchFilter = "(" + EquinoxFragmentNamespace.FRAGMENT_NAMESPACE + "=" + hostBSN + ")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ Requirement fragmentRequirement = ModuleContainer.createRequirement(EquinoxFragmentNamespace.FRAGMENT_NAMESPACE, Collections.<String, String> singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, matchFilter), Collections.<String, Object> emptyMap()); List<ModuleCapability> candidates = moduleDatabase.findCapabilities(fragmentRequirement); // filter out disabled fragments and singletons filterDisabled(candidates.listIterator()); for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability candidate = iCandidates.next(); ModuleRequirement hostReq = candidate.getRevision().getModuleRequirements(HostNamespace.HOST_NAMESPACE).get(0); for (ModuleCapability hostCap : hostCaps) { if (hostReq.matches(hostCap)) { ondemandFragments.add(candidate.getResource()); break; } } } } return ondemandFragments; }
@Override public Collection<Resource> findRelatedResources(Resource host) { // for the container we only care about fragments for related resources List<ModuleCapability> hostCaps = ((ModuleRevision) host).getModuleCapabilities(HostNamespace.HOST_NAMESPACE); if (hostCaps.isEmpty()) { return Collections.emptyList(); } Collection<Resource> relatedFragments = new ArrayList<>(); for (String hostBSN : getHostBSNs(hostCaps)) { String matchFilter = "(" + EquinoxFragmentNamespace.FRAGMENT_NAMESPACE + "=" + hostBSN + ")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ Requirement fragmentRequirement = ModuleContainer.createRequirement(EquinoxFragmentNamespace.FRAGMENT_NAMESPACE, Collections.<String, String> singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, matchFilter), Collections.<String, Object> emptyMap()); List<ModuleCapability> candidates = moduleDatabase.findCapabilities(fragmentRequirement); // filter out disabled fragments and singletons filterDisabled(candidates.listIterator()); for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability candidate = iCandidates.next(); ModuleRequirement hostReq = candidate.getRevision().getModuleRequirements(HostNamespace.HOST_NAMESPACE).get(0); for (ModuleCapability hostCap : hostCaps) { if (hostReq.matches(hostCap)) { relatedFragments.add(candidate.getResource()); break; } } } } return relatedFragments; }
private ModuleWiring createNewWiring(ModuleRevision revision, Map<ModuleRevision, Map<ModuleCapability, List<ModuleWire>>> provided, Map<ModuleRevision, List<ModuleWire>> required) { Map<ModuleCapability, List<ModuleWire>> providedWireMap = provided.get(revision); if (providedWireMap == null) providedWireMap = Collections.emptyMap(); List<ModuleWire> requiredWires = required.get(revision); if (requiredWires == null) requiredWires = Collections.emptyList(); List<ModuleCapability> capabilities = new ArrayList<>(revision.getModuleCapabilities(null)); ListIterator<ModuleCapability> iCapabilities = capabilities.listIterator(capabilities.size()); List<ModuleRequirement> requirements = new ArrayList<>(revision.getModuleRequirements(null)); ListIterator<ModuleRequirement> iRequirements = requirements.listIterator(requirements.size()); // if revision is a fragment remove payload requirements and capabilities if ((BundleRevision.TYPE_FRAGMENT & revision.getTypes()) != 0) { removePayloadContent(iCapabilities, iRequirements); } else { // add fragment capabilities and requirements List<ModuleCapability> hostCapabilities = revision.getModuleCapabilities(HostNamespace.HOST_NAMESPACE); ModuleCapability hostCapability = hostCapabilities.isEmpty() ? null : hostCapabilities.get(0); if (hostCapability != null) { addPayloadContent(providedWireMap.get(hostCapability), iCapabilities, iRequirements); } } removeNonEffectiveCapabilities(iCapabilities); removeNonEffectiveRequirements(iRequirements, requiredWires); Collection<String> substituted = removeSubstitutedCapabilities(iCapabilities, requiredWires); List<ModuleWire> providedWires = new ArrayList<>(); addProvidedWires(providedWireMap, providedWires, capabilities); InternalUtils.filterCapabilityPermissions(capabilities); return new ModuleWiring(revision, capabilities, requirements, providedWires, requiredWires, substituted); }
private ModuleWiring createNewWiring(ModuleRevision revision, Map<ModuleRevision, Map<ModuleCapability, List<ModuleWire>>> provided, Map<ModuleRevision, List<ModuleWire>> required) { Map<ModuleCapability, List<ModuleWire>> providedWireMap = provided.get(revision); if (providedWireMap == null) providedWireMap = Collections.emptyMap(); List<ModuleWire> requiredWires = required.get(revision); if (requiredWires == null) requiredWires = Collections.emptyList(); List<ModuleCapability> capabilities = new ArrayList<ModuleCapability>(revision.getModuleCapabilities(null)); ListIterator<ModuleCapability> iCapabilities = capabilities.listIterator(capabilities.size()); List<ModuleRequirement> requirements = new ArrayList<ModuleRequirement>(revision.getModuleRequirements(null)); ListIterator<ModuleRequirement> iRequirements = requirements.listIterator(requirements.size()); // if revision is a fragment remove payload requirements and capabilities if ((BundleRevision.TYPE_FRAGMENT & revision.getTypes()) != 0) { removePayloadContent(iCapabilities, iRequirements); } else { // add fragment capabilities and requirements List<ModuleCapability> hostCapabilities = revision.getModuleCapabilities(HostNamespace.HOST_NAMESPACE); ModuleCapability hostCapability = hostCapabilities.isEmpty() ? null : hostCapabilities.get(0); if (hostCapability != null) { addPayloadContent(providedWireMap.get(hostCapability), iCapabilities, iRequirements); } } removeNonEffectiveCapabilities(iCapabilities); removeNonEffectiveRequirements(iRequirements, requiredWires); Collection<String> substituted = removeSubstitutedCapabilities(iCapabilities, requiredWires); List<ModuleWire> providedWires = new ArrayList<ModuleWire>(); addProvidedWires(providedWireMap, providedWires, capabilities); InternalUtils.filterCapabilityPermissions(capabilities); return new ModuleWiring(revision, capabilities, requirements, providedWires, requiredWires, substituted); }
private ModuleWiring createNewWiring(ModuleRevision revision, Map<ModuleRevision, Map<ModuleCapability, List<ModuleWire>>> provided, Map<ModuleRevision, List<ModuleWire>> required) { Map<ModuleCapability, List<ModuleWire>> providedWireMap = provided.get(revision); if (providedWireMap == null) providedWireMap = Collections.emptyMap(); List<ModuleWire> requiredWires = required.get(revision); if (requiredWires == null) requiredWires = Collections.emptyList(); List<ModuleCapability> capabilities = new ArrayList<ModuleCapability>(revision.getModuleCapabilities(null)); ListIterator<ModuleCapability> iCapabilities = capabilities.listIterator(capabilities.size()); List<ModuleRequirement> requirements = new ArrayList<ModuleRequirement>(revision.getModuleRequirements(null)); ListIterator<ModuleRequirement> iRequirements = requirements.listIterator(requirements.size()); // if revision is a fragment remove payload requirements and capabilities if ((BundleRevision.TYPE_FRAGMENT & revision.getTypes()) != 0) { removePayloadContent(iCapabilities, iRequirements); } else { // add fragment capabilities and requirements List<ModuleCapability> hostCapabilities = revision.getModuleCapabilities(HostNamespace.HOST_NAMESPACE); ModuleCapability hostCapability = hostCapabilities.isEmpty() ? null : hostCapabilities.get(0); if (hostCapability != null) { addPayloadContent(providedWireMap.get(hostCapability), iCapabilities, iRequirements); } } removeNonEffectiveCapabilities(iCapabilities); removeNonEffectiveRequirements(iRequirements, requiredWires); Collection<String> substituted = removeSubstitutedCapabilities(iCapabilities, requiredWires); List<ModuleWire> providedWires = new ArrayList<ModuleWire>(); addProvidedWires(providedWireMap, providedWires, capabilities); InternalUtils.filterCapabilityPermissions(capabilities); return new ModuleWiring(revision, capabilities, requirements, providedWires, requiredWires, substituted); }
private ModuleWiring createNewWiring(ModuleRevision revision, Map<ModuleRevision, Map<ModuleCapability, List<ModuleWire>>> provided, Map<ModuleRevision, List<ModuleWire>> required) { Map<ModuleCapability, List<ModuleWire>> providedWireMap = provided.get(revision); if (providedWireMap == null) providedWireMap = Collections.emptyMap(); List<ModuleWire> requiredWires = required.get(revision); if (requiredWires == null) requiredWires = Collections.emptyList(); List<ModuleCapability> capabilities = new ArrayList<ModuleCapability>(revision.getModuleCapabilities(null)); ListIterator<ModuleCapability> iCapabilities = capabilities.listIterator(capabilities.size()); List<ModuleRequirement> requirements = new ArrayList<ModuleRequirement>(revision.getModuleRequirements(null)); ListIterator<ModuleRequirement> iRequirements = requirements.listIterator(requirements.size()); // if revision is a fragment remove payload requirements and capabilities if ((BundleRevision.TYPE_FRAGMENT & revision.getTypes()) != 0) { removePayloadContent(iCapabilities, iRequirements); } else { // add fragment capabilities and requirements List<ModuleCapability> hostCapabilities = revision.getModuleCapabilities(HostNamespace.HOST_NAMESPACE); ModuleCapability hostCapability = hostCapabilities.isEmpty() ? null : hostCapabilities.get(0); if (hostCapability != null) { addPayloadContent(providedWireMap.get(hostCapability), iCapabilities, iRequirements); } } removeNonEffectiveCapabilities(iCapabilities); removeNonEffectiveRequirements(iRequirements, requiredWires); Collection<String> substituted = removeSubstitutedCapabilities(iCapabilities, requiredWires); List<ModuleWire> providedWires = new ArrayList<ModuleWire>(); addProvidedWires(providedWireMap, providedWires, capabilities); InternalUtils.filterCapabilityPermissions(capabilities); return new ModuleWiring(revision, capabilities, requirements, providedWires, requiredWires, substituted); }
private static void getStringsVersionsAndMaps(Module module, ModuleDatabase moduleDatabase, Set<String> allStrings, Set<Version> allVersions, Set<Map<String, ?>> allMaps) { ModuleRevision current = module.getCurrentRevision(); if (current == null) return; allStrings.add(module.getLocation()); allStrings.add(current.getSymbolicName()); allStrings.add(current.getVersion().getQualifier()); allVersions.add(current.getVersion()); EnumSet<Settings> settings = moduleDatabase.moduleSettings.get(module.getId()); if (settings != null) { for (Settings setting : settings) { allStrings.add(setting.toString()); } } List<ModuleCapability> capabilities = current.getModuleCapabilities(null); for (ModuleCapability capability : capabilities) { allStrings.add(capability.getNamespace()); addMap(capability.getPersistentAttributes(), allStrings, allVersions, allMaps); addMap(capability.getDirectives(), allStrings, allVersions, allMaps); } List<ModuleRequirement> requirements = current.getModuleRequirements(null); for (ModuleRequirement requirement : requirements) { allStrings.add(requirement.getNamespace()); addMap(requirement.getAttributes(), allStrings, allVersions, allMaps); addMap(requirement.getDirectives(), allStrings, allVersions, allMaps); } }
private static void getStringsVersionsAndMaps(Module module, ModuleDatabase moduleDatabase, Set<String> allStrings, Set<Version> allVersions, Set<Map<String, ?>> allMaps) { ModuleRevision current = module.getCurrentRevision(); if (current == null) return; allStrings.add(module.getLocation()); allStrings.add(current.getSymbolicName()); allStrings.add(current.getVersion().getQualifier()); allVersions.add(current.getVersion()); EnumSet<Settings> settings = moduleDatabase.moduleSettings.get(module.getId()); if (settings != null) { for (Settings setting : settings) { allStrings.add(setting.toString()); } } List<ModuleCapability> capabilities = current.getModuleCapabilities(null); for (ModuleCapability capability : capabilities) { allStrings.add(capability.getNamespace()); addMap(capability.getPersistentAttributes(), allStrings, allVersions, allMaps); addMap(capability.getDirectives(), allStrings, allVersions, allMaps); } List<ModuleRequirement> requirements = current.getModuleRequirements(null); for (ModuleRequirement requirement : requirements) { allStrings.add(requirement.getNamespace()); addMap(requirement.getAttributes(), allStrings, allVersions, allMaps); addMap(requirement.getDirectives(), allStrings, allVersions, allMaps); } }
private static void getStringsVersionsAndMaps(Module module, ModuleDatabase moduleDatabase, Set<String> allStrings, Set<Version> allVersions, Set<Map<String, ?>> allMaps) { ModuleRevision current = module.getCurrentRevision(); if (current == null) return; allStrings.add(module.getLocation()); allStrings.add(current.getSymbolicName()); allStrings.add(current.getVersion().getQualifier()); allVersions.add(current.getVersion()); EnumSet<Settings> settings = moduleDatabase.moduleSettings.get(module.getId()); if (settings != null) { for (Settings setting : settings) { allStrings.add(setting.toString()); } } List<ModuleCapability> capabilities = current.getModuleCapabilities(null); for (ModuleCapability capability : capabilities) { allStrings.add(capability.getNamespace()); addMap(capability.getPersistentAttributes(), allStrings, allVersions, allMaps); addMap(capability.getDirectives(), allStrings, allVersions, allMaps); } List<ModuleRequirement> requirements = current.getModuleRequirements(null); for (ModuleRequirement requirement : requirements) { allStrings.add(requirement.getNamespace()); addMap(requirement.getAttributes(), allStrings, allVersions, allMaps); addMap(requirement.getDirectives(), allStrings, allVersions, allMaps); } }
private static void getStringsVersionsAndMaps(Module module, ModuleDatabase moduleDatabase, Set<String> allStrings, Set<Version> allVersions, Set<Map<String, ?>> allMaps) { ModuleRevision current = module.getCurrentRevision(); if (current == null) return; allStrings.add(module.getLocation()); allStrings.add(current.getSymbolicName()); allStrings.add(current.getVersion().getQualifier()); allVersions.add(current.getVersion()); EnumSet<Settings> settings = moduleDatabase.moduleSettings.get(module.getId()); if (settings != null) { for (Settings setting : settings) { allStrings.add(setting.toString()); } } List<ModuleCapability> capabilities = current.getModuleCapabilities(null); for (ModuleCapability capability : capabilities) { allStrings.add(capability.getNamespace()); addMap(capability.getPersistentAttributes(), allStrings, allVersions, allMaps); addMap(capability.getDirectives(), allStrings, allVersions, allMaps); } List<ModuleRequirement> requirements = current.getModuleRequirements(null); for (ModuleRequirement requirement : requirements) { allStrings.add(requirement.getNamespace()); addMap(requirement.getAttributes(), allStrings, allVersions, allMaps); addMap(requirement.getDirectives(), allStrings, allVersions, allMaps); } }