Class GhidraToolTemplate

java.lang.Object
ghidra.framework.project.tool.GhidraToolTemplate
All Implemented Interfaces:
ToolTemplate

public class GhidraToolTemplate extends Object implements ToolTemplate
Implementation for a tool template that has the class names of the plugins that are part of the tool, and the tool's icon.
  • Field Details

    • TEMPLATE_NAME

      public static String TEMPLATE_NAME
  • Constructor Details

    • GhidraToolTemplate

      public GhidraToolTemplate(org.jdom.Element root, String path)
      Constructor.
      Parameters:
      root - XML element that contains the tool template data
      path - the path of the template
    • GhidraToolTemplate

      public GhidraToolTemplate(ToolIconURL iconURL, org.jdom.Element toolElement, Class<?>[] supportedDataTypes)
  • Method Details

    • getName

      public String getName()
      Description copied from interface: ToolTemplate
      Get the name for the tool.
      Specified by:
      getName in interface ToolTemplate
      Returns:
      the name
    • getPath

      public String getPath()
      Description copied from interface: ToolTemplate
      Returns the path from whence this tool template came; may be null if the tool was not loaded from the filesystem
      Specified by:
      getPath in interface ToolTemplate
      Returns:
      the path
    • setName

      public void setName(String name)
      Description copied from interface: ToolTemplate
      Set the name for the tool template.
      Specified by:
      setName in interface ToolTemplate
      Parameters:
      name - new tool template name
    • getIcon

      public ImageIcon getIcon()
      Description copied from interface: ToolTemplate
      Get the icon for this tool template. This is equivalent to calling getIconURL().getIcon()
      Specified by:
      getIcon in interface ToolTemplate
      Returns:
      the icon for this tool template.
    • getSupportedDataTypes

      public Class<?>[] getSupportedDataTypes()
      Description copied from interface: ToolTemplate
      Get the classes of the data types that this tool supports, i.e., what data types can be dropped onto this tool.
      Specified by:
      getSupportedDataTypes in interface ToolTemplate
      Returns:
      list of supported data type classes.
    • getIconURL

      public ToolIconURL getIconURL()
      Get the icon URL.
      Specified by:
      getIconURL in interface ToolTemplate
      Returns:
      the iconURL for this tool template
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • restoreFromXml

      public void restoreFromXml(org.jdom.Element root)
      Description copied from interface: ToolTemplate
      Restore this object from a saved XML element.
      Specified by:
      restoreFromXml in interface ToolTemplate
      Parameters:
      root - element to restore this object into
    • saveToXml

      public org.jdom.Element saveToXml()
      Description copied from interface: ToolTemplate
      Save this object to an XML Element.
      Specified by:
      saveToXml in interface ToolTemplate
      Returns:
      the ToolConfig saved as an XML element
    • setIconURL

      public void setIconURL(ToolIconURL url)
    • getToolElement

      public org.jdom.Element getToolElement()
      Description copied from interface: ToolTemplate
      This returns the XML element that represents the tool part of the overall XML hierarchy.
      Specified by:
      getToolElement in interface ToolTemplate
      Returns:
      the XML element that represents the tool part of the overall XML hierarchy.
    • createTool

      public PluginTool createTool(Project project)
      Description copied from interface: ToolTemplate
      Creates a tool like only this template knows how.
      Specified by:
      createTool in interface ToolTemplate
      Parameters:
      project - the project in which the tool will be living.
      Returns:
      a new tool for this template implementation.