Package ghidra.framework.data
Interface ContentHandler
- 
- All Superinterfaces:
- ExtensionPoint
 - All Known Implementing Classes:
- DataTypeArchiveContentHandler,- DBContentHandler,- ProgramContentHandler
 
 public interface ContentHandler extends ExtensionPoint NOTE: ALL ContentHandler CLASSES MUST END IN "ContentHandler". If not, the ClassSearcher will not find them.ContentHandlerdefines an application interface for converting between a specific domain object implementation and folder item storage. This interface also defines a method which provides an appropriate icon corresponding to the content.
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPointExtensionPoint.Exclude, ExtensionPoint.Util
 
- 
 - 
Field SummaryFields Modifier and Type Field Description static java.lang.StringMISSING_CONTENTstatic java.lang.StringUNKNOWN_CONTENT
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Modifier and Type Method Description longcreateFile(FileSystem fs, FileSystem userfs, java.lang.String path, java.lang.String name, DomainObject domainObject, TaskMonitor monitor)Creates a new folder item within a specified file-system.ChangeSetgetChangeSet(FolderItem versionedFolderItem, int olderVersion, int newerVersion)Returns the object change data which includes changes made to the specified olderVersion through to the specified newerVersion.java.lang.StringgetContentType()Returns list of unique content-types supported.java.lang.StringgetContentTypeDisplayString()A string that is meant to be presented to the user.java.lang.StringgetDefaultToolName()Returns the name of the default tool that should be used to open this content typeDomainObjectAdaptergetDomainObject(FolderItem item, FileSystem userfs, long checkoutId, boolean okToUpgrade, boolean okToRecover, java.lang.Object consumer, TaskMonitor monitor)Open a folder item for update.java.lang.Class<? extends DomainObject>getDomainObjectClass()Returns domain object implementation class supported.javax.swing.IcongetIcon()Returns the Icon associated with this handlers content type.DomainObjectAdaptergetImmutableObject(FolderItem item, java.lang.Object consumer, int version, int minChangeVersion, TaskMonitor monitor)Open a folder item for immutable use.DomainObjectMergeManagergetMergeManager(DomainObject resultsObj, DomainObject sourceObj, DomainObject originalObj, DomainObject latestObj)Get an instance of a suitable merge manager to be used during the merge of a Versioned object which has been modified by another user since it was last merged or checked-out.DomainObjectAdaptergetReadOnlyObject(FolderItem item, int version, boolean okToUpgrade, java.lang.Object consumer, TaskMonitor monitor)Open a folder item for read-only use.booleanisPrivateContentType()Returns true if the content type is always private (i.e., can not be added to the versioned filesystem).voidremoveUserDataFile(FolderItem item, FileSystem userFilesystem)Remove user data file associated with an existing folder item.voidsaveUserDataFile(DomainObject associatedDomainObj, DBHandle userDbh, FileSystem userfs, TaskMonitor monitor)Create user data file associated with existing content.
 
- 
- 
- 
Field Detail- 
UNKNOWN_CONTENTstatic final java.lang.String UNKNOWN_CONTENT - See Also:
- Constant Field Values
 
 - 
MISSING_CONTENTstatic final java.lang.String MISSING_CONTENT - See Also:
- Constant Field Values
 
 
- 
 - 
Method Detail- 
createFilelong createFile(FileSystem fs, FileSystem userfs, java.lang.String path, java.lang.String name, DomainObject domainObject, TaskMonitor monitor) throws java.io.IOException, InvalidNameException, CancelledException Creates a new folder item within a specified file-system. If fs is versioned, the resulting item is marked as checked-out within the versioned file-system. The specified domainObj will become associated with the newly created database.- Parameters:
- fs- the file system in which to create the folder item
- userfs- file system which contains associated user data
- path- the path of the folder item
- name- the name of the new folder item
- domainObject- the domain object to store in the newly created folder item
- monitor- the monitor that allows the user to cancel
- Returns:
- checkout ID for new item
- Throws:
- java.io.IOException- if an i/o error occurs
- InvalidNameException- if the specified name contains invalid characters
- CancelledException- if the user cancels
 
 - 
getImmutableObjectDomainObjectAdapter getImmutableObject(FolderItem item, java.lang.Object consumer, int version, int minChangeVersion, TaskMonitor monitor) throws java.io.IOException, CancelledException, VersionException Open a folder item for immutable use. If any changes are attempted on the returned object, an IllegalStateException state exception may be thrown.- Parameters:
- item- stored folder item
- consumer- consumer of the returned object
- version- version of the stored folder item to be opened. DomainFile.DEFAULT_VERSION (-1) should be specified when not opening a specific file version.
- minChangeVersion- the minimum version which should be included in the change set for the returned object. A value of -1 indicates the default change set.
- monitor- the monitor that allows the user to cancel
- Returns:
- immutable domain object
- Throws:
- java.io.IOException- if a folder item access error occurs
- CancelledException- if operation is cancelled by user
- VersionException- if unable to handle file content due to version difference which could not be handled.
 
 - 
getReadOnlyObjectDomainObjectAdapter getReadOnlyObject(FolderItem item, int version, boolean okToUpgrade, java.lang.Object consumer, TaskMonitor monitor) throws java.io.IOException, VersionException, CancelledException Open a folder item for read-only use. While changes are permitted on the returned object, the original folder item may not be overwritten / updated.- Parameters:
- item- stored folder item
- version- version of the stored folder item to be opened. DomainFile.DEFAULT_VERSION should be specified when not opening a specific file version.
- okToUpgrade- if true a version upgrade to the content will be done if necessary.
- consumer- consumer of the returned object
- monitor- the monitor that allows the user to cancel
- Returns:
- read-only domain object
- Throws:
- java.io.IOException- if a folder item access error occurs
- CancelledException- if operation is cancelled by user
- VersionException- if unable to handle file content due to version difference which could not be handled.
 
 - 
getDomainObjectDomainObjectAdapter getDomainObject(FolderItem item, FileSystem userfs, long checkoutId, boolean okToUpgrade, boolean okToRecover, java.lang.Object consumer, TaskMonitor monitor) throws java.io.IOException, CancelledException, VersionException Open a folder item for update. Changes made to the returned object may be saved to the original folder item.- Parameters:
- item- stored folder item
- userfs- file system which contains associated user data
- checkoutId- an appropriate checout ID required to update the specified folder item.
- okToUpgrade- if true a version upgrade to the content will be done if necessary.
- okToRecover- if true an attempt to recover any unsaved changes resulting from a crash will be attempted.
- consumer- consumer of the returned object
- monitor- cancelable task monitor
- Returns:
- updateable domain object
- Throws:
- java.io.IOException- if a folder item access error occurs
- CancelledException- if operation is cancelled by user
- VersionException- if unable to handle file content due to version difference which could not be handled.
 
 - 
getChangeSetChangeSet getChangeSet(FolderItem versionedFolderItem, int olderVersion, int newerVersion) throws VersionException, java.io.IOException Returns the object change data which includes changes made to the specified olderVersion through to the specified newerVersion.- Parameters:
- versionedFolderItem- versioned folder item
- olderVersion- the older version number
- newerVersion- the newer version number
- Returns:
- the set of changes that were made
- Throws:
- VersionException- if a database version change prevents reading of data.
- java.io.IOException- if a folder item access error occurs
 
 - 
getMergeManagerDomainObjectMergeManager getMergeManager(DomainObject resultsObj, DomainObject sourceObj, DomainObject originalObj, DomainObject latestObj) Get an instance of a suitable merge manager to be used during the merge of a Versioned object which has been modified by another user since it was last merged or checked-out.- Parameters:
- resultsObj- object to which merge results should be written
- sourceObj- object which contains user's changes to be merged
- originalObj- object which corresponds to checked-out version state
- latestObj- object which corresponds to latest version with which the sourceObj must be merged.
- Returns:
- merge manager
 
 - 
isPrivateContentTypeboolean isPrivateContentType() Returns true if the content type is always private (i.e., can not be added to the versioned filesystem).
 - 
getContentTypejava.lang.String getContentType() Returns list of unique content-types supported. A minimum of one content-type will be returned. If more than one is returned, these are considered equivalent aliases.
 - 
getContentTypeDisplayStringjava.lang.String getContentTypeDisplayString() A string that is meant to be presented to the user.
 - 
getIconjavax.swing.Icon getIcon() Returns the Icon associated with this handlers content type.
 - 
getDefaultToolNamejava.lang.String getDefaultToolName() Returns the name of the default tool that should be used to open this content type
 - 
getDomainObjectClassjava.lang.Class<? extends DomainObject> getDomainObjectClass() Returns domain object implementation class supported.
 - 
saveUserDataFilevoid saveUserDataFile(DomainObject associatedDomainObj, DBHandle userDbh, FileSystem userfs, TaskMonitor monitor) throws CancelledException, java.io.IOException Create user data file associated with existing content. This facilitates the lazy creation of the user data file.- Parameters:
- associatedDomainObj- associated domain object corresponding to this content handler
- userDbh- user data handle
- userfs- private user data filesystem
- monitor- task monitor
- Throws:
- java.io.IOException- if an access error occurs
- CancelledException- if operation is cancelled by user
 
 - 
removeUserDataFilevoid removeUserDataFile(FolderItem item, FileSystem userFilesystem) throws java.io.IOException Remove user data file associated with an existing folder item.- Parameters:
- item- folder item
- userFilesystem-
- Throws:
- java.io.IOException- if an access error occurs
 
 
- 
 
-