1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.index.search.grouping;
20
21 import java.util.Comparator;
22 import java.util.Map;
23
24 import org.apache.maven.index.ArtifactInfo;
25 import org.apache.maven.index.ArtifactInfoGroup;
26 import org.apache.maven.index.Grouping;
27
28
29
30
31
32
33 public abstract class AbstractGrouping implements Grouping {
34 private Comparator<ArtifactInfo> comparator;
35
36 public AbstractGrouping() {
37 this(ArtifactInfo.VERSION_COMPARATOR);
38 }
39
40 public AbstractGrouping(Comparator<ArtifactInfo> comparator) {
41 super();
42 this.comparator = comparator;
43 }
44
45 public boolean addArtifactInfo(Map<String, ArtifactInfoGroup> result, ArtifactInfo artifactInfo) {
46 String key = getGroupKey(artifactInfo);
47
48 ArtifactInfoGroup group = result.get(key);
49
50 if (group == null) {
51 group = new ArtifactInfoGroup(key, comparator);
52
53 result.put(key, group);
54 }
55
56 return group.addArtifactInfo(artifactInfo);
57 }
58
59 protected abstract String getGroupKey(ArtifactInfo artifactInfo);
60 }