@Deprecated private void addLegacyFeatures(Document document, Element parentElement, Extension extension) { Collection<String> features = extension.getFeatures(); if (!features.isEmpty()) { Element featuresElement = document.createElement(ELEMENT_FEATURES); parentElement.appendChild(featuresElement); for (String feature : features) { addElement(document, featuresElement, ELEMENT_FFEATURE, feature); } } }
/** * Indicate in an extension a list of provided "functionalities". Then when resolving extensions dependencies they * can be matched in this list. * * @return the {@link ExtensionId}s also provided by this extension, an empty collection if there is none * @since 8.0M1 */ default Collection<ExtensionId> getExtensionFeatures() { Collection<String> features = getFeatures(); List<ExtensionId> extensionFeatures = new ArrayList<ExtensionId>(features.size()); for (String feature : features) { extensionFeatures.add(new ExtensionId(feature, getId().getVersion())); } return extensionFeatures; }
/** * Return the {@link ExtensionId} object that matches the passed feature id. * * @param featureId the id of the feature * @return the {@link ExtensionId} associated to the passed id * @since 8.0M1 */ default ExtensionId getExtensionFeature(String featureId) { return getFeatures().contains(featureId) ? new ExtensionId(featureId, getId().getVersion()) : null; }
/** * Remove extension from all caches. * * @param extension the extension */ protected void removeCachedExtension(E extension) { // Remove the extension from the memory. this.extensions.remove(extension.getId()); // versions removeCachedExtensionVersion(extension.getId().getId(), extension); if (!this.strictId) { for (String feature : extension.getFeatures()) { removeCachedExtensionVersion(feature, extension); } } }
/** * Register a new extension. * * @param extension the new extension */ protected void addCachedExtension(E extension) { if (!this.extensions.containsKey(extension.getId())) { // extensions this.extensions.put(extension.getId(), extension); // versions addCachedExtensionVersion(extension.getId().getId(), extension); if (!this.strictId) { for (String feature : extension.getFeatures()) { addCachedExtensionVersion(feature, extension); } } } }