1 package org.apache.maven.shared.io.location;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.Iterator;
24 import java.util.List;
25
26 import org.apache.maven.shared.io.logging.DefaultMessageHolder;
27 import org.apache.maven.shared.io.logging.MessageHolder;
28
29
30
31
32
33 public final class Locator
34 {
35
36 private List<LocatorStrategy> strategies;
37 private final MessageHolder messageHolder;
38
39
40
41
42
43 public Locator( List<LocatorStrategy> strategies, MessageHolder messageHolder )
44 {
45 this.messageHolder = messageHolder;
46 this.strategies = new ArrayList<LocatorStrategy>( strategies );
47 }
48
49
50
51
52 public Locator()
53 {
54 this.messageHolder = new DefaultMessageHolder();
55 this.strategies = new ArrayList<LocatorStrategy>();
56 }
57
58
59
60
61 public MessageHolder getMessageHolder()
62 {
63 return messageHolder;
64 }
65
66
67
68
69 public void addStrategy( LocatorStrategy strategy )
70 {
71 this.strategies.add( strategy );
72 }
73
74
75
76
77 public void removeStrategy( LocatorStrategy strategy )
78 {
79 this.strategies.remove( strategy );
80 }
81
82
83
84
85 public void setStrategies( List<LocatorStrategy> strategies )
86 {
87 this.strategies.clear();
88 this.strategies.addAll( strategies );
89 }
90
91
92
93
94 public List<LocatorStrategy> getStrategies()
95 {
96 return strategies;
97 }
98
99
100
101
102
103 public Location resolve( String locationSpecification )
104 {
105 Location location = null;
106
107 for ( Iterator<LocatorStrategy> it = strategies.iterator(); location == null && it.hasNext(); )
108 {
109 LocatorStrategy strategy = (LocatorStrategy) it.next();
110
111 location = strategy.resolve( locationSpecification, messageHolder );
112 }
113
114 return location;
115 }
116
117 }