/* * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.build.gradle.internal.model; import com.android.annotations.NonNull; import com.android.annotations.Nullable; import com.android.builder.dependency.LibraryDependency; import com.android.builder.model.AndroidLibrary; import com.android.builder.model.MavenCoordinates; import com.google.common.collect.Lists; import java.io.File; import java.io.Serializable; import java.util.Collection; import java.util.List; public class AndroidLibraryImpl extends LibraryImpl implements AndroidLibrary, Serializable { private static final long serialVersionUID = 1L; @Nullable private final String project; @Nullable private final String variant; @NonNull private final File bundle; @NonNull private final File folder; @NonNull private final File manifest; @NonNull private final File jarFile; @NonNull private final Collection<File> localJars; @NonNull private final File resFolder; @NonNull private final File assetsFolder; @NonNull private final File jniFolder; @NonNull private final File aidlFolder; @NonNull private final File renderscriptFolder; @NonNull private final File proguardRules; @NonNull private final File lintJar; @NonNull private final File annotations; @NonNull private final File publicResources; @NonNull private final List<AndroidLibrary> dependencies; private final boolean isOptional; AndroidLibraryImpl( @NonNull LibraryDependency libraryDependency, @NonNull List<AndroidLibrary> dependencies, @NonNull Collection<File> localJarOverride, @Nullable String project, @Nullable String variant, @Nullable MavenCoordinates requestedCoordinates, @Nullable MavenCoordinates resolvedCoordinates) { super(requestedCoordinates, resolvedCoordinates); this.dependencies = dependencies; bundle = libraryDependency.getBundle(); folder = libraryDependency.getFolder(); manifest = libraryDependency.getManifest(); jarFile = libraryDependency.getJarFile(); localJars = Lists.newArrayList(localJarOverride); resFolder = libraryDependency.getResFolder(); assetsFolder = libraryDependency.getAssetsFolder(); jniFolder = libraryDependency.getJniFolder(); aidlFolder = libraryDependency.getAidlFolder(); renderscriptFolder = libraryDependency.getRenderscriptFolder(); proguardRules = libraryDependency.getProguardRules(); lintJar = libraryDependency.getLintJar(); annotations = libraryDependency.getExternalAnnotations(); publicResources = libraryDependency.getPublicResources(); isOptional = libraryDependency.isOptional(); this.project = project; this.variant = variant; } @Nullable @Override public String getProject() { return project; } @Nullable @Override public String getProjectVariant() { return variant; } @NonNull @Override public File getBundle() { return bundle; } @NonNull @Override public File getFolder() { return folder; } @NonNull @Override public List<? extends AndroidLibrary> getLibraryDependencies() { return dependencies; } @NonNull @Override public File getManifest() { return manifest; } @NonNull @Override public File getJarFile() { return jarFile; } @NonNull @Override public Collection<File> getLocalJars() { return localJars; } @NonNull @Override public File getResFolder() { return resFolder; } @NonNull @Override public File getAssetsFolder() { return assetsFolder; } @NonNull @Override public File getJniFolder() { return jniFolder; } @NonNull @Override public File getAidlFolder() { return aidlFolder; } @NonNull @Override public File getRenderscriptFolder() { return renderscriptFolder; } @NonNull @Override public File getProguardRules() { return proguardRules; } @NonNull @Override public File getLintJar() { return lintJar; } @NonNull @Override public File getExternalAnnotations() { return annotations; } @Override @NonNull public File getPublicResources() { return publicResources; } @Override public boolean isOptional() { return isOptional; } }