Package ghidra.app.util.opinion

# Class SomLoader

java.lang.Object
ghidra.app.util.opinion.AbstractProgramLoader
ghidra.app.util.opinion.AbstractProgramWrapperLoader
ghidra.app.util.opinion.SomLoader

All Implemented Interfaces:
  `Loader`, `ExtensionPoint`, `Comparable<Loader>`

public class SomLoader extends AbstractProgramWrapperLoader
A `Loader` for System Object Model files

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface ghidra.app.util.opinion.Loader

  `Loader.ImporterSettings`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `SOM_NAME`

  ### Fields inherited from class ghidra.app.util.opinion.AbstractProgramLoader

  `ANCHOR_LABELS_OPTION_NAME, APPLY_LABELS_OPTION_NAME`

  ### Fields inherited from interface ghidra.app.util.opinion.Loader

  `COMMAND_LINE_ARG_PREFIX, loggingDisabled, OPTIONS_PROJECT_SAVE_STATE_KEY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SomLoader()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Collection<LoadSpec>`
  `findSupportedLoadSpecs(ByteProvider provider)`
  If this `Loader` supports loading the given `ByteProvider`, this methods returns a `Collection` of all supported `LoadSpec`s that contain discovered load specification information that this `Loader` will need to load.
  `String`
  `getName()`
  Gets the `Loader`'s name, which is used both for display purposes, and to identify the `Loader` in the opinion files.
  `protected void`
  `load(Program program, Loader.ImporterSettings settings)`
  Loads bytes in a particular format into the given `Program`.

  ### Methods inherited from class ghidra.app.util.opinion.AbstractProgramWrapperLoader

  `getTier, getTierPriority, loadProgram, loadProgramInto`

  ### Methods inherited from class ghidra.app.util.opinion.AbstractProgramLoader

  `addExternalBlock, createDefaultMemoryBlocks, createProgram, createProgram, generateBlockName, getDefaultOptions, getLanguageService, load, loadInto, markAsFunction, postLoadCleanup, postLoadProgramFixups, setProgramProperties, shouldApplyProcessorLabelsByDefault, validateOptions`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ghidra.app.util.opinion.Loader

  `compareTo, getPreferredFileName, loadsIntoNewFolder, supportsLoadIntoProgram, supportsLoadIntoProgram`

- ## Field Details

  - ### SOM_NAME

    public static final String SOM_NAME
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### SomLoader

    public SomLoader()

- ## Method Details

  - ### findSupportedLoadSpecs

    public Collection<LoadSpec> findSupportedLoadSpecs(ByteProvider provider) throws IOException
    Description copied from interface: `Loader`
    If this `Loader` supports loading the given `ByteProvider`, this methods returns a `Collection` of all supported `LoadSpec`s that contain discovered load specification information that this `Loader` will need to load. If this `Loader` cannot support loading the given `ByteProvider`, an empty `Collection` is returned.
    Parameters:
      `provider` - The bytes being loaded.
    Returns:
      A `Collection` of `LoadSpec`s that this `Loader` supports loading, or an empty `Collection` if this `Loader` doesn't support loading the given `ByteProvider`.
    Throws:
      `IOException` - if there was an IO-related issue finding the `LoadSpec`s.

  - ### load

    protected void load(Program program, Loader.ImporterSettings settings) throws IOException, CancelledException
    Description copied from class: `AbstractProgramWrapperLoader`
    Loads bytes in a particular format into the given `Program`.
    Specified by:
      `load` in class `AbstractProgramWrapperLoader`
    Parameters:
      `program` - The `Program` to load into.
      `settings` - The `Loader.ImporterSettings`.
    Throws:
      `IOException` - if there was an IO-related problem loading.
      `CancelledException` - if the user cancelled the load.

  - ### getName

    public String getName()
    Description copied from interface: `Loader`
    Gets the `Loader`'s name, which is used both for display purposes, and to identify the `Loader` in the opinion files.
    Returns:
      The `Loader`'s name.