View Javadoc
1   package org.codehaus.plexus.archiver.snappy;
2   
3   import javax.annotation.Nonnull;
4   import javax.annotation.WillNotClose;
5   import javax.inject.Named;
6   
7   import java.io.File;
8   import java.io.IOException;
9   import java.io.InputStream;
10  
11  import org.codehaus.plexus.archiver.util.Streams;
12  import org.codehaus.plexus.components.io.attributes.FileAttributes;
13  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
14  import org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection;
15  
16  /**
17   * Implementation of {@link org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection} for
18   * snappy compressed files.
19   */
20  @Named("snappy")
21  public class PlexusIoSnappyResourceCollection extends PlexusIoCompressedFileResourceCollection {
22  
23      @Nonnull
24      @Override
25      protected @WillNotClose InputStream getInputStream(File file) throws IOException {
26          return SnappyUnArchiver.getSnappyInputStream(Streams.fileInputStream(file));
27      }
28  
29      @Override
30      protected PlexusIoResourceAttributes getAttributes(File file) throws IOException {
31          return new FileAttributes(file);
32      }
33  
34      @Override
35      protected String getDefaultExtension() {
36          return ".snappy";
37      }
38  }