com.rapid7.container.analyzer.docker.packages.settings.CustomParserSettingsBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of docker-image-analyzer Show documentation
Show all versions of docker-image-analyzer Show documentation
Extracts, parses, and analyzes Docker images into Java objects with JSON mappings.
package com.rapid7.container.analyzer.docker.packages.settings;
import com.google.common.collect.ImmutableMap;
import com.rapid7.container.analyzer.docker.analyzer.LayerFileHandler;
import com.rapid7.container.analyzer.docker.fingerprinter.DotNetFingerprinter;
import com.rapid7.container.analyzer.docker.model.image.PackageType;
import com.rapid7.container.analyzer.docker.packages.DotNetParser;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
public class CustomParserSettingsBuilder {
// Mappings for customer parsers
private static final ImmutableMap FINGERPRINTER_MAPPINGS = ImmutableMap.of(
PackageType.DOTNET, new DotNetFingerprinter(new DotNetParser())
);
public static final CustomParserSettingsBuilder ALL = CustomParserSettingsBuilder.builder()
.addFingerprinters(FINGERPRINTER_MAPPINGS.keySet());
private final Set enabledFingerprinters = new HashSet<>();
private CustomParserSettingsBuilder() {
}
public static CustomParserSettingsBuilder builder() {
return new CustomParserSettingsBuilder();
}
public CustomParserSettingsBuilder addFingerprinter(PackageType packageType) {
LayerFileHandler handler = FINGERPRINTER_MAPPINGS.get(packageType);
if (handler != null) {
enabledFingerprinters.add(handler);
}
return this;
}
public CustomParserSettingsBuilder addFingerprinters(Collection packageTypes) {
for (PackageType packageType : packageTypes) {
addFingerprinter(packageType);
}
return this;
}
public Set getFingerprinters() {
return enabledFingerprinters;
}
}