1 package org.codehaus.plexus.archiver;
2
3 import javax.annotation.CheckForNull;
4
5 import org.codehaus.plexus.components.io.filemappers.FileMapper;
6 import org.codehaus.plexus.components.io.fileselectors.FileSelector;
7 import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
8
9 /**
10 * A file set is a set of files, which may be added to an
11 * archive.
12 *
13 * @since 1.0-alpha-9
14 */
15 public interface BaseFileSet {
16
17 /**
18 * Returns the prefix, which the file sets contents shall
19 * have.
20 */
21 @CheckForNull
22 String getPrefix();
23
24 /**
25 * Returns a string of patterns, which included files
26 * should match.
27 */
28 @CheckForNull
29 String[] getIncludes();
30
31 /**
32 * Returns a string of patterns, which excluded files
33 * should match.
34 */
35 @CheckForNull
36 String[] getExcludes();
37
38 /**
39 * Returns, whether the include/exclude patterns are
40 * case-sensitive.
41 */
42 boolean isCaseSensitive();
43
44 /**
45 * Returns, whether the default excludes are being
46 * applied.
47 */
48 boolean isUsingDefaultExcludes();
49
50 /**
51 * Returns, whether empty directories are being included.
52 */
53 boolean isIncludingEmptyDirectories();
54
55 /**
56 * Returns a set of file selectors, which should be used
57 * to select the included files.
58 */
59 @CheckForNull
60 FileSelector[] getFileSelectors();
61
62 /**
63 * Returns the InputStreamTransformers that can be applied to this fileset
64 *
65 * @return The transformers.
66 */
67 InputStreamTransformer getStreamTransformer();
68
69 /**
70 * Returns a set of file mappers, which should be used
71 * to change the filename of the included files.
72 */
73 @CheckForNull
74 FileMapper[] getFileMappers();
75 }