replaced <code></code> with more concise {@code}
[idea/community.git] / plugins / gradle / tooling-extension-api / src / org / jetbrains / plugins / gradle / model / ExternalDependency.java
1 /*
2  * Copyright 2000-2015 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.jetbrains.plugins.gradle.model;
17
18 import org.jetbrains.annotations.NotNull;
19 import org.jetbrains.annotations.Nullable;
20 import org.jetbrains.plugins.gradle.ExternalDependencyId;
21
22 import java.io.Serializable;
23 import java.util.Collection;
24
25 /**
26  * @author Vladislav.Soroka
27  * @since 7/14/2014
28  */
29 public interface ExternalDependency extends Serializable {
30   /**
31    * <p>The group of the dependency.
32    *
33    * @return dependency group
34    */
35   String getGroup();
36
37   /**
38    * <p>The name of the dependency.
39    *
40    * @return dependency name
41    */
42   String getName();
43
44   /**
45    * <p>The version of the dependency
46    *
47    * @return dependency version
48    */
49   String getVersion();
50
51   /**
52    * Returns the {@link ExternalDependencyId} containing the group, the name and the version of this dependency.
53    * Contains the same information as {@link #getGroup()}, {@link #getName()} and {@link #getVersion()}
54    *
55    * @return the dependency identifier
56    */
57   @NotNull
58   ExternalDependencyId getId();
59
60
61   /**
62    * <p>The scope of the dependency
63    *
64    * @return dependency scope
65    */
66   String getScope();
67
68   /**
69    * <p>The packaging type
70    *
71    * @return packaging type
72    */
73   @Nullable
74   String getPackaging();
75
76   /**
77    * <p>The classifier
78    *
79    * @return classifier
80    */
81   @Nullable
82   String getClassifier();
83
84   /**
85    * <p>Returns the reason why this particular dependency was selected in the result.
86    * Useful if multiple candidates were found during dependency resolution.
87    *
88    * @return the reason for selecting the dependency
89    */
90   @Nullable
91   String getSelectionReason();
92
93   /**
94    * <p>The order of the dependency in it's classpath.
95    *
96    * @return classpath order
97    */
98   int getClasspathOrder();
99
100   /**
101    * <p>Returns transitive dependencies
102    *
103    * @return transitive dependencies
104    */
105   @NotNull
106   Collection<ExternalDependency> getDependencies();
107
108   /**
109    * Allows to check if current dependency is transitive, i.e. is visible to the module which depends on module that has current dependency.
110    * @return {@code true} if current dependency is transitive; {@code false} otherwise
111    */
112   boolean getExported();
113 }