Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/LatestIUVersionQuery.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/LatestIUVersionQuery.java23
1 files changed, 9 insertions, 14 deletions
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/LatestIUVersionQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/LatestIUVersionQuery.java
index f1baa98bd..1a6f66b48 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/LatestIUVersionQuery.java
+++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/LatestIUVersionQuery.java
@@ -17,35 +17,30 @@ import org.eclipse.equinox.p2.metadata.query.IQueryResult;
* This query returns the latest version for each unique VersionedID.
* All other elements are discarded.
*/
-public class LatestIUVersionQuery extends ContextQuery {
+public class LatestIUVersionQuery<T extends IVersionedId> extends ContextQuery<T> {
/**
* Performs the LatestIUVersionQuery
*/
- public IQueryResult perform(Iterator iterator) {
- HashMap greatestIUVersion = new HashMap();
+ public IQueryResult<T> perform(Iterator<T> iterator) {
+ HashMap<String, T> greatestIUVersion = new HashMap<String, T>();
while (iterator.hasNext()) {
- Object next = iterator.next();
-
- if (!(next instanceof IVersionedId))
- // Don't accept things if they are not IUs
- continue;
- IVersionedId versionedID = (IVersionedId) next;
+ T versionedID = iterator.next();
if (greatestIUVersion.containsKey(versionedID.getId())) {
- IVersionedId currentIU = (IVersionedId) greatestIUVersion.get(versionedID.getId());
+ T currentIU = greatestIUVersion.get(versionedID.getId());
if (currentIU.getVersion().compareTo(versionedID.getVersion()) < 0)
greatestIUVersion.put(versionedID.getId(), versionedID);
} else
greatestIUVersion.put(versionedID.getId(), versionedID);
}
- Collection values = greatestIUVersion.values();
- Iterator valuesIterator = values.iterator();
+ Collection<T> values = greatestIUVersion.values();
+ Iterator<T> valuesIterator = values.iterator();
boolean continueGather = true;
- Collector result = new Collector();
+ Collector<T> result = new Collector<T>();
while (valuesIterator.hasNext() && continueGather) {
- IVersionedId nextIU = (IVersionedId) valuesIterator.next();
+ T nextIU = valuesIterator.next();
continueGather = result.accept(nextIU);
}
return result;

Back to the top