All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.imqa.injector.BuildLocation Maven / Gradle / Ivy

There is a newer version: 2.25.11
Show newest version
package io.imqa.injector;

import java.io.File;
import java.util.ArrayList;

import io.imqa.injector.util.BuildOption;
import io.imqa.injector.util.PathBuilder;
import io.imqa.injector.util.StringUtil;


public class BuildLocation {


    public static void addBuildLocation(String rootLocation, BuildOption.BUILD_LOCATION_TYPE locationType, BuildType buildType, ArrayList buildLocationList, Flavor flavor) {
        PathBuilder builder = PathBuilder.getBuilder(rootLocation);

        switch (locationType) {
            case kotlin:
                builder.addPath("/tmp/kotlin-classes");
                if (!flavor.flavorName.equals("")) {
                    builder.addPath(flavor.flavorName + StringUtil.toCapitalize(buildType.typeName));
                } else {
                    builder.addPath(buildType.typeName);
                }
                break;
            case javacCompileClasses:
                builder.addPath("/intermediates/javac");
                if (!flavor.flavorName.equals("")) {
                    builder.addPath(flavor.flavorName + StringUtil.toCapitalize(buildType.typeName));
                } else {
                    builder.addPath(buildType.typeName);
                }
                builder.addPath("compile" + StringUtil.toCapitalize(flavor.flavorName) + StringUtil.toCapitalize(buildType.typeName) + "JavaWithJavac")
                        .addPath("classes");
                break;
            case javacClasses:
                builder.addPath("/intermediates/javac");
                if (!flavor.flavorName.equals("")) {
                    builder.addPath(flavor.flavorName + StringUtil.toCapitalize(buildType.typeName));
                } else {
                    builder.addPath(buildType.typeName);
                }
                builder.addPath("classes");
                break;
            case classes:
            default:
                builder.addPath("/intermediates/classes/");
                if (!flavor.flavorName.equals("")) {
                    builder.addPath(flavor.flavorName + StringUtil.toCapitalize(buildType.typeName));
                } else {
                    builder.addPath(buildType.typeName);
                }
        }
        // File location it
        buildLocationList.add(builder.toString());
    }

    public static void addInstantBuildLocation(String rootLocation, BuildType buildType, ArrayList buildLocationList, Flavor flavor) {
        PathBuilder builder = PathBuilder.getBuilder(rootLocation)
                .addPath("/intermediates/transforms/instantRun");
        if (!flavor.flavorName.equals("")) {
            builder.addPath(flavor.flavorName);
        }
        builder.addPath(buildType.typeName);
        File dirs = new File(builder.toString());
        if (dirs.exists()) {
            File[] middleDirs = dirs.listFiles();

            // 디렉토리 순회하며 발견한 클래스 Inject
            if (middleDirs != null) {
                for (File dir : middleDirs) {
                    buildLocationList.add(dir.getAbsolutePath());
                }
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy