boolean requireOSGi = false;
	private void generateRequireBundle() {		ArrayList requiredBundles = pluginInfo.getRequires();		StringBuffer bundleRequire = new StringBuffer();		boolean requireOSGi = false;		for (Iterator iter = requiredBundles.iterator(); iter.hasNext();) {			PluginParser.Prerequisite element = (PluginParser.Prerequisite) iter.next();			String name = element.getName();			if (name.equals(Constants.getInternalSymbolicName()))				requireOSGi = true;			StringBuffer modImport = new StringBuffer(name);			String versionRange = getVersionRange(element.getVersion(), element.getMatch());			if (versionRange != null)				modImport.append(versionRange);			if (element.isExported()) {				if (TARGET31.equals(target))					modImport.append(';').append(Constants.VISIBILITY_DIRECTIVE).append(":=").append(Constants.VISIBILITY_REEXPORT);//$NON-NLS-1$				else					modImport.append(';').append(Constants.REPROVIDE_ATTRIBUTE).append("=true");//$NON-NLS-1$			}			if (element.isOptional()) {				if (TARGET31.equals(target))					modImport.append(';').append(Constants.RESOLUTION_DIRECTIVE).append(":=").append(Constants.RESOLUTION_OPTIONAL);//$NON-NLS-1$				else					modImport.append(';').append(Constants.OPTIONAL_ATTRIBUTE).append("=true");//$NON-NLS-1$			}			bundleRequire.append(modImport.toString());			if (iter.hasNext())				bundleRequire.append(LIST_SEPARATOR);		}		// if the plugin did not require OSGi and it is not a fragment		if (!requireOSGi && !pluginInfo.isFragment()) {			// add osgi as a requirement.			if (bundleRequire.length() > 0)				bundleRequire.insert(0, LIST_SEPARATOR);			bundleRequire.insert(0, Constants.getInternalSymbolicName());		}		if (bundleRequire.length() > 0)			generatedManifest.put(Constants.REQUIRE_BUNDLE, bundleRequire.toString());	}