Package ghidra.program.database
Class DataTypeArchiveContentHandler
java.lang.Object
ghidra.framework.data.DBContentHandler<DataTypeArchiveDB>
ghidra.program.database.DataTypeArchiveContentHandler
- All Implemented Interfaces:
ContentHandler<DataTypeArchiveDB>,ExtensionPoint
DataTypeArchiveContentHandler converts between DataTypeArchive instantiations
and FolderItem storage. This class also produces the appropriate Icon for
DataTypeArchive files.-
Field Summary
FieldsFields inherited from interface ghidra.framework.data.ContentHandler
MISSING_CONTENT, UNKNOWN_CONTENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongcreateFile(FileSystem fs, FileSystem userfs, String path, String name, DomainObject obj, TaskMonitor monitor) Creates a new folder item within a specified file-system.getChangeSet(FolderItem item, int fromVer, int toVer) Returns the object change data which includes changes made to the specified olderVersion through to the specified newerVersion.Returns a unique content-type identifierA string that is meant to be presented to the user.Returns the name of the default tool/template that should be used to open this content type.getDomainObject(FolderItem item, FileSystem userfs, long checkoutId, boolean okToUpgrade, boolean recover, Object consumer, TaskMonitor monitor) Open a folder item for update.Returns domain object implementation class supported.getIcon()Returns the Icon associated with this handlers content type.getImmutableObject(FolderItem item, Object consumer, int version, int minChangeVersion, TaskMonitor monitor) Open a folder item for immutable use.If linking is supported return an instanceof the appropriateLinkHandler.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.getReadOnlyObject(FolderItem item, int version, boolean okToUpgrade, Object consumer, TaskMonitor monitor) Open a folder item for read-only use.booleanReturns true if the content type is always private (i.e., can not be added to the versioned filesystem).Methods inherited from class ghidra.framework.data.DBContentHandler
abortCreate, createFile
-
Field Details
-
DATA_TYPE_ARCHIVE_CONTENT_TYPE
- See Also:
-
-
Constructor Details
-
DataTypeArchiveContentHandler
public DataTypeArchiveContentHandler()
-
-
Method Details
-
createFile
public long createFile(FileSystem fs, FileSystem userfs, String path, String name, DomainObject obj, TaskMonitor monitor) throws IOException, InvalidNameException, CancelledException Description copied from interface:ContentHandlerCreates 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 itemuserfs- file system which contains associated user datapath- the path of the folder itemname- the name of the new folder itemobj- the domain object to store in the newly created folder itemmonitor- the monitor that allows the user to cancel- Returns:
- checkout ID for new item
- Throws:
IOException- if an IO error occurs or an unsupporteddomainObjectimplementation is specified.InvalidNameException- if the specified name contains invalid charactersCancelledException- if the user cancels
-
getImmutableObject
public DataTypeArchiveDB getImmutableObject(FolderItem item, Object consumer, int version, int minChangeVersion, TaskMonitor monitor) throws IOException, VersionException, CancelledException Description copied from interface:ContentHandlerOpen 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 itemconsumer- consumer of the returned objectversion- 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:
IOException- if an IO or folder item access error occursVersionException- if unable to handle file content due to version difference which could not be handled.CancelledException- if operation is cancelled by user
-
getReadOnlyObject
public DataTypeArchiveDB getReadOnlyObject(FolderItem item, int version, boolean okToUpgrade, Object consumer, TaskMonitor monitor) throws IOException, VersionException, CancelledException Description copied from interface:ContentHandlerOpen 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 itemversion- 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 objectmonitor- the monitor that allows the user to cancel- Returns:
- read-only domain object
- Throws:
IOException- if an IO or folder item access error occursVersionException- if unable to handle file content due to version difference which could not be handled.CancelledException- if operation is cancelled by user
-
getDomainObject
public DataTypeArchiveDB getDomainObject(FolderItem item, FileSystem userfs, long checkoutId, boolean okToUpgrade, boolean recover, Object consumer, TaskMonitor monitor) throws IOException, VersionException, CancelledException Description copied from interface:ContentHandlerOpen a folder item for update. Changes made to the returned object may be saved to the original folder item.- Parameters:
item- stored folder itemuserfs- file system which contains associated user datacheckoutId- 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.recover- if true an attempt to recover any unsaved changes resulting from a crash will be attempted.consumer- consumer of the returned objectmonitor- cancelable task monitor- Returns:
- updateable domain object
- Throws:
IOException- if an IO or folder item access error occursVersionException- if unable to handle file content due to version difference which could not be handled.CancelledException- if operation is cancelled by user
-
getChangeSet
public ChangeSet getChangeSet(FolderItem item, int fromVer, int toVer) throws VersionException, IOException Description copied from interface:ContentHandlerReturns the object change data which includes changes made to the specified olderVersion through to the specified newerVersion.- Parameters:
item- versioned folder itemfromVer- the older version numbertoVer- the newer version number- Returns:
- the set of changes that were made
- Throws:
VersionException- if a database version change prevents reading of data.IOException- if an IO or folder item access error occurs or change set was produced by newer version of software and can not be read
-
getDomainObjectClass
Description copied from interface:ContentHandlerReturns domain object implementation class supported.- Returns:
- implementation class for the associated
DomainObjectAdapterimplementation.
-
getContentType
Description copied from interface:ContentHandlerReturns a unique content-type identifier- Returns:
- content type identifier for associated domain object(s).
-
getContentTypeDisplayString
Description copied from interface:ContentHandlerA string that is meant to be presented to the user.- Returns:
- user friendly content type for associated domain object(s).
-
getDefaultToolName
Description copied from interface:ContentHandlerReturns the name of the default tool/template that should be used to open this content type.- Returns:
- associated default tool name for this content type
-
getIcon
Description copied from interface:ContentHandlerReturns the Icon associated with this handlers content type.- Returns:
- base icon to be used for a
DomainFilewith the associated content type.
-
isPrivateContentType
public boolean isPrivateContentType()Description copied from interface:ContentHandlerReturns true if the content type is always private (i.e., can not be added to the versioned filesystem).- Returns:
- true if private content type, else false
-
getMergeManager
public DomainObjectMergeManager getMergeManager(DomainObject resultsObj, DomainObject sourceObj, DomainObject originalObj, DomainObject latestObj) Description copied from interface:ContentHandlerGet 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 writtensourceObj- object which contains user's changes to be mergedoriginalObj- object which corresponds to checked-out version statelatestObj- object which corresponds to latest version with which the sourceObj must be merged.- Returns:
- merge manager
-
getLinkHandler
Description copied from interface:ContentHandlerIf linking is supported return an instanceof the appropriateLinkHandler.- Returns:
- corresponding link handler or null if not supported.
-