/* * Copyright (C) 2014 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.model.BaseConfig; import com.android.builder.model.ClassField; import com.google.common.collect.ImmutableMap; import java.io.File; import java.io.Serializable; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; /** * An implementation of BaseConfig specifically for sending as part of the Android model * through the Gradle tooling API. */ abstract class BaseConfigImpl implements BaseConfig, Serializable { private static final long serialVersionUID = 1L; @NonNull private final Map<String, Object> mManifestPlaceholders; @NonNull private final Map<String, ClassField> mBuildConfigFields; @NonNull private final Map<String, ClassField> mResValues; @Nullable private Boolean mMultiDexEnabled; @Nullable private File mMultiDexKeepFile; @Nullable private File mMultiDexKeepProguard; @Nullable private List<File> mJarJarRuleFiles; protected BaseConfigImpl(@NonNull BaseConfig baseConfig) { mManifestPlaceholders = ImmutableMap.copyOf(baseConfig.getManifestPlaceholders()); mBuildConfigFields = ImmutableMap.copyOf(baseConfig.getBuildConfigFields()); mResValues = ImmutableMap.copyOf(baseConfig.getResValues()); mMultiDexEnabled = baseConfig.getMultiDexEnabled(); mMultiDexKeepFile = baseConfig.getMultiDexKeepFile(); mMultiDexKeepProguard = baseConfig.getMultiDexKeepProguard(); mJarJarRuleFiles = baseConfig.getJarJarRuleFiles(); } @NonNull @Override public Map<String, ClassField> getBuildConfigFields() { return mBuildConfigFields; } @NonNull @Override public Map<String, ClassField> getResValues() { return mResValues; } @NonNull @Override public List<File> getProguardFiles() { return Collections.emptyList(); } @NonNull @Override public List<File> getConsumerProguardFiles() { return Collections.emptyList(); } @NonNull @Override public Collection<File> getTestProguardFiles() { return Collections.emptyList(); } @Override @NonNull public Map<String, Object> getManifestPlaceholders() { return mManifestPlaceholders; } @Override @Nullable public Boolean getMultiDexEnabled() { return mMultiDexEnabled; } @Nullable @Override public File getMultiDexKeepFile() { return mMultiDexKeepFile; } @Nullable @Override public File getMultiDexKeepProguard() { return mMultiDexKeepProguard; } @NonNull @Override public List<File> getJarJarRuleFiles() { return mJarJarRuleFiles; } @Override public String toString() { return "BaseConfigImpl{" + "mManifestPlaceholders=" + mManifestPlaceholders + ", mBuildConfigFields=" + mBuildConfigFields + ", mResValues=" + mResValues + ", mMultiDexEnabled=" + mMultiDexEnabled + ", mJarJarRuleFiles=" + mJarJarRuleFiles + '}'; } }