• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java QueryUtil类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.eclipse.equinox.p2.query.QueryUtil的典型用法代码示例。如果您正苦于以下问题:Java QueryUtil类的具体用法?Java QueryUtil怎么用?Java QueryUtil使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



QueryUtil类属于org.eclipse.equinox.p2.query包,在下文中一共展示了QueryUtil类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: queryRepositoryForInstallableUnit

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Queries a repository for a specific {@link IInstallableUnit} (IU).
 *
 * @param repositoryURI the repository URI
 * @param installableUnitID the ID of the IU
 * @return the {@link IQueryResult}
 */
private IQueryResult<IInstallableUnit> queryRepositoryForInstallableUnit(URI repositoryURI, String installableUnitID) {

	// --- Load the repository ------------
	IQueryResult<IInstallableUnit> queryResult = null;
	try {
		IMetadataRepository metadataRepository = this.getMetadataRepositoryManager().loadRepository(repositoryURI, this.getProgressMonitor());
		// --- Query for the IU of interest -----
		if (metadataRepository != null) {
			queryResult = metadataRepository.query(QueryUtil.createIUQuery(installableUnitID), this.getProgressMonitor());
		}
		
	} catch (ProvisionException | OperationCanceledException e) {
		System.err.println("Error loading the repository at " + repositoryURI);
		e.printStackTrace();
	}

	return queryResult;
}
 
开发者ID:EnFlexIT,项目名称:AgentWorkbench,代码行数:26,代码来源:P2OperationsHandler.java


示例2: getUpdatedGroups

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
private List<IInstallableUnit> getUpdatedGroups() {
	nullProgressMonitor = new NullProgressMonitor();
	this.agent = agent;

	MetadataRepositoryManager metadataRepositoryManager = new MetadataRepositoryManager(
			agent);

	try {
		loadRepository = metadataRepositoryManager.loadRepository(uri, 0,
				nullProgressMonitor);
	} catch (ProvisionException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	IQuery<IInstallableUnit> createQuery = QueryUtil.createIUGroupQuery();

	IQueryResult<IInstallableUnit> query = loadRepository.query(
			createQuery, nullProgressMonitor);
	List<IInstallableUnit> list = toList(query);
	return list;
}
 
开发者ID:cplutte,项目名称:bts,代码行数:23,代码来源:InstallNewSoftwareService.java


示例3: updateForPreferences

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
public void updateForPreferences() {
	IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();
	setRepositoriesVisible(prefs
			.getBoolean(PreferenceConstants.REPOSITORIES_VISIBLE));
	setRestartPolicy(prefs.getInt(PreferenceConstants.RESTART_POLICY));
	setShowLatestVersionsOnly(prefs
			.getBoolean(PreferenceConstants.SHOW_LATEST_VERSION_ONLY));
	setGroupByCategory(prefs
			.getBoolean(PreferenceConstants.AVAILABLE_GROUP_BY_CATEGORY));
	setShowDrilldownRequirements(prefs
			.getBoolean(PreferenceConstants.SHOW_DRILLDOWN_REQUIREMENTS));
	setFilterOnEnv(prefs.getBoolean(PreferenceConstants.FILTER_ON_ENV));
	setUpdateWizardStyle(prefs.getInt(PreferenceConstants.UPDATE_WIZARD_STYLE));
	int preferredWidth = prefs.getInt(PreferenceConstants.UPDATE_DETAILS_WIDTH);
	int preferredHeight = prefs.getInt(PreferenceConstants.UPDATE_DETAILS_HEIGHT);
	setUpdateDetailsPreferredSize(new Point(preferredWidth, preferredHeight));		
	
	if (prefs.getBoolean(PreferenceConstants.AVAILABLE_SHOW_ALL_BUNDLES))
		setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
	else
		setVisibleAvailableIUQuery(QueryUtil.createIUGroupQuery());
	if (prefs.getBoolean(PreferenceConstants.INSTALLED_SHOW_ALL_BUNDLES))
		setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
	else
		setVisibleAvailableIUQuery(new UserVisibleRootQuery());
}
 
开发者ID:OpenSoftwareSolutions,项目名称:PDFReporter-Studio,代码行数:27,代码来源:JSSP2Policy.java


示例4: updateForPreferences

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
public void updateForPreferences() {
		IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();
		setRepositoriesVisible(prefs
				.getBoolean(PreferenceConstants.REPOSITORIES_VISIBLE));
		setRestartPolicy(prefs.getInt(PreferenceConstants.RESTART_POLICY));
		setShowLatestVersionsOnly(prefs
				.getBoolean(PreferenceConstants.SHOW_LATEST_VERSION_ONLY));
		setGroupByCategory(prefs
				.getBoolean(PreferenceConstants.AVAILABLE_GROUP_BY_CATEGORY));
		setShowDrilldownRequirements(prefs
				.getBoolean(PreferenceConstants.SHOW_DRILLDOWN_REQUIREMENTS));
		if (prefs.getBoolean(PreferenceConstants.AVAILABLE_SHOW_ALL_BUNDLES))
			setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
		else
			setVisibleAvailableIUQuery(QueryUtil.createIUGroupQuery());
		if (prefs.getBoolean(PreferenceConstants.INSTALLED_SHOW_ALL_BUNDLES))
			setVisibleInstalledIUQuery(QueryUtil.ALL_UNITS);
//		else
//			setVisibleInstalledIUQuery(new UserVisibleRootQuery());

	}
 
开发者ID:tmfev,项目名称:IDRT-Import-and-Mapping-Tool,代码行数:22,代码来源:CloudPolicy.java


示例5: findUnit

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Finds the latest version of an installable unit in a repository.
 * 
 * @param spec Version specification
 * @return Installable unit or <code>null</code>.
 * @throws CoreException on failure
 */
public IInstallableUnit findUnit(IVersionedId spec) {
	String id = spec.getId();
	Version version = spec.getVersion();
	VersionRange range = VersionRange.emptyRange;
	if (version != null && !version.equals(Version.emptyVersion))
		range = new VersionRange(version, true, version, true);
	
	IQuery<IInstallableUnit> query = QueryUtil.createIUQuery(id, range);
	IQueryResult<IInstallableUnit> queryResult = getRepository().query(query, new NullProgressMonitor());
	
	Iterator<IInstallableUnit> matches = queryResult.iterator();
	// pick the newest match
	IInstallableUnit newest = null;
	while (matches.hasNext()) {
		IInstallableUnit candidate = matches.next();
		if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
			newest = candidate;
	}
	
	return newest;
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:29,代码来源:RepositoryAdapter.java


示例6: findUnit

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Returns the latest version of an installable unit in a profile.
 * 
 * @param id Installable unit identifier
 * @return Latest version found or <code>null</code>
 */
public IInstallableUnit findUnit(String id) {
	IInstallableUnit unit = null;
	if (getProfile() != null) {
		IQueryResult<IInstallableUnit> query = getProfile().query(QueryUtil.createIUQuery(id), null);
		Iterator<IInstallableUnit> iter = query.iterator();
		while (iter.hasNext()) {
			IInstallableUnit foundUnit = iter.next();
			if ((unit == null) || (unit.getVersion().compareTo(unit.getVersion()) > 0)) {
				unit = foundUnit;
			}
		}
	}
	
	return unit;
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:22,代码来源:ProfileAdapter.java


示例7: findUnitAll

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Finds the latest version of an installable unit in all repositories.
 * 
 * @param spec Version specification
 * @return Installable unit or <code>null</code>.
 * @throws CoreException on failure
 */
public IInstallableUnit findUnitAll(IVersionedId spec) throws CoreException {
	String id = spec.getId();
	if (id == null) {
		Installer.fail(InstallMessages.Error_NoId);
	}
	Version version = spec.getVersion();
	VersionRange range = VersionRange.emptyRange;
	if (version != null && !version.equals(Version.emptyVersion))
		range = new VersionRange(version, true, version, true);
	IQuery<IInstallableUnit> query = QueryUtil.createIUQuery(id, range);
	Iterator<IInstallableUnit> matches = getManager().query(query, null).iterator();
	// pick the newest match
	IInstallableUnit newest = null;
	while (matches.hasNext()) {
		IInstallableUnit candidate = matches.next();
		if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
			newest = candidate;
	}
	if (newest == null)
	{
		Installer.fail(InstallMessages.Error_IUNotFound + id);
	}
	return newest;
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:32,代码来源:RepositoryManagerAdapter.java


示例8: queryP2Repository

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
private Iterator<IInstallableUnit> queryP2Repository(IProgressMonitor monitor, String updateURL)
		throws URISyntaxException {
	if (monitor == null) {
		monitor = new NullProgressMonitor();
	}

	SubMonitor progress = SubMonitor.convert(monitor, "", 6);
	// get all available IUs in update repository
	IMetadataRepository metadataRepo = null;
	try {
		metadataRepo = metadataRepoManager.loadRepository(new URI(updateURL), progress.newChild(1));
	} catch (ProvisionException e) {
		System.exit(1);
	}
	IQuery<IInstallableUnit> allIUQuery = QueryUtil.createIUAnyQuery();
	IQueryResult<IInstallableUnit> allIUQueryResult = metadataRepo.query(allIUQuery, progress.newChild(1));

	Iterator<IInstallableUnit> iterator = allIUQueryResult.iterator();

	if (progress.isCanceled()) {
		throw new OperationCanceledException();
	}
	return iterator;
}
 
开发者ID:wso2,项目名称:developer-studio,代码行数:25,代码来源:CheckUpdatesManager.java


示例9: updateForPreferences

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
public void updateForPreferences() {
	IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();
	setRepositoriesVisible(prefs
			.getBoolean(PreferenceConstants.REPOSITORIES_VISIBLE));
	setRestartPolicy(prefs.getInt(PreferenceConstants.RESTART_POLICY));
	setShowLatestVersionsOnly(prefs
			.getBoolean(PreferenceConstants.SHOW_LATEST_VERSION_ONLY));
	setGroupByCategory(prefs
			.getBoolean(PreferenceConstants.AVAILABLE_GROUP_BY_CATEGORY));
	setShowDrilldownRequirements(prefs
			.getBoolean(PreferenceConstants.SHOW_DRILLDOWN_REQUIREMENTS));
	if (prefs.getBoolean(PreferenceConstants.AVAILABLE_SHOW_ALL_BUNDLES))
		setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
	else
		setVisibleAvailableIUQuery(QueryUtil.createIUGroupQuery());
	if (prefs.getBoolean(PreferenceConstants.INSTALLED_SHOW_ALL_BUNDLES))
		setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
	else
		setVisibleAvailableIUQuery(new UserVisibleRootQuery());

}
 
开发者ID:winture,项目名称:wt-studio,代码行数:22,代码来源:CloudPolicy.java


示例10: updateForPreferences

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
public void updateForPreferences(){
	
	IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();
	setRepositoriesVisible(prefs.getBoolean(PreferenceConstants.REPOSITORIES_VISIBLE));
	setRestartPolicy(prefs.getInt(PreferenceConstants.RESTART_POLICY));
	setShowLatestVersionsOnly(prefs.getBoolean(PreferenceConstants.SHOW_LATEST_VERSION_ONLY));
	setGroupByCategory(prefs.getBoolean(PreferenceConstants.AVAILABLE_GROUP_BY_CATEGORY));
	setShowDrilldownRequirements(prefs
		.getBoolean(PreferenceConstants.SHOW_DRILLDOWN_REQUIREMENTS));
	setFilterOnEnv(prefs.getBoolean(PreferenceConstants.FILTER_ON_ENV));
	setUpdateWizardStyle(prefs.getInt(PreferenceConstants.UPDATE_WIZARD_STYLE));
	int preferredWidth = prefs.getInt(PreferenceConstants.UPDATE_DETAILS_WIDTH);
	int preferredHeight = prefs.getInt(PreferenceConstants.UPDATE_DETAILS_HEIGHT);
	setUpdateDetailsPreferredSize(new Point(preferredWidth, preferredHeight));
	
	if (prefs.getBoolean(PreferenceConstants.AVAILABLE_SHOW_ALL_BUNDLES))
		setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
	else
		setVisibleAvailableIUQuery(QueryUtil.createIUGroupQuery());
	if (prefs.getBoolean(PreferenceConstants.INSTALLED_SHOW_ALL_BUNDLES))
		setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
	else
		setVisibleAvailableIUQuery(new UserVisibleRootQuery());
	setContactAllSites(false);
}
 
开发者ID:elexis,项目名称:elexis-3-core,代码行数:26,代码来源:ElexisCloudPolicy.java


示例11: checkIfInstalled

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Checks if a specific {@link IInstallableUnit} (IU) is installed
 * 
 * @param installableUnitID The ID of the IU of interest
 * @return true if the IU is installed
 */
public boolean checkIfInstalled(String installableUnitID) {

	// --- Query the p2 profile for the InstallableUnit of interest -----------
	IProfileRegistry profileRegistry = (IProfileRegistry) this.getProvisioningAgent().getService(IProfileRegistry.SERVICE_NAME);
	IProfile profile = profileRegistry.getProfile(IProfileRegistry.SELF);
	IQuery<IInstallableUnit> query = QueryUtil.createIUQuery(installableUnitID);
	IQueryResult<IInstallableUnit> queryResult = profile.query(query, this.getProgressMonitor());

	return !(queryResult.isEmpty());
}
 
开发者ID:EnFlexIT,项目名称:AgentWorkbench,代码行数:17,代码来源:P2OperationsHandler.java


示例12: getInstalledFeatures

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Returns the installed features.
 *
 * @return the installed features
 * @throws Exception the exception
 */
public List<IInstallableUnit> getInstalledFeatures() throws Exception {
	if (this.iuList==null) {
		
		IProfileRegistry profileRegistry = (IProfileRegistry) this.getProvisioningAgent().getService(IProfileRegistry.SERVICE_NAME);
		IProfile profile = null;
		if (this.isDevelopmentMode==true) {
			if (profileRegistry.getProfiles().length>0) {
				profile = profileRegistry.getProfiles()[0];
			}
			
		} else {
			profile = profileRegistry.getProfile(IProfileRegistry.SELF);
		}
		if (profile==null) {
			throw new Exception("Unable to access p2 profile - This is not possible when starting the application from the IDE!");
		}
		
		// --- Create the IU list -------------------------------
		this.iuList = new ArrayList<IInstallableUnit>();
		IQuery<IInstallableUnit> query = QueryUtil.createIUGroupQuery();
		IQueryResult<IInstallableUnit> queryResult = profile.query(query, null);
		
		for (IInstallableUnit feature : queryResult) {
			if (QueryUtil.isProduct(feature) == false) {
				iuList.add(feature);
			}
		}
		
	}
	return iuList;
}
 
开发者ID:EnFlexIT,项目名称:AgentWorkbench,代码行数:38,代码来源:P2OperationsHandler.java


示例13: process

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
public void process ( final IProgressMonitor pm ) throws Exception
{
    this.output.mkdirs ();

    System.out.println ( "Loading metadata..." );
    this.metaRepo = this.metaManager.loadRepository ( this.repositoryLocation, pm );
    System.out.println ( "Loading artifacts..." );
    this.artRepo = this.artManager.loadRepository ( this.repositoryLocation, pm );
    System.out.println ( "done!" );

    for ( final URI uri : this.validationRepositoryUris )
    {
        System.out.format ( "Loading validation repository: %s%n", uri );
        final IMetadataRepository repo = this.metaManager.loadRepository ( uri, pm );
        this.validationRepositories.put ( uri, repo );
        System.out.println ( "Done!" );
    }

    final IQuery<IInstallableUnit> query = QueryUtil.createIUAnyQuery ();
    final IQueryResult<IInstallableUnit> result = this.metaRepo.query ( query, pm );

    for ( final IInstallableUnit iu : result )
    {
        processUnit ( iu, pm );
    }

    writeUploadScript ();

    for ( final Map.Entry<MavenReference, Set<String>> entry : this.metadata.entrySet () )
    {
        writeMetaData ( entry.getKey (), entry.getValue () );
    }

}
 
开发者ID:eclipse,项目名称:neoscada,代码行数:35,代码来源:Processor.java


示例14: listInstalledSoftware

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
@Override
public List<IInstallableUnit> listInstalledSoftware(
		IProvisioningAgent agen, int i) {

	this.agent = agen;
	IProfileRegistry service = (IProfileRegistry) agen
			.getService(IProfileRegistry.SERVICE_NAME);

	IQueryable<IInstallableUnit> queryable = service.getProfile("_SELF_");

	if(queryable==null){
		return null;
	}
	NullProgressMonitor monitor = new NullProgressMonitor();
	IQuery<IInstallableUnit> createIU = null;
	if (i == GROUP) {
		createIU = QueryUtil.createIUGroupQuery();
	} else if (i == CATEGORY) {
		createIU = QueryUtil.createIUCategoryQuery();
	} else if (i == ANY) {

		createIU = QueryUtil.createIUAnyQuery();
	}
	IQueryResult<IInstallableUnit> query = queryable.query(createIU,
			monitor);

	List<IInstallableUnit> list = org.ramo.klevis.p2.core.util.Utils
			.toList(query);

	return list;

}
 
开发者ID:cplutte,项目名称:bts,代码行数:33,代码来源:UninstallSoftwareService.java


示例15: extractFromCategory

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
@Override
public List<IInstallableUnit> extractFromCategory(IInstallableUnit category) {

	IQuery<IInstallableUnit> createIUCategoryMemberQuery = QueryUtil
			.createIUCategoryMemberQuery(category);

	IQueryResult<IInstallableUnit> query = loadRepository.query(
			createIUCategoryMemberQuery, nullProgressMonitor);

	return toList(query);
}
 
开发者ID:cplutte,项目名称:bts,代码行数:12,代码来源:InstallNewSoftwareService.java


示例16: SDKPolicy

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
public SDKPolicy() {

		// initialize for our values
		setVisibleAvailableIUQuery(QueryUtil.createIUGroupQuery());

		// If this ever changes, we must change AutomaticUpdateSchedule.getProfileQuery()
		setVisibleInstalledIUQuery(new UserVisibleRootQuery());
		setRepositoryPreferencePageId("org.eclipse.equinox.internal.p2.ui.sdk.SitesPreferencePage"); //$NON-NLS-1$
		setRepositoryPreferencePageName(ProvSDKMessages.SDKPolicy_PrefPageName);

		P2_Activator.getDefault().updateWithPreferences(this);

//		final IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();
//		setRepositoriesVisible(prefs.getBoolean(PreferenceConstants.REPOSITORIES_VISIBLE));
//		setRestartPolicy(prefs.getInt(PreferenceConstants.RESTART_POLICY));
//		setShowLatestVersionsOnly(prefs.getBoolean(PreferenceConstants.SHOW_LATEST_VERSION_ONLY));
//		setGroupByCategory(prefs.getBoolean(PreferenceConstants.AVAILABLE_GROUP_BY_CATEGORY));
//		setShowDrilldownRequirements(prefs.getBoolean(PreferenceConstants.SHOW_DRILLDOWN_REQUIREMENTS));
//		setFilterOnEnv(prefs.getBoolean(PreferenceConstants.FILTER_ON_ENV));
//		setUpdateWizardStyle(prefs.getInt(PreferenceConstants.UPDATE_WIZARD_STYLE));
//
//		final int preferredWidth = prefs.getInt(PreferenceConstants.UPDATE_DETAILS_WIDTH);
//		final int preferredHeight = prefs.getInt(PreferenceConstants.UPDATE_DETAILS_HEIGHT);
//		setUpdateDetailsPreferredSize(new Point(preferredWidth, preferredHeight));
//
//		if (prefs.getBoolean(PreferenceConstants.AVAILABLE_SHOW_ALL_BUNDLES)) {
//			setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
//		} else {
//			setVisibleAvailableIUQuery(QueryUtil.createIUGroupQuery());
//		}
//		if (prefs.getBoolean(PreferenceConstants.INSTALLED_SHOW_ALL_BUNDLES)) {
//			setVisibleAvailableIUQuery(QueryUtil.ALL_UNITS);
//		} else {
//			setVisibleAvailableIUQuery(new UserVisibleRootQuery());
//		}
	}
 
开发者ID:wolfgang-ch,项目名称:mytourbook,代码行数:37,代码来源:SDKPolicy.java


示例17: findMemberUnits

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Finds all required members for an installable unit.
 * 
 * @param parent Parent installable unit
 * @param members Filled with the member installable units
 */
public void findMemberUnits(IInstallableUnit parent, List<IInstallableUnit> members) {
	members.clear();
	// Expression to get required IU's.  This expression matches the expression used in
	// QueryUtil.matchesRequirementsExpression to get category IU members.
	IExpression matchesRequirementsExpression = ExpressionUtil.parse("$0.exists(r | this ~= r)");
	IQuery<IInstallableUnit> query = QueryUtil.createMatchQuery(matchesRequirementsExpression, 
			parent.getRequirements());
	IQueryResult<IInstallableUnit> result = getRepository().query(query, null);
	Iterator<IInstallableUnit> iter = result.iterator();
	while (iter.hasNext()) {
		members.add(iter.next());
	}
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:20,代码来源:RepositoryAdapter.java


示例18: findUnits

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Returns installable units from a profile.
 * 
 * @param versions Versions for installable units
 * @return Installable units
 */
public IInstallableUnit[] findUnits(IVersionedId[] versions) {
	ArrayList<IInstallableUnit> units = new ArrayList<IInstallableUnit>();
	
	for (IVersionedId version : versions) {
		IQueryResult<IInstallableUnit> query = getProfile().query(QueryUtil.createIUQuery(version), null);
		Iterator<IInstallableUnit> iter = query.iterator();
		while (iter.hasNext()) {
			units.add(iter.next());
		}
	}
	
	return units.toArray(new IInstallableUnit[units.size()]);
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:20,代码来源:ProfileAdapter.java


示例19: findAllDependentIUs

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Returns all root IU's that require a specified IU in a profile.
 * 
 * Note: This method does not work in all cases.
 * @param unit Unit to get dependents for
 * @return Dependent units
 * 
 * Note: This routine is known to have problems as it doesn't check for 'strict' dependencies.
 */
public IInstallableUnit[] findAllDependentIUs(IInstallableUnit unit) {
	// Dependent units
	ArrayList<IInstallableUnit> dependents = new ArrayList<IInstallableUnit>();
	// The units left to calculate dependencies for
	Stack<IInstallableUnit> unitsToCalculate = new Stack<IInstallableUnit>();
	// Start with getting dependencies for specified unit
	unitsToCalculate.push(unit);

	// Get the units in the profile
	IQueryResult<IInstallableUnit> profileUnitsQuery = getProfile().query(QueryUtil.createIUAnyQuery(), null);
	IInstallableUnit[] profileUnits = profileUnitsQuery.toArray(IInstallableUnit.class);

	// While there are units to get dependents for
	while (!unitsToCalculate.empty()) {
		// Get units dependent on the specified unit
		IInstallableUnit[] children = findDependentIUs(unitsToCalculate.pop(), profileUnits);
		for (IInstallableUnit child : children) {
			if (!dependents.contains(child)) {
				// Add the unit as a dependent
				dependents.add(child);
				// Push so it's root dependencies are also calculated
				unitsToCalculate.add(child);
			}
		}
	}
	
	return dependents.toArray(new IInstallableUnit[dependents.size()]);
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:38,代码来源:ProfileAdapter.java


示例20: findUnit

import org.eclipse.equinox.p2.query.QueryUtil; //导入依赖的package包/类
/**
 * Finds the latest version of an installable unit in local repositories.
 * 
 * @param spec Version specification
 * @return Installable unit or <code>null</code>.
 * @throws CoreException on failure
 */
public IInstallableUnit findUnit(IVersionedId spec) throws CoreException {
	String id = spec.getId();
	if (id == null) {
		Installer.fail(InstallMessages.Error_NoId);
	}
	Version version = spec.getVersion();
	VersionRange range = VersionRange.emptyRange;
	if (version != null && !version.equals(Version.emptyVersion))
		range = new VersionRange(version, true, version, true);
	
	URI[] locations = manager.getKnownRepositories(IRepositoryManager.REPOSITORIES_LOCAL);
	List<IMetadataRepository> queryables = new ArrayList<IMetadataRepository>(locations.length);
	for (URI location : locations) {
		queryables.add(getManager().loadRepository(location, new NullProgressMonitor()));
	}

	IQuery<IInstallableUnit> query = QueryUtil.createIUQuery(id, range);
	IQueryable<IInstallableUnit> compoundQueryable = QueryUtil.compoundQueryable(queryables);
	IQueryResult<IInstallableUnit> queryResult = compoundQueryable.query(query, new NullProgressMonitor());
	
	Iterator<IInstallableUnit> matches = queryResult.iterator();
	// pick the newest match
	IInstallableUnit newest = null;
	while (matches.hasNext()) {
		IInstallableUnit candidate = matches.next();
		if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
			newest = candidate;
	}

	return newest;
}
 
开发者ID:MentorEmbedded,项目名称:p2-installer,代码行数:39,代码来源:RepositoryManagerAdapter.java



注:本文中的org.eclipse.equinox.p2.query.QueryUtil类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SecurityException类代码示例发布时间:2022-05-21
下一篇:
Java BasicNewResourceWizard类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap