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
;
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
) {
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
);
42 private VirtualFile
outputChild(String name
) {
43 return myOutputFile
!= null ? myOutputFile
.findChild(name
) : null;