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 TypeMethodDescriptionlong
createFile
(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.boolean
Returns 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:ContentHandler
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 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 unsupporteddomainObject
implementation 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:ContentHandler
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 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:ContentHandler
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 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:ContentHandler
Open 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:ContentHandler
Returns 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:ContentHandler
Returns domain object implementation class supported.- Returns:
- implementation class for the associated
DomainObjectAdapter
implementation.
-
getContentType
Description copied from interface:ContentHandler
Returns a unique content-type identifier- Returns:
- content type identifier for associated domain object(s).
-
getContentTypeDisplayString
Description copied from interface:ContentHandler
A 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:ContentHandler
Returns 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:ContentHandler
Returns the Icon associated with this handlers content type.- Returns:
- base icon to be used for a
DomainFile
with the associated content type.
-
isPrivateContentType
public boolean isPrivateContentType()Description copied from interface:ContentHandler
Returns 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:ContentHandler
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 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:ContentHandler
If linking is supported return an instanceof the appropriateLinkHandler
.- Returns:
- corresponding link handler or null if not supported.
-