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  import java.util.HashMap;
11  
12  import org.codehaus.plexus.archiver.util.Streams;
13  import org.codehaus.plexus.components.io.attributes.FileAttributes;
14  import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
15  import org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection;
16  
17  /**
18   * Implementation of {@link org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection} for
19   * snappy compressed files.
20   */
21  @Named("snappy")
22  public class PlexusIoSnappyResourceCollection extends PlexusIoCompressedFileResourceCollection {
23  
24      @Nonnull
25      @Override
26      protected @WillNotClose InputStream getInputStream(File file) throws IOException {
27          return SnappyUnArchiver.getSnappyInputStream(Streams.fileInputStream(file));
28      }
29  
30      @Override
31      protected PlexusIoResourceAttributes getAttributes(File file) throws IOException {
32          return new FileAttributes(file, new HashMap<Integer, String>(), new HashMap<Integer, String>());
33      }
34  
35      @Override
36      protected String getDefaultExtension() {
37          return ".snappy";
38      }
39  }