1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.util.graph.transformer;
20
21 import java.util.Collection;
22
23 import org.eclipse.aether.RepositoryException;
24 import org.eclipse.aether.util.graph.transformer.ConflictResolver.ConflictContext;
25 import org.eclipse.aether.util.graph.transformer.ConflictResolver.ConflictItem;
26 import org.eclipse.aether.util.graph.transformer.ConflictResolver.OptionalitySelector;
27
28
29
30
31
32
33 public final class SimpleOptionalitySelector extends OptionalitySelector {
34
35
36
37
38 public SimpleOptionalitySelector() {}
39
40 @Override
41 public void selectOptionality(ConflictContext context) throws RepositoryException {
42 boolean optional = chooseEffectiveOptionality(context.getItems());
43 context.setOptional(optional);
44 }
45
46 private boolean chooseEffectiveOptionality(Collection<ConflictItem> items) {
47 boolean optional = true;
48 for (ConflictItem item : items) {
49 if (item.getDepth() <= 1) {
50 return item.getDependency().isOptional();
51 }
52 if ((item.getOptionalities() & ConflictItem.OPTIONAL_FALSE) != 0) {
53 optional = false;
54 }
55 }
56 return optional;
57 }
58 }