/** * Create new instance by cloning the provided one with different version constraint. * * @param dependency the extension dependency to copy * @param versionConstraint the version constraint to set */ public AbstractExtensionDependency(ExtensionDependency dependency, VersionConstraint versionConstraint) { this(dependency.getId(), versionConstraint != null ? versionConstraint : dependency.getVersionConstraint(), dependency.isOptional(), dependency.getProperties()); setRepositories(dependency.getRepositories()); }
/** * Create new extension descriptor by copying provided one. * * @param repository the repository where this extension comes from * @param extension the extension to copy */ public AbstractExtension(ExtensionRepository repository, Extension extension) { this(repository, extension.getId(), extension.getType()); set(extension); }
@Override public boolean isCompatible(Extension extension) { if (isCompatible(extension.getId())) { return true; } for (ExtensionId extensionId : extension.getExtensionFeatures()) { if (isCompatible(extensionId)) { return true; } } return false; }
public ExtensionId getId() { return getExtension().getId(); }
public String getType() { return getExtension().getType(); }
public List<ExtensionDependency> getDependencies() { return getExtension().getDependencies(); }
public File getFile() { return getLocalExtension().getFile(); }
public ExtensionRepository getRepository() { return getExtension().getRepository(); } }
public String getWebSite() { return getExtension().getWebSite(); }
public String getDescription() { return getExtension().getDescription(); }
public Collection<String> getNamespaces() { return getLocalExtension().getNamespaces(); } }
public boolean isInstalled(String namespace) { return getLocalExtension().isInstalled(namespace); }
public String getAuthor() { return getExtension().getAuthor(); }
public void download(File file) throws ExtensionException { getExtension().download(file); }