/*******************************************************************************
* Copyright (c) 2014 Bruno Medeiros and other Contributors.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Bruno Medeiros - initial API and implementation
*******************************************************************************/
package dtool.engine;
import melnorme.utilbox.collections.ArrayList2;
import melnorme.utilbox.collections.Indexable;
import dtool.dub.DubBundle;
import dtool.dub.ResolvedManifest;
public class DubBundleResolution extends BundleResolution {
protected final ResolvedManifest manifest;
protected final DubBundle dubBundle;
public DubBundleResolution(SemanticManager manager, ResolvedManifest manifest,
StandardLibraryResolution stdLibResolution) {
super(manager,
manifest.getBundleKey(),
manager.createBundleModules(manifest.getBundle().getEffectiveImportFolders_AbsolutePath()),
stdLibResolution,
createDepSRs(manager, manifest, stdLibResolution)
);
this.manifest = manifest;
this.dubBundle = manifest.getBundle();
}
protected static Indexable<BundleResolution> createDepSRs(SemanticManager manager,
ResolvedManifest manifest,
StandardLibraryResolution stdLibResolution) {
ArrayList2<BundleResolution> depSRs = new ArrayList2<>();
for(ResolvedManifest depManifest : manifest.getBundleDeps()) {
depSRs.add(new DubBundleResolution(manager, depManifest, stdLibResolution));
}
return depSRs;
}
}