diff options
Diffstat (limited to 'builder/src/main/java/com/android/builder/internal/BuildConfigGenerator.java')
-rw-r--r-- | builder/src/main/java/com/android/builder/internal/BuildConfigGenerator.java | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/builder/src/main/java/com/android/builder/internal/BuildConfigGenerator.java b/builder/src/main/java/com/android/builder/internal/BuildConfigGenerator.java deleted file mode 100644 index 2d01734..0000000 --- a/builder/src/main/java/com/android/builder/internal/BuildConfigGenerator.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2011 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.builder.internal; - -import com.android.annotations.NonNull; -import com.android.annotations.Nullable; -import com.google.common.collect.Maps; - -import java.io.File; -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import static com.google.common.base.Preconditions.checkNotNull; - -/** - * Class able to generate a BuildConfig class in Android project. - * The BuildConfig class contains constants related to the build target. - */ -public class BuildConfigGenerator { - - private final static String TEMPLATE = "BuildConfig.template"; - private final static String PH_PACKAGE = "#PACKAGE#"; - private final static String PH_DEBUG = "#DEBUG#"; - private final static String PH_LINES = "#ADDITIONAL_LINES#"; - - private final String mGenFolder; - private final String mAppPackage; - private final boolean mDebug; - - public final static String BUILD_CONFIG_NAME = "BuildConfig.java"; - - /** - * Creates a generator - * @param genFolder the gen folder of the project - * @param appPackage the application package - * @param debug whether it's a debug build - */ - public BuildConfigGenerator(@NonNull String genFolder, @NonNull String appPackage, - boolean debug) { - mGenFolder = checkNotNull(genFolder); - mAppPackage = checkNotNull(appPackage); - mDebug = debug; - } - - /** - * Returns a File representing where the BuildConfig class will be. - */ - public File getFolderPath() { - File genFolder = new File(mGenFolder); - return new File(genFolder, mAppPackage.replace('.', File.separatorChar)); - } - - public File getBuildConfigFile() { - File folder = getFolderPath(); - return new File(folder, BUILD_CONFIG_NAME); - } - - /** - * Generates the BuildConfig class. - * @param additionalLines a list of additional lines to be added to the class. - */ - public void generate(@Nullable List<String> additionalLines) throws IOException { - Map<String, String> map = Maps.newHashMap(); - map.put(PH_PACKAGE, mAppPackage); - - // Hack (see IDEA-100046): We want to avoid reporting "condition is always true" - // from the data flow inspection, so use a non-constant value. However, that defeats - // the purpose of this flag (when not in debug mode, if (BuildConfig.DEBUG && ...) will - // be completely removed by the compiler), so as a hack we do it only for the case - // where debug is true, which is the most likely scenario while the user is looking - // at source code. - //map.put(PH_DEBUG, Boolean.toString(mDebug)); - map.put(PH_DEBUG, mDebug ? "Boolean.parseBoolean(\"true\")" : "false"); - - if (additionalLines != null) { - StringBuilder sb = new StringBuilder(); - for (String line : additionalLines) { - sb.append(" ").append(line).append('\n'); - } - map.put(PH_LINES, sb.toString()); - - } else { - map.put(PH_LINES, ""); - } - - File pkgFolder = getFolderPath(); - if (!pkgFolder.isDirectory()) { - pkgFolder.mkdirs(); - } - - File buildConfigJava = new File(pkgFolder, BUILD_CONFIG_NAME); - - TemplateProcessor processor = new TemplateProcessor( - BuildConfigGenerator.class.getResourceAsStream(TEMPLATE), map); - processor.generate(buildConfigJava); - } -} |