GP-5343: Importer filesystem mirroring

This commit is contained in:
Ryan Kurtz 2025-07-10 14:35:04 -04:00
parent 8c4e368fb2
commit c0fe84f0bd
68 changed files with 1494 additions and 1359 deletions

View file

@ -20,13 +20,11 @@ import java.util.*;
import ghidra.app.util.Option;
import ghidra.app.util.bin.ByteProvider;
import ghidra.app.util.importer.MessageLog;
import ghidra.app.util.opinion.AbstractProgramWrapperLoader;
import ghidra.app.util.opinion.LoadSpec;
import ghidra.framework.model.DomainObject;
import ghidra.program.model.listing.Program;
import ghidra.util.exception.CancelledException;
import ghidra.util.task.TaskMonitor;
/**
* Provide class-level documentation that describes what this loader does.
@ -52,18 +50,17 @@ public class SkeletonLoader extends AbstractProgramWrapperLoader {
}
@Override
protected void load(ByteProvider provider, LoadSpec loadSpec, List<Option> options,
Program program, TaskMonitor monitor, MessageLog log)
protected void load(Program prgram, ImporterSettings settiings)
throws CancelledException, IOException {
// Load the bytes from 'provider' into the 'program'.
// Load the bytes from 'settings.provider()' into the 'program'.
}
@Override
public List<Option> getDefaultOptions(ByteProvider provider, LoadSpec loadSpec,
DomainObject domainObject, boolean isLoadIntoProgram) {
List<Option> list =
super.getDefaultOptions(provider, loadSpec, domainObject, isLoadIntoProgram);
DomainObject domainObject, boolean isLoadIntoProgram, boolean mirrorFsLayout) {
List<Option> list = super.getDefaultOptions(provider, loadSpec, domainObject,
isLoadIntoProgram, mirrorFsLayout);
// If this loader has custom options, add them to 'list'
list.add(new Option("Option name goes here", "Default option value goes here"));
@ -72,7 +69,8 @@ public class SkeletonLoader extends AbstractProgramWrapperLoader {
}
@Override
public String validateOptions(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program program) {
public String validateOptions(ByteProvider provider, LoadSpec loadSpec, List<Option> options,
Program program) {
// If this loader has custom options, validate them here. Not all options require
// validation.