View Javadoc
1   package org.codehaus.plexus.archiver.util;
2   
3   import javax.annotation.Nonnull;
4   
5   import java.io.File;
6   
7   import org.codehaus.plexus.archiver.FileSet;
8   
9   /**
10   * Default implementation of {@link FileSet}.
11   *
12   * @since 1.0-alpha-9
13   */
14  public class DefaultFileSet extends AbstractFileSet<DefaultFileSet> implements FileSet {
15  
16      private File directory;
17  
18      private boolean followingSymLinks;
19  
20      public DefaultFileSet(File directory) {
21          this.directory = directory;
22      }
23  
24      public DefaultFileSet() {}
25  
26      /**
27       * Sets the file sets base directory.
28       */
29      public void setDirectory(@Nonnull File directory) {
30          this.directory = directory;
31      }
32  
33      @Nonnull
34      public File getDirectory() {
35          return directory;
36      }
37  
38      /**
39       * Sets whether symbolic links below the base directory are followed. Defaults to false.
40       *
41       * @since 4.14.0
42       */
43      public void setFollowingSymLinks(boolean followingSymLinks) {
44          this.followingSymLinks = followingSymLinks;
45      }
46  
47      @Override
48      public boolean isFollowingSymLinks() {
49          return followingSymLinks;
50      }
51  
52      /**
53       * @since 4.14.0
54       */
55      public DefaultFileSet followingSymLinks(boolean followingSymLinks) {
56          setFollowingSymLinks(followingSymLinks);
57          return this;
58      }
59  
60      public static DefaultFileSet fileSet(File directory) {
61          final DefaultFileSet defaultFileSet = new DefaultFileSet(directory);
62          return defaultFileSet;
63      }
64  }