1 package org.apache.maven.plugins.assembly.io;
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
27
28
29
30 final class Locator
31 {
32
33 private List<LocatorStrategy> strategies;
34 private final MessageHolder messageHolder;
35
36
37
38
39
40 Locator( List<LocatorStrategy> strategies, MessageHolder messageHolder )
41 {
42 this.messageHolder = messageHolder;
43 this.strategies = new ArrayList<LocatorStrategy>( strategies );
44 }
45
46
47
48
49 Locator()
50 {
51 this.messageHolder = new DefaultMessageHolder();
52 this.strategies = new ArrayList<LocatorStrategy>();
53 }
54
55
56
57
58 MessageHolder getMessageHolder()
59 {
60 return messageHolder;
61 }
62
63
64
65
66 void addStrategy( LocatorStrategy strategy )
67 {
68 this.strategies.add( strategy );
69 }
70
71
72
73
74 void removeStrategy( LocatorStrategy strategy )
75 {
76 this.strategies.remove( strategy );
77 }
78
79
80
81
82 void setStrategies( List<LocatorStrategy> strategies )
83 {
84 this.strategies.clear();
85 this.strategies.addAll( strategies );
86 }
87
88
89
90
91 List<LocatorStrategy> getStrategies()
92 {
93 return strategies;
94 }
95
96
97
98
99
100 Location resolve( String locationSpecification )
101 {
102 Location location = null;
103
104 for ( Iterator<LocatorStrategy> it = strategies.iterator(); location == null && it.hasNext(); )
105 {
106 LocatorStrategy strategy = (LocatorStrategy) it.next();
107
108 location = strategy.resolve( locationSpecification, messageHolder );
109 }
110
111 return location;
112 }
113
114 }