public Iterator<IInstallableUnit> getCandidates(IEvaluationContext ctx, IExpression variable, IExpression booleanExpr) { Object queriedKeys = getQueriedIDs(ctx, variable, InstallableUnit.MEMBER_ID, booleanExpr, null); if (queriedKeys == null) return null; if (queriedKeys instanceof Collection<?>) { HashSet<IInstallableUnit> collector = new HashSet<IInstallableUnit>(); for (Object key : (Collection<?>) queriedKeys) collector.addAll(iuMap.getUnits((String) key)); return collector.iterator(); } return iuMap.getUnits((String) queriedKeys).iterator(); } }
private IQueryResult<IInstallableUnit> internalGet(String id, Version version) { if (id == null) { IQuery<IInstallableUnit> query = version == null ? QueryUtil.createIUAnyQuery() : QueryUtil.createIUQuery(null, version); return query.perform(iterator()); } Collection<IInstallableUnit> idUnits = getUnits(id); if (idUnits.isEmpty()) return Collector.emptyCollector(); return version == null ? new CollectionResult<IInstallableUnit>(idUnits) : QueryUtil.createIUQuery(id, version).perform(idUnits.iterator()); }