View Javadoc
1   package org.eclipse.aether.internal.impl.collect;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   * 
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   * 
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.util.List;
23  
24  import org.eclipse.aether.RepositorySystemSession;
25  import org.eclipse.aether.RequestTrace;
26  import org.eclipse.aether.artifact.Artifact;
27  import org.eclipse.aether.collection.CollectResult;
28  import org.eclipse.aether.collection.DependencyCollectionContext;
29  import org.eclipse.aether.collection.DependencyManager;
30  import org.eclipse.aether.collection.DependencySelector;
31  import org.eclipse.aether.collection.DependencyTraverser;
32  import org.eclipse.aether.collection.VersionFilter;
33  import org.eclipse.aether.graph.Dependency;
34  import org.eclipse.aether.repository.RemoteRepository;
35  import org.eclipse.aether.version.Version;
36  
37  /**
38   * @see DefaultDependencyCollector
39   */
40  class DefaultDependencyCollectionContext
41      implements DependencyCollectionContext
42  {
43  
44      private final RepositorySystemSession session;
45  
46      private Artifact artifact;
47  
48      private Dependency dependency;
49  
50      private List<Dependency> managedDependencies;
51      private CollectResult collectResult;
52  
53      private RequestTrace trace;
54  
55      private Args args;
56  
57      private Results results;
58  
59      private List<Dependency> dependencies;
60  
61      private List<RemoteRepository> repositories;
62  
63      private DependencySelector depSelector;
64  
65      private DependencyManager depManager;
66  
67      private DependencyTraverser depTraverser;
68  
69      private VersionFilter verFilter;
70  
71      private Version version;
72  
73  
74      DefaultDependencyCollectionContext( RepositorySystemSession session, Artifact artifact,
75                                          Dependency dependency, List<Dependency> managedDependencies )
76      {
77          this.session = session;
78          this.artifact = ( dependency != null ) ? dependency.getArtifact() : artifact;
79          this.dependency = dependency;
80          this.managedDependencies = managedDependencies;
81      }
82  
83      public void prepareDescent()
84      {
85          DependencySelector dependencySelector = session.getDependencySelector();
86          DependencyManager dependencyManager = session.getDependencyManager();
87          VersionFilter versionFilter = session.getVersionFilter();
88          setDepSelector( dependencySelector != null ? dependencySelector.deriveChildSelector( this ) : null );
89          setDepManager( dependencyManager != null ? dependencyManager.deriveChildManager( this ) : null );
90          setDepTraverser( depTraverser != null ? depTraverser.deriveChildTraverser( this ) : null );
91          setVerFilter( versionFilter != null ? versionFilter.deriveChildFilter( this ) : null );
92  
93      }
94  
95      public DefaultDependencyCollectionContext createChildContext()
96      {
97          DefaultDependencyCollectionContext childContext =
98                          new DefaultDependencyCollectionContext( getSession(), getArtifact(),
99                                                                  getDependency(), getManagedDependencies() );
100         childContext.depSelector =
101             getDepSelector() != null ? getDepSelector().deriveChildSelector( this ) : null;
102         childContext.depManager =
103             getDepManager() != null ? getDepManager().deriveChildManager( this ) : null;
104         childContext.depTraverser =
105             getDepTraverser() != null ? getDepTraverser().deriveChildTraverser( this ) : null;
106         childContext.verFilter =
107             getVerFilter() != null ? getVerFilter().deriveChildFilter( this ) : null;
108         return childContext;
109     }
110 
111     public RepositorySystemSession getSession()
112     {
113         return session;
114     }
115 
116     public Artifact getArtifact()
117     {
118         return artifact;
119     }
120 
121     public Dependency getDependency()
122     {
123         return dependency;
124     }
125 
126     public List<Dependency> getManagedDependencies()
127     {
128         return managedDependencies;
129     }
130 
131     public CollectResult getCollectResult()
132     {
133         return collectResult;
134     }
135 
136     public void setCollectResult( CollectResult collectResult )
137     {
138         this.collectResult = collectResult;
139     }
140 
141     public Args getArgs()
142     {
143         return args;
144     }
145 
146     public void setArgs( Args args )
147     {
148         this.args = args;
149     }
150 
151     public Results getResults()
152     {
153         return results;
154     }
155 
156     public void setResults( Results results )
157     {
158         this.results = results;
159     }
160 
161     public List<Dependency> getDependencies()
162     {
163         return dependencies;
164     }
165 
166     public void setDependencies( List<Dependency> dependencies )
167     {
168         this.dependencies = dependencies;
169     }
170 
171     public List<RemoteRepository> getRepositories()
172     {
173         return repositories;
174     }
175 
176     public void setRepositories( List<RemoteRepository> repositories )
177     {
178         this.repositories = repositories;
179     }
180 
181     public DependencySelector getDepSelector()
182     {
183         return depSelector;
184     }
185 
186     public void setDepSelector( DependencySelector depSelector )
187     {
188         this.depSelector = depSelector;
189     }
190 
191     public DependencyManager getDepManager()
192     {
193         return depManager;
194     }
195 
196     public void setDepManager( DependencyManager depManager )
197     {
198         this.depManager = depManager;
199     }
200 
201     public DependencyTraverser getDepTraverser()
202     {
203         return depTraverser;
204     }
205 
206     public void setDepTraverser( DependencyTraverser depTraverser )
207     {
208         this.depTraverser = depTraverser;
209     }
210 
211     public VersionFilter getVerFilter()
212     {
213         return verFilter;
214     }
215 
216     public void setVerFilter( VersionFilter verFilter )
217     {
218         this.verFilter = verFilter;
219     }
220 
221     public void setDependency( Dependency dependency )
222     {
223         artifact = dependency.getArtifact();
224         this.dependency = dependency;
225     }
226 
227     public void setManagedDependencies( List<Dependency> managedDependencies )
228     {
229         this.managedDependencies = managedDependencies;
230     }
231 
232     public RequestTrace getTrace()
233     {
234         return trace;
235     }
236 
237     public void setTrace( RequestTrace trace )
238     {
239         this.trace = trace;
240     }
241 
242     public Version getVersion()
243     {
244         return version;
245     }
246 
247     public void setVersion( Version version )
248     {
249         this.version = version;
250     }
251 
252     @Override
253     public String toString()
254     {
255         return String.valueOf( getDependency() );
256     }
257 
258 }