package org.intellij.sonar.configuration;
import java.io.File;
import com.intellij.openapi.util.text.StringUtil;
import org.intellij.sonar.analysis.SonarQubeInspectionContext;
import org.jetbrains.annotations.NotNull;
public class WorkingDirs {
public static final String PROJECT = "<PROJECT>";
public static final String MODULE = "<MODULE>";
@NotNull
public static String withDefaultForProject(String workingDirSelection) {
if (StringUtil.isEmpty(workingDirSelection)) return PROJECT;
return workingDirSelection;
}
@NotNull
public static String withDefaultForModule(String workingDirSelection) {
if (StringUtil.isEmpty(workingDirSelection)) return MODULE;
return workingDirSelection;
}
public static File computeFrom(@NotNull SonarQubeInspectionContext.EnrichedSettings enrichedSettings) {
File workingDir;
if (enrichedSettings.settings != null && Boolean.TRUE.equals(enrichedSettings.settings
.getUseAlternativeWorkingDir())) {
workingDir = new File(enrichedSettings.settings.getAlternativeWorkingDirPath());
} else {
final String workingDirSelection = withDefaultForModule(
enrichedSettings.settings != null
? enrichedSettings.settings.getWorkingDirSelection()
: null
);
if (MODULE.equals(workingDirSelection)) {
if (enrichedSettings.module != null && enrichedSettings.module.getModuleFile() != null) {
workingDir = new File(enrichedSettings.module.getModuleFile().getParent().getPath());
} else {
workingDir = new File(enrichedSettings.project.getBasePath());
}
} else
if (PROJECT.equals(workingDirSelection)) {
workingDir = new File(enrichedSettings.project.getBasePath());
} else {
workingDir = new File(enrichedSettings.project.getBasePath());
}
}
return workingDir;
}
}