View Javadoc
1   package org.codehaus.plexus.archiver.gzip;
2   
3   import javax.annotation.Nonnull;
4   import javax.inject.Named;
5   
6   import java.io.File;
7   import java.io.IOException;
8   import java.io.InputStream;
9   import java.util.HashMap;
10  import java.util.zip.GZIPInputStream;
11  
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  import static org.codehaus.plexus.archiver.util.Streams.bufferedInputStream;
17  import static org.codehaus.plexus.archiver.util.Streams.fileInputStream;
18  
19  /**
20   * Abstract base class for compressed files, aka singleton
21   * resource collections.
22   */
23  @Named("gzip")
24  public class PlexusIoGzipResourceCollection extends PlexusIoCompressedFileResourceCollection {
25  
26      @Override
27      protected String getDefaultExtension() {
28          return ".gz";
29      }
30  
31      @Nonnull
32      @Override
33      protected InputStream getInputStream(File file) throws IOException {
34          return bufferedInputStream(new GZIPInputStream(fileInputStream(file)));
35      }
36  
37      @Override
38      protected PlexusIoResourceAttributes getAttributes(File file) throws IOException {
39          return new FileAttributes(file, new HashMap<Integer, String>(), new HashMap<Integer, String>());
40      }
41  }