1 package org.eclipse.aether.util.graph.transformer;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.eclipse.aether.RepositoryException;
23 import org.eclipse.aether.util.artifact.JavaScopes;
24 import org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeContext;
25 import org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeDeriver;
26
27
28
29
30 public final class JavaScopeDeriver
31 extends ScopeDeriver
32 {
33
34
35
36
37 public JavaScopeDeriver()
38 {
39 }
40
41 @Override
42 public void deriveScope( ScopeContext context )
43 throws RepositoryException
44 {
45 context.setDerivedScope( getDerivedScope( context.getParentScope(), context.getChildScope() ) );
46 }
47
48 private String getDerivedScope( String parentScope, String childScope )
49 {
50 String derivedScope;
51
52 if ( JavaScopes.SYSTEM.equals( childScope ) || JavaScopes.TEST.equals( childScope ) )
53 {
54 derivedScope = childScope;
55 }
56 else if ( parentScope == null || parentScope.length() <= 0 || JavaScopes.COMPILE.equals( parentScope ) )
57 {
58 derivedScope = childScope;
59 }
60 else if ( JavaScopes.TEST.equals( parentScope ) || JavaScopes.RUNTIME.equals( parentScope ) )
61 {
62 derivedScope = parentScope;
63 }
64 else if ( JavaScopes.SYSTEM.equals( parentScope ) || JavaScopes.PROVIDED.equals( parentScope ) )
65 {
66 derivedScope = JavaScopes.PROVIDED;
67 }
68 else
69 {
70 derivedScope = JavaScopes.RUNTIME;
71 }
72
73 return derivedScope;
74 }
75
76 }