1 package org.codehaus.plexus.component.repository;
2
3 /*
4 * Copyright 2001-2006 Codehaus Foundation.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19 /**
20 * This represents a project which this component depends upon to function
21 * properly, for example, a required jar file. See Apache Maven for an
22 * example of a dependency in action.
23 *
24 * @author Jason van Zyl
25 * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
26 */
27 public class ComponentDependency {
28 private static final String DEAULT_DEPENDENCY_TYPE = "jar";
29
30 private String groupId;
31
32 private String artifactId;
33
34 private String type = DEAULT_DEPENDENCY_TYPE;
35
36 private String version;
37
38 /**
39 * Gets a key for an artifact, which is an alias for a specific
40 * project timeline in a group.
41 * @return a key for an artifact
42 */
43 public String getArtifactId() {
44 return artifactId;
45 }
46
47 /**
48 * Sets the dependency's artifact ID.
49 * @param artifactId the artifact ID
50 */
51 public void setArtifactId(String artifactId) {
52 this.artifactId = artifactId;
53 }
54
55 /**
56 * Gets a key for a group, which represents a set of artifacts timelines.
57 * @return a key for a group
58 */
59 public String getGroupId() {
60 return groupId;
61 }
62
63 /**
64 * Sets the dependency's group ID.
65 * @param groupId the group ID
66 */
67 public void setGroupId(String groupId) {
68 this.groupId = groupId;
69 }
70
71 /**
72 * Gets the type of dependency, for example a "jar".
73 * @return the type of dependency
74 */
75 public String getType() {
76 return type;
77 }
78
79 /**
80 * Sets the dependency project's type.
81 * @param type the dependency's type
82 */
83 public void setType(String type) {
84 this.type = type;
85 }
86
87 /**
88 * Returns a specific point in a project's timeline.
89 * i.e. version 1, or 2.1.4
90 * @return a specific point in a project's timeline
91 */
92 public String getVersion() {
93 return version;
94 }
95
96 /**
97 * Sets the point in a project's development timeline
98 * @param version the project's version
99 */
100 public void setVersion(String version) {
101 this.version = version;
102 }
103
104 public String toString() {
105 StringBuilder sb = new StringBuilder();
106
107 sb.append("groupId = ")
108 .append(groupId)
109 .append(", artifactId = ")
110 .append(artifactId)
111 .append(", version = ")
112 .append(version)
113 .append(", type = ")
114 .append(type);
115
116 return sb.toString();
117 }
118 }