Fix support for local jars in library projects.
[android/platform/tools/build.git] / builder / src / main / java / com / android / builder / AndroidDependency.java
1 /*
2  * Copyright (C) 2012 The Android Open Source Project
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
17 package com.android.builder;
18
19 import com.android.annotations.NonNull;
20
21 import java.io.File;
22 import java.util.List;
23
24 /**
25  * Represents a dependency on a Library Project.
26  */
27 public interface AndroidDependency extends ManifestDependency, SymbolFileProvider {
28
29     /**
30      * Returns the location of the unarchived bundle.
31      */
32     @NonNull
33     File getFolder();
34
35     /**
36      * Returns the direct dependency of this dependency.
37      */
38     @NonNull
39     List<AndroidDependency> getDependencies();
40
41     /**
42      * Returns the location of the jar file to use for packaging.
43      *
44      * @return a File for the jar file. The file may not point to an existing file.
45      */
46     @NonNull
47     File getJarFile();
48
49     /**
50      * Returns the list of local Jar files that are included in the dependency.
51      * @return a list of JarDependency. May be empty but not null.
52      */
53     @NonNull
54     List<JarDependency> getLocalDependencies();
55
56     /**
57      * Returns the location of the res folder.
58      *
59      * @return a File for the res folder. The file may not point to an existing folder.
60      */
61     @NonNull
62     File getResFolder();
63
64     /**
65      * Returns the location of the assets folder.
66      *
67      * @return a File for the assets folder. The file may not point to an existing folder.
68      */
69     @NonNull
70     File getAssetsFolder();
71
72     /**
73      * Returns the location of the jni libraries folder.
74      *
75      * @return a File for the folder. The file may not point to an existing folder.
76      */
77     @NonNull
78     File getJniFolder();
79
80     /**
81      * Returns the location of the aidl import folder.
82      *
83      * @return a File for the folder. The file may not point to an existing folder.
84      */
85     @NonNull
86     File getAidlFolder();
87
88     /**
89      * Returns the location of the renderscript import folder.
90      *
91      * @return a File for the folder. The file may not point to an existing folder.
92      */
93     @NonNull
94     File getRenderscriptFolder();
95
96     /**
97      * Returns the location of the proguard files.
98      *
99      * @return a File for the file. The file may not point to an existing file.
100      */
101     @NonNull
102     File getProguardRules();
103
104     /**
105      * Returns the location of the lint jar.
106      *
107      * @return a File for the jar file. The file may not point to an existing file.
108      */
109     @NonNull
110     File getLintJar();
111 }