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); } } }