View Javadoc
1   package org.sonatype.aether.collection;
2   
3   /*******************************************************************************
4    * Copyright (c) 2010-2011 Sonatype, Inc.
5    * All rights reserved. This program and the accompanying materials
6    * are made available under the terms of the Eclipse Public License v1.0
7    * which accompanies this distribution, and is available at
8    *   http://www.eclipse.org/legal/epl-v10.html
9    *******************************************************************************/
10  
11  import java.util.Collection;
12  import java.util.Map;
13  
14  import org.sonatype.aether.graph.Dependency;
15  import org.sonatype.aether.graph.Exclusion;
16  
17  /**
18   * The management updates to apply to a dependency.
19   * 
20   * @author Benjamin Bentmann
21   * @see DependencyManager#manageDependency(Dependency)
22   */
23  public class DependencyManagement
24  {
25  
26      private String version;
27  
28      private String scope;
29  
30      private Collection<Exclusion> exclusions;
31  
32      private Map<String, String> properties;
33  
34      /**
35       * Creates an empty management update.
36       */
37      public DependencyManagement()
38      {
39          // enables default constructor
40      }
41  
42      /**
43       * Gets the new version to apply to the dependency.
44       * 
45       * @return The new version or {@code null} if the version is not managed and the existing dependency version should
46       *         remain unchanged.
47       */
48      public String getVersion()
49      {
50          return version;
51      }
52  
53      /**
54       * Sets the new version to apply to the dependency.
55       * 
56       * @param version The new version, may be {@code null} if the version is not managed.
57       * @return This management update for chaining, never {@code null}.
58       */
59      public DependencyManagement setVersion( String version )
60      {
61          this.version = version;
62          return this;
63      }
64  
65      /**
66       * Gets the new scope to apply to the dependency.
67       * 
68       * @return The new scope or {@code null} if the scope is not managed and the existing dependency scope should remain
69       *         unchanged.
70       */
71      public String getScope()
72      {
73          return scope;
74      }
75  
76      /**
77       * Sets the new scope to apply to the dependency.
78       * 
79       * @param scope The new scope, may be {@code null} if the scope is not managed.
80       * @return This management update for chaining, never {@code null}.
81       */
82      public DependencyManagement setScope( String scope )
83      {
84          this.scope = scope;
85          return this;
86      }
87  
88      /**
89       * Gets the new exclusions to apply to the dependency. Note that this collection denotes the complete set of
90       * exclusions for the dependency, i.e. the dependency manager controls whether any existing exclusions get merged
91       * with information from dependency management or overridden by it.
92       * 
93       * @return The new exclusions or {@code null} if the exclusions are not managed and the existing dependency
94       *         exclusions should remain unchanged.
95       */
96      public Collection<Exclusion> getExclusions()
97      {
98          return exclusions;
99      }
100 
101     /**
102      * Sets the new exclusions to apply to the dependency. Note that this collection denotes the complete set of
103      * exclusions for the dependency, i.e. the dependency manager controls whether any existing exclusions get merged
104      * with information from dependency management or overridden by it.
105      * 
106      * @param exclusions The new exclusions, may be {@code null} if the exclusions are not managed.
107      * @return This management update for chaining, never {@code null}.
108      */
109     public DependencyManagement setExclusions( Collection<Exclusion> exclusions )
110     {
111         this.exclusions = exclusions;
112         return this;
113     }
114 
115     /**
116      * Gets the new properties to apply to the dependency. Note that this map denotes the complete set of properties,
117      * i.e. the dependency manager controls whether any existing properties get merged with the information from
118      * dependency management or overridden by it.
119      * 
120      * @return The new artifact properties or {@code null} if the properties are not managed and the existing properties
121      *         should remain unchanged.
122      */
123     public Map<String, String> getProperties()
124     {
125         return properties;
126     }
127 
128     /**
129      * Sets the new properties to apply to the dependency. Note that this map denotes the complete set of properties,
130      * i.e. the dependency manager controls whether any existing properties get merged with the information from
131      * dependency management or overridden by it.
132      * 
133      * @param properties The new artifact properties, may be {@code null} if the properties are not managed.
134      * @return This management update for chaining, never {@code null}.
135      */
136     public DependencyManagement setProperties( Map<String, String> properties )
137     {
138         this.properties = properties;
139         return this;
140     }
141 
142 }