in dummy-transform/src/main/java/com/uber/okbuck/transform/DummyTransform.java [55:116]
public void transform(TransformInvocation transformInvocation)
throws TransformException, InterruptedException, IOException {
if (transformInvocation.getOutputProvider() == null) {
throw new IllegalArgumentException("Transform invocation needs a valid output provider.");
}
File outputDir =
transformInvocation
.getOutputProvider()
.getContentLocation(TRANSFORM_OUTPUT, getOutputTypes(), getScopes(), Format.DIRECTORY);
for (TransformInput input : transformInvocation.getInputs()) {
for (JarInput inputJar : input.getJarInputs()) {
File outputJar =
transformInvocation
.getOutputProvider()
.getContentLocation(inputJar.getName(), getOutputTypes(), getScopes(), Format.JAR);
outputJar.getParentFile().mkdirs();
if (!transformInvocation.isIncremental() || inputJar.getStatus() != Status.REMOVED) {
FileUtils.copyFile(inputJar.getFile(), outputJar);
}
}
for (DirectoryInput directoryInput : input.getDirectoryInputs()) {
File inputDir = directoryInput.getFile();
if (transformInvocation.isIncremental()) {
for (Map.Entry<File, Status> changedInput : directoryInput.getChangedFiles().entrySet()) {
File inputFile = changedInput.getKey();
File outputFile =
new File(outputDir, relativePossiblyNonExistingPath(inputFile, inputDir));
switch (changedInput.getValue()) {
case REMOVED:
FileUtils.delete(outputFile);
break;
case ADDED:
case CHANGED:
FileUtils.copyFile(inputFile, outputFile);
}
}
} else {
FileUtils.deleteDirectoryContents(inputDir);
inputDir.mkdirs();
Iterable<File> files = FileUtils.getAllFiles(inputDir);
for (File inputFile : files) {
File outputFile = new File(outputDir, relativePath(inputFile, inputDir));
FileUtils.copyFile(inputFile, outputFile);
}
}
}
}
}