fragmentGenericRequires = null;
	void initialize(boolean useSelectedExports) {		if (getBundle().isSingleton())			refs = new ArrayList();		if (getBundle().getHost() != null) {			host = new BundleConstraint(this, getBundle().getHost());			exports = new ResolverExport[0];			imports = new ResolverImport[0];			requires = new BundleConstraint[0];			return;		}		ImportPackageSpecification[] actualImports = getBundle().getImportPackages();		// Reorder imports so that optionals are at the end so that we wire statics before optionals		ArrayList importList = new ArrayList(actualImports.length);		for (int i = actualImports.length - 1; i >= 0; i--)			if (ImportPackageSpecification.RESOLUTION_OPTIONAL.equals(actualImports[i].getDirective(Constants.RESOLUTION_DIRECTIVE)))				importList.add(new ResolverImport(this, actualImports[i]));			else				importList.add(0, new ResolverImport(this, actualImports[i]));		imports = (ResolverImport[]) importList.toArray(new ResolverImport[importList.size()]);		ExportPackageDescription[] actualExports = useSelectedExports ? getBundle().getSelectedExports() : getBundle().getExportPackages();		exports = new ResolverExport[actualExports.length];		for (int i = 0; i < actualExports.length; i++)			exports[i] = new ResolverExport(this, actualExports[i]);		BundleSpecification[] actualRequires = getBundle().getRequiredBundles();		requires = new BundleConstraint[actualRequires.length];		for (int i = 0; i < requires.length; i++)			requires[i] = new BundleConstraint(this, actualRequires[i]);		fragments = null;		fragmentExports = null;		fragmentImports = null;		fragmentRequires = null;	}