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 public final class Locator
30 {
31
32 private List strategies;
33 private final MessageHolder messageHolder;
34
35 public Locator( List strategies, MessageHolder messageHolder )
36 {
37 this.messageHolder = messageHolder;
38 this.strategies = new ArrayList( strategies );
39 }
40
41 public Locator()
42 {
43 this.messageHolder = new DefaultMessageHolder();
44 this.strategies = new ArrayList();
45 }
46
47 public MessageHolder getMessageHolder()
48 {
49 return messageHolder;
50 }
51
52 public void addStrategy( LocatorStrategy strategy )
53 {
54 this.strategies.add( strategy );
55 }
56
57 public void removeStrategy( LocatorStrategy strategy )
58 {
59 this.strategies.remove( strategy );
60 }
61
62 public void setStrategies( List strategies )
63 {
64 this.strategies.clear();
65 this.strategies.addAll( strategies );
66 }
67
68 public List getStrategies()
69 {
70 return strategies;
71 }
72
73 public Location resolve( String locationSpecification )
74 {
75 Location location = null;
76
77 for ( Iterator it = strategies.iterator(); location == null && it.hasNext(); )
78 {
79 LocatorStrategy strategy = (LocatorStrategy) it.next();
80
81 location = strategy.resolve( locationSpecification, messageHolder );
82 }
83
84 return location;
85 }
86
87 }