com.github.signed.sandboxes.maven.ZipDumper.java Source code

Java tutorial

Introduction

Here is the source code for com.github.signed.sandboxes.maven.ZipDumper.java

Source

package com.github.signed.sandboxes.maven;

import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;
import org.apache.commons.io.FilenameUtils;

import java.io.File;
import java.util.List;

public class ZipDumper {

    void dumpZipContent(File file, LegalRelevantFiles legalRelevantFiles) throws ZipException {
        ZipFile zipFile = new ZipFile(file);
        List<FileHeader> fileHeaders = zipFile.getFileHeaders();

        for (FileHeader fileHeader : fileHeaders) {
            classifyFile(legalRelevantFiles, fileHeader);
        }
    }

    private void classifyFile(LegalRelevantFiles legalRelevantFiles, FileHeader fileHeader) {
        if (fileHeader.isDirectory()) {
            return;
        }

        String extension = FilenameUtils.getExtension(fileHeader.getFileName());
        if ("class".equals(extension)) {
            return;
        }

        String baseName = FilenameUtils.getBaseName(fileHeader.getFileName());
        if ("license".equalsIgnoreCase(baseName)) {
            legalRelevantFiles.licenseFile(fileHeader);
        } else if ("notice".equalsIgnoreCase(baseName)) {
            legalRelevantFiles.noticeFile(fileHeader);
        }
    }
}