[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [p2-dev] Executing a P2 traverse query
|
On 2010-12-10 23:59, David Orme wrote:
OK; here's where I'm ending the week:
toInstallOrUpdate = allMetadataRepos.query(
QueryUtil.createQuery(traverseQuery,
new
String[]{"com.example.rcpmain.ui.utils.feature.feature.group",
"com.example.rcpmain.ui.feature.feature.group"}),
monitor).toUnmodifiableSet();
where traverseQuery is:
final String traverseQuery = "$0.traverse(parent |
parent.requirements.collect(rc | select(iu |iu ~= rc)).flatten())";
The argument should be a collection (or array) of IU's, not strings.
Also, be adviced that the createQuery uses a varargs so passing an array
will expand into multiple args. If you want an array as $0, you must
cast it to an Object. I.e. either
QueryUtil.createQuery(traverseQuery, (Object)new IInstallableUnit[] {
iu1, iu2, iu3 }, monitor)
or
Collection<IInstallableUnit> roots = ...
QueryUtil.createQuery(traverseQuery, roots)
Regards,
Thomas Hallgren