aboutsummaryrefslogtreecommitdiff
path: root/builder/src/main/java/com/android/builder/internal/BuildConfigGenerator.java
diff options
context:
space:
mode:
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.java111
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);
- }
-}