migrated to artifacts
[fedora-idea.git] / java / compiler / impl / src / com / intellij / packaging / impl / compiler / CopyToDirectoryInstructionCreator.java
blob205619d33a26658d8e35f069bd56c47bdb95ace8
1 package com.intellij.packaging.impl.compiler;
3 import com.intellij.compiler.impl.packagingCompiler.ExplodedDestinationInfo;
4 import com.intellij.compiler.impl.packagingCompiler.JarInfo;
5 import com.intellij.openapi.vfs.VirtualFile;
6 import com.intellij.packaging.elements.IncrementalCompilerInstructionCreator;
7 import org.jetbrains.annotations.NotNull;
8 import org.jetbrains.annotations.Nullable;
10 /**
11 * @author nik
13 public class CopyToDirectoryInstructionCreator extends IncrementalCompilerInstructionCreatorBase {
14 private final String myOutputPath;
15 private final @Nullable VirtualFile myOutputFile;
17 public CopyToDirectoryInstructionCreator(ArtifactsProcessingItemsBuilderContext context, String outputPath, @Nullable VirtualFile outputFile) {
18 super(context);
19 myOutputPath = outputPath;
20 myOutputFile = outputFile;
23 public void addFileCopyInstruction(@NotNull VirtualFile file, @NotNull String outputFileName) {
24 myContext.addDestination(file, new ExplodedDestinationInfo(myOutputPath + "/" + outputFileName, outputChild(outputFileName)));
27 public IncrementalCompilerInstructionCreator subFolder(@NotNull String directoryName) {
28 return new CopyToDirectoryInstructionCreator(myContext, myOutputPath + "/" + directoryName, outputChild(directoryName));
31 public IncrementalCompilerInstructionCreator archive(@NotNull String archiveFileName) {
32 String jarOutputPath = myOutputPath + "/" + archiveFileName;
33 final JarInfo jarInfo = new JarInfo();
34 VirtualFile outputFile = outputChild(archiveFileName);
35 myContext.registerJarFile(jarInfo, jarOutputPath);
36 final ExplodedDestinationInfo destination = new ExplodedDestinationInfo(jarOutputPath, outputFile);
37 jarInfo.addDestination(destination);
38 return new PackIntoArchiveInstructionCreator(myContext, jarInfo, "", destination);
41 @Nullable
42 private VirtualFile outputChild(String name) {
43 return myOutputFile != null ? myOutputFile.findChild(name) : null;