package pl.touk.sputnik.review.locator; import static org.apache.commons.lang3.StringUtils.substringBeforeLast; import java.util.List; import javax.annotation.Nullable; import lombok.AllArgsConstructor; import pl.touk.sputnik.review.Review; import pl.touk.sputnik.review.ReviewFile; import com.google.common.base.Function; import com.google.common.collect.Lists; @AllArgsConstructor public abstract class AbstractBuildDirLocator implements BuildDirLocator { private final String sourceDir; private final String testDir; public List<String> getBuildDirs(Review review) { return Lists.transform(review.getFiles(), new Function<ReviewFile, String>() { @Nullable @Override public String apply(ReviewFile file) { if (file.getReviewFilename().contains(sourceDir)) { return substringBeforeLast(file.getReviewFilename(), sourceDir).concat(getMainBuildDir()); } if (file.getReviewFilename().contains(testDir)) { return substringBeforeLast(file.getReviewFilename(), testDir).concat(getTestBuildDir()); } return file.getSourceDir(); } }); } protected abstract String getMainBuildDir(); protected abstract String getTestBuildDir(); }