Package ghidra.framework.data
Class DomainFileProxy
java.lang.Object
ghidra.framework.data.DomainFileProxy
- All Implemented Interfaces:
DomainFile
,Comparable<DomainFile>
Implements the DomainFile interface for DomainObjects that are not currently
associated with any real DomainFile. This class enforces the sharing of
objects between tools. After the first tool gets the implementation, all
other gets() just get the same instance. This class also keeps track of
which tools are using a its domain object.
-
Field Summary
Fields inherited from interface ghidra.framework.model.DomainFile
DEFAULT_VERSION, READ_ONLY_PROPERTY, UNSUPPORTED_FILE_ICON
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addToVersionControl
(String comment, boolean keepCheckedOut, TaskMonitor monitor) Adds this private file to version control.boolean
Returns true if this private file may be added to the associated repository.boolean
Returns true if this file may be checked-in to the associated repository.boolean
Returns true if this file may be checked-out from the associated repository.boolean
canMerge()
Returns true if this file can be merged with the current versioned file.boolean
Prior to invoking getDomainObject, this method can be used to determine if unsaved changes can be recovered on the next open.boolean
canSave()
Return whether this domain object can be saved (i.e., updated/overwritten).void
checkin
(CheckinHandler checkinHandler, TaskMonitor monitor) Performs check in to associated repository.boolean
checkout
(boolean exclusive, TaskMonitor monitor) Checkout this file for update.int
compareTo
(DomainFile df) copyTo
(DomainFolder newParent, TaskMonitor monitor) Copy this file into the newParent folder as a private file.copyToAsLink
(DomainFolder newParent) Copy this file into the newParent folder as a link file.copyVersionTo
(int ver, DomainFolder destFolder, TaskMonitor monitor) Copy a specific version of this file to the specified destFolder.void
delete()
Delete the entire database for this file, including any version files.void
delete
(int fileVersion) Deletes a specific version of a file from the versioned filesystem.boolean
boolean
exists()
Check for existence of domain file.If this is a folder-link file get the corresponding linked folder.Returns changes made to versioned file by others since checkout was performed.Get a list of checkouts by all users for the associated versioned file.Get checkout status associated with a versioned file.ArrayList
<?> Get the list of consumers (Objects) for this domain file.Returns content-type string for this filegetDomainObject
(Object consumer, boolean okToUpgrade, boolean okToRecover, TaskMonitor monitor) Opens and returns the current domain object.Class
<? extends DomainObject> Returns the underlying Class for the domain object in this domain file.Returns a unique file-ID if one has been established or null.getIcon
(boolean disabled) Get the state based Icon image for the domain file based upon its content class.getImmutableDomainObject
(Object consumer, int fileVersion, TaskMonitor monitor) Returns a new DomainObject that cannot be changed or saved to its original file.long
Get a long value representing the time when the data was last modified.int
Return the latest versiongetLocalProjectURL
(String ref) Get a local Ghidra URL for this domain file if available within the associated non-transient local project.Returns an ordered map containing the metadata that has been associated with the corresponding domain object.getName()
Get the name of this project filegetOpenedDomainObject
(Object consumer) Returns the domainObject for this DomainFile only if it is already open.Get the parent domain folder for this domain file.Returns the full path name to this fileReturns the local storage location for the project that this DomainFile belongs to.getReadOnlyDomainObject
(Object consumer, int fileVersion, TaskMonitor monitor) Returns a "read-only" version of the domain object.Get a remote Ghidra URL for this domain file if available within an associated shared project repository.int
Return either the latest version if the file is not checked-out or the version that was checked-out or a specific version that was requested.Version[]
Returns list of all available versions.int
hashCode()
boolean
isBusy()
Returns true if the domain object in this domain file exists and has an open transaction.boolean
Return whether the domain object in this domain file has changed.boolean
Returns true if this is a checked-out file.boolean
Returns true if this a checked-out file with exclusive access.boolean
Returns true if the file is versioned but a private copy also exists.boolean
isInUse()
boolean
Returns true if this file is in a writable project.boolean
Returns true if this file represents the latest version of the associated domain object.boolean
Determine if this file is a link file which corresponds to either a file or folder link.boolean
Determine if this file's content type supports linking.boolean
isOpen()
Returns true if there is an open domainObject for this file.boolean
Returns whether this file is explicitly marked as read-only.boolean
boolean
Return true if this is a versioned database, else falselong
length()
Returns the length of this domain file.void
merge
(boolean okToUpgrade, TaskMonitor monitor) Performs merge from current version of versioned file into local checked-out file.boolean
Returns true if this is a checked-out file which has been modified since it was checked-out.moveTo
(DomainFolder newParent) Move this file into the newParent folder.void
packFile
(File file, TaskMonitor monitor) Pack domain file into specified file.void
save
(TaskMonitor monitor) Save theDomainObject
associated with this file.Set the name on this domain file.void
setReadOnly
(boolean state) Sets the object to read-only.boolean
If the file has an updatable domain object with unsaved changes, generate a recovery snapshot.void
terminateCheckout
(long checkoutId) Forcefully terminate a checkout for the associated versioned file.toString()
void
undoCheckout
(boolean keep) Undo "checked-out" file.void
undoCheckout
(boolean keep, boolean force) Undo "checked-out" file.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ghidra.framework.model.DomainFile
checkin
-
Constructor Details
-
DomainFileProxy
-
-
Method Details
-
exists
public boolean exists()Description copied from interface:DomainFile
Check for existence of domain file.- Specified by:
exists
in interfaceDomainFile
- Returns:
- true if file exists. A proxy domain file will always return false.
-
setName
Description copied from interface:DomainFile
Set the name on this domain file.- Specified by:
setName
in interfaceDomainFile
- Parameters:
newName
- domain file name- Returns:
- renamed domain file (the original DomainFile object becomes invalid since it is immutable)
-
getProjectLocator
Description copied from interface:DomainFile
Returns the local storage location for the project that this DomainFile belongs to.- Specified by:
getProjectLocator
in interfaceDomainFile
- Returns:
- the location
-
length
Description copied from interface:DomainFile
Returns the length of this domain file. This size is the minimum disk space used for storing this file, but does not account for additional storage space used to track changes, etc.- Specified by:
length
in interfaceDomainFile
- Returns:
- file length
- Throws:
IOException
- if IO or access error occurs
-
isReadOnly
public boolean isReadOnly()Description copied from interface:DomainFile
Returns whether this file is explicitly marked as read-only. This method is only supported by the local file system and does not apply to a versioned file that is not checked-out. A versioned file that is not checked-out will always return false, while aDomainFileProxy
will always return true. From a framework point of view a read-only file can never be changed.- Specified by:
isReadOnly
in interfaceDomainFile
- Returns:
- true if this file is marked read-only
-
setReadOnly
public void setReadOnly(boolean state) Description copied from interface:DomainFile
Sets the object to read-only. This method may only be invoked for private files (i.e., not versioned).- Specified by:
setReadOnly
in interfaceDomainFile
- Parameters:
state
- if true file will be read-only and may not be updated, if false the file may be updated.
-
isInWritableProject
public boolean isInWritableProject()Description copied from interface:DomainFile
Returns true if this file is in a writable project.- Specified by:
isInWritableProject
in interfaceDomainFile
- Returns:
- true if writable
-
getPathname
Description copied from interface:DomainFile
Returns the full path name to this file- Specified by:
getPathname
in interfaceDomainFile
- Returns:
- the path name
-
getLocalProjectURL
Description copied from interface:DomainFile
Get a local Ghidra URL for this domain file if available within the associated non-transient local project. A null value will be returned if project is transient.- Specified by:
getLocalProjectURL
in interfaceDomainFile
- Parameters:
ref
- reference within a file, may be null. NOTE: such reference interpretation is specific to a domain object and tooling with limited support.- Returns:
- local Ghidra URL for this file or null if transient or not applicable
-
compareTo
- Specified by:
compareTo
in interfaceComparable<DomainFile>
-
toString
-
getName
Description copied from interface:DomainFile
Get the name of this project file- Specified by:
getName
in interfaceDomainFile
- Returns:
- the name
-
getFileID
Description copied from interface:DomainFile
Returns a unique file-ID if one has been established or null. Examples which may result in null ID:- Very old project file which pre-dates introduction of file ID, or
- Remote versioned file with lost connection
- Specified by:
getFileID
in interfaceDomainFile
- Returns:
- the file-ID or null if failed to obtain ID.
-
getContentType
Description copied from interface:DomainFile
Returns content-type string for this file- Specified by:
getContentType
in interfaceDomainFile
- Returns:
- the file content type or a reserved content type
ContentHandler.MISSING_CONTENT
orContentHandler.UNKNOWN_CONTENT
.
-
isLinkFile
public boolean isLinkFile()Description copied from interface:DomainFile
Determine if this file is a link file which corresponds to either a file or folder link. TheDomainObject
referenced by a link-file may be opened usingDomainFile.getReadOnlyDomainObject(Object, int, TaskMonitor)
. TheDomainFile.getDomainObject(Object, boolean, boolean, TaskMonitor)
method may also be used to obtain a read-only instance.DomainFile.getImmutableDomainObject(Object, int, TaskMonitor)
use is not supported. If the link-file content type equals "FolderLink" the methodDomainFile.followLink()
can be used to get the linked domain folder. The associated link URL may be obtained withLinkHandler.getURL(DomainFile)
. The content type (seeDomainFile.getContentType()
of a link file will differ from that of the linked object (e.g., "LinkedProgram" vs "Program").- Specified by:
isLinkFile
in interfaceDomainFile
- Returns:
- true if link file else false for a normal domain file
-
followLink
Description copied from interface:DomainFile
If this is a folder-link file get the corresponding linked folder.- Specified by:
followLink
in interfaceDomainFile
- Returns:
- a linked domain folder or null if not a folder-link.
-
getDomainObjectClass
Description copied from interface:DomainFile
Returns the underlying Class for the domain object in this domain file.- Specified by:
getDomainObjectClass
in interfaceDomainFile
- Returns:
- the class or null if does not correspond to a domain object.
-
getParent
Description copied from interface:DomainFile
Get the parent domain folder for this domain file.- Specified by:
getParent
in interfaceDomainFile
- Returns:
- the parent
-
getLastModifiedTime
public long getLastModifiedTime()Description copied from interface:DomainFile
Get a long value representing the time when the data was last modified.- Specified by:
getLastModifiedTime
in interfaceDomainFile
- Returns:
- the time
-
save
Description copied from interface:DomainFile
Save theDomainObject
associated with this file.- Specified by:
save
in interfaceDomainFile
- Parameters:
monitor
- monitor for the task that is doing the save on the file- Throws:
IOException
- if an IO error occurs.
-
canSave
public boolean canSave()Description copied from interface:DomainFile
Return whether this domain object can be saved (i.e., updated/overwritten).- Specified by:
canSave
in interfaceDomainFile
- Returns:
- true if the user is the owner AND the file is in the active project AND the file is not read-only.
-
canRecover
public boolean canRecover()Description copied from interface:DomainFile
Prior to invoking getDomainObject, this method can be used to determine if unsaved changes can be recovered on the next open.- Specified by:
canRecover
in interfaceDomainFile
- Returns:
- true if recovery data exists.
-
takeRecoverySnapshot
public boolean takeRecoverySnapshot()Description copied from interface:DomainFile
If the file has an updatable domain object with unsaved changes, generate a recovery snapshot.- Specified by:
takeRecoverySnapshot
in interfaceDomainFile
- Returns:
- true if snapshot successful or not needed, false if file is busy which prevents snapshot, or snapshot was cancelled.
-
isInUse
public boolean isInUse() -
getConsumers
Description copied from interface:DomainFile
Get the list of consumers (Objects) for this domain file.- Specified by:
getConsumers
in interfaceDomainFile
- Returns:
- true if linking is supported allowing a link-file to be created which references this file, else false.
-
hashCode
public int hashCode() -
equals
-
isUsedBy
-
addToVersionControl
public void addToVersionControl(String comment, boolean keepCheckedOut, TaskMonitor monitor) throws IOException, CancelledException Description copied from interface:DomainFile
Adds this private file to version control.- Specified by:
addToVersionControl
in interfaceDomainFile
- Parameters:
comment
- new version commentkeepCheckedOut
- if true, the file will be initially checked-out. This option will be ignored if file is currently open in which case file will remain checked-out.monitor
- progress monitor- Throws:
IOException
- if an IO or access error occurs. Also if file is not private.CancelledException
- if the monitor cancelled the operation
-
canAddToRepository
public boolean canAddToRepository()Description copied from interface:DomainFile
Returns true if this private file may be added to the associated repository. Note: this does not take into consideration cases where the file is currently in-use which may cause a failure if add to repository is attempted.- Specified by:
canAddToRepository
in interfaceDomainFile
- Returns:
- true if add to the repository can be attempted (i.e., file in active project is not versioned or hijacked)
-
isBusy
public boolean isBusy()Description copied from interface:DomainFile
Returns true if the domain object in this domain file exists and has an open transaction.- Specified by:
isBusy
in interfaceDomainFile
- Returns:
- true if busy
-
canCheckout
public boolean canCheckout()Description copied from interface:DomainFile
Returns true if this file may be checked-out from the associated repository. User's with read-only repository access will not have checkout ability.- Specified by:
canCheckout
in interfaceDomainFile
- Returns:
- true if can checkout
-
canCheckin
public boolean canCheckin()Description copied from interface:DomainFile
Returns true if this file may be checked-in to the associated repository. Note: this does not take into consideration cases where the file is currently in-use which may cause a failure if a checkin is attempted.- Specified by:
canCheckin
in interfaceDomainFile
- Returns:
- true if a check-in can be attempted (i.e., file is checked-out with changes), else false
-
canMerge
public boolean canMerge()Description copied from interface:DomainFile
Returns true if this file can be merged with the current versioned file. Note: this does not take into consideration cases where the file is currently in-use which may cause a failure if a merge is attempted.- Specified by:
canMerge
in interfaceDomainFile
- Returns:
- true if a merge can be attempted (i.e., file is checked-out and a newer version exists), else false
-
checkout
Description copied from interface:DomainFile
Checkout this file for update. If this file is already private, this method does nothing.- Specified by:
checkout
in interfaceDomainFile
- Parameters:
exclusive
- if true an exclusive checkout will be requestedmonitor
- progress monitor- Returns:
- true if checkout successful, false if an exclusive checkout was not possible due to other users having checkouts of this file. A request for a non-exclusive checkout will never return false.
-
checkin
public void checkin(CheckinHandler checkinHandler, TaskMonitor monitor) throws IOException, VersionException, CancelledException Description copied from interface:DomainFile
Performs check in to associated repository. File must be checked-out and modified since checkout.- Specified by:
checkin
in interfaceDomainFile
- Parameters:
checkinHandler
- provides user input data to complete checkin process. The keep-checked-out option supplied by this handler will be ignored if file is currently open in which case file will remain checked-out.monitor
- the TaskMonitor.- Throws:
IOException
- if an IO or access error occursVersionException
- if unable to handle domain object version in versioned filesystem. We are unable to upgrade since this would only occur if checkout is not exclusive.CancelledException
- if task monitor cancelled operation
-
merge
Description copied from interface:DomainFile
Performs merge from current version of versioned file into local checked-out file.- Specified by:
merge
in interfaceDomainFile
- Parameters:
okToUpgrade
- if true an upgrade will be performed if neededmonitor
- task monitor
-
isLinkingSupported
public boolean isLinkingSupported()Description copied from interface:DomainFile
Determine if this file's content type supports linking.- Specified by:
isLinkingSupported
in interfaceDomainFile
- Returns:
- true if linking is supported, else false.
-
copyToAsLink
Description copied from interface:DomainFile
Copy this file into the newParent folder as a link file. Restrictions:- Specified newParent must reside within a different project since internal linking is not currently supported.
- Content type must support linking (see
DomainFile.isLinkingSupported()
).
- Specified by:
copyToAsLink
in interfaceDomainFile
- Parameters:
newParent
- new parent folder- Returns:
- newly created domain file or null if content type does not support link use.
- Throws:
IOException
- if an IO or access error occurs.
-
copyTo
public DomainFile copyTo(DomainFolder newParent, TaskMonitor monitor) throws IOException, CancelledException Description copied from interface:DomainFile
Copy this file into the newParent folder as a private file.- Specified by:
copyTo
in interfaceDomainFile
- Parameters:
newParent
- new parent foldermonitor
- task monitor- Returns:
- newly created domain file
- Throws:
IOException
- if an IO or access error occurs.CancelledException
- if task monitor cancelled operation.
-
copyVersionTo
public DomainFile copyVersionTo(int ver, DomainFolder destFolder, TaskMonitor monitor) throws IOException, CancelledException Description copied from interface:DomainFile
Copy a specific version of this file to the specified destFolder.- Specified by:
copyVersionTo
in interfaceDomainFile
- Parameters:
ver
- version to copydestFolder
- destination parent foldermonitor
- task monitor- Returns:
- the copied file
- Throws:
IOException
- if an IO or access error occurs.CancelledException
- if task monitor cancelled operation.
-
delete
Description copied from interface:DomainFile
Delete the entire database for this file, including any version files.- Specified by:
delete
in interfaceDomainFile
- Throws:
IOException
- if an IO or access error occurs.
-
delete
Description copied from interface:DomainFile
Deletes a specific version of a file from the versioned filesystem.- Specified by:
delete
in interfaceDomainFile
- Parameters:
fileVersion
- specific version to be deleted. The version must either be the oldest or latest, or -1 which will attempt to remove all versions. When deleting the latest version, this method could take a long time to return since the previous version must be reconstructed within the versioned filesystem.- Throws:
IOException
- if an IO error occurs, including the inability to delete a version because this item is checked-out, the user does not have permission, or the specified version is not the oldest or latest.
-
getLatestVersion
public int getLatestVersion()Description copied from interface:DomainFile
Return the latest version- Specified by:
getLatestVersion
in interfaceDomainFile
- Returns:
- the version
-
isLatestVersion
public boolean isLatestVersion()Description copied from interface:DomainFile
Returns true if this file represents the latest version of the associated domain object.- Specified by:
isLatestVersion
in interfaceDomainFile
- Returns:
- true if the latest version
-
getVersion
public int getVersion()Description copied from interface:DomainFile
Return either the latest version if the file is not checked-out or the version that was checked-out or a specific version that was requested.- Specified by:
getVersion
in interfaceDomainFile
- Returns:
- the version
-
getVersionHistory
Description copied from interface:DomainFile
Returns list of all available versions.- Specified by:
getVersionHistory
in interfaceDomainFile
- Returns:
- the versions
- Throws:
IOException
- if there is an exception getting the history
-
isCheckedOut
public boolean isCheckedOut()Description copied from interface:DomainFile
Returns true if this is a checked-out file.- Specified by:
isCheckedOut
in interfaceDomainFile
- Returns:
- true if checked-out
-
isCheckedOutExclusive
public boolean isCheckedOutExclusive()Description copied from interface:DomainFile
Returns true if this a checked-out file with exclusive access.- Specified by:
isCheckedOutExclusive
in interfaceDomainFile
- Returns:
- true if checked-out exclusively
-
moveTo
Description copied from interface:DomainFile
Move this file into the newParent folder.- Specified by:
moveTo
in interfaceDomainFile
- Parameters:
newParent
- new parent folder within the same project- Returns:
- the newly relocated domain file (the original DomainFile object becomes invalid since it is immutable)
- Throws:
IOException
- if an IO or access error occurs.
-
undoCheckout
Description copied from interface:DomainFile
Undo "checked-out" file. The original repository file is restored.- Specified by:
undoCheckout
in interfaceDomainFile
- Parameters:
keep
- if true, the private database will be renamed with a .keep extension.- Throws:
IOException
- if file is not checked-out or an IO / access error occurs.
-
undoCheckout
Description copied from interface:DomainFile
Undo "checked-out" file. The original repository file is restored.- Specified by:
undoCheckout
in interfaceDomainFile
- Parameters:
keep
- if true, the private database will be renamed with a .keep extension.force
- if not connected to the repository the local checkout file will be removed. Warning: forcing undo checkout will leave a stale checkout in place for the associated repository if not connected.- Throws:
IOException
- thrown if file is not checked-out or an IO / access error occurs.
-
getChangesByOthersSinceCheckout
Description copied from interface:DomainFile
Returns changes made to versioned file by others since checkout was performed. NOTE: This method is unable to cope with version issues which may require an upgrade.- Specified by:
getChangesByOthersSinceCheckout
in interfaceDomainFile
- Returns:
- change set or null
- Throws:
IOException
- if a folder item access error occurs or change set was produced by newer version of software and can not be read
-
getDomainObject
public DomainObject getDomainObject(Object consumer, boolean okToUpgrade, boolean okToRecover, TaskMonitor monitor) throws VersionException, IOException Description copied from interface:DomainFile
Opens and returns the current domain object. If the domain object is already opened, then the existing open domain object is returned.- Specified by:
getDomainObject
in interfaceDomainFile
- Parameters:
consumer
- consumer of the domain object which is responsible for releasing it after use. When all the consumers using the domain object release it, then the object is closed and its resources released.okToUpgrade
- if true, allows the system to upgrade out of data domain objects to be in compliance with the current version of Ghidra. A Version exception will be thrown if the domain object cannot be upgraded OR okToUpgrade is false and the domain object is out of date.okToRecover
- if true, allows the system to recover unsaved file changes which resulted from a crash. If false, any existing recovery data will be deleted. This flag is only relevant if project is open for update (isInProject) and the file can be opened for update.monitor
- permits monitoring of open progress.- Returns:
- an open domain object can be modified and saved. (Not read-only)
- Throws:
VersionException
- if the domain object could not be read due to a version format change. If okToUpgrade is true, then a VersionException indicates that the domain object cannot be upgraded to the current format. If okToUpgrade is false, then the VersionException only means the object is not in the current format - it may or may not be possible to upgrade.IOException
- if an IO or access error occurs.
-
getOpenedDomainObject
Description copied from interface:DomainFile
Returns the domainObject for this DomainFile only if it is already open.- Specified by:
getOpenedDomainObject
in interfaceDomainFile
- Parameters:
consumer
- the consumer that will use the object.- Returns:
- the already opened domainObject or null if it is not currently open.
-
isVersioned
public boolean isVersioned()Description copied from interface:DomainFile
Return true if this is a versioned database, else false- Specified by:
isVersioned
in interfaceDomainFile
- Returns:
- true if versioned
-
packFile
Description copied from interface:DomainFile
Pack domain file into specified file. Specified file will be overwritten if it already exists.- Specified by:
packFile
in interfaceDomainFile
- Parameters:
file
- destination filemonitor
- the task monitor- Throws:
IOException
- if there is an exception packing the fileCancelledException
- if monitor cancels operation
-
getIcon
Description copied from interface:DomainFile
Get the state based Icon image for the domain file based upon its content class.- Specified by:
getIcon
in interfaceDomainFile
- Parameters:
disabled
- true if the icon return should be rendered as not enabled- Returns:
- image icon
-
getImmutableDomainObject
public DomainObject getImmutableDomainObject(Object consumer, int fileVersion, TaskMonitor monitor) throws VersionException, IOException, CancelledException Description copied from interface:DomainFile
Returns a new DomainObject that cannot be changed or saved to its original file. NOTE: The use of this method should generally be avoided since it can't handle version changes that may have occured and require a data upgrade (e.g., DB schema change).- Specified by:
getImmutableDomainObject
in interfaceDomainFile
- Parameters:
consumer
- consumer of the domain object which is responsible for releasing it after use.fileVersion
- the domain object version requested. DEFAULT_VERSION should be specified to open the current version.monitor
- permits monitoring of open progress.- Returns:
- a new domain object that is disassociated from its original domain file and cannot be modified
- Throws:
VersionException
- if the domain object could not be read due to a version format change.IOException
- if an IO or access error occurs.CancelledException
- if monitor cancelled operation
-
getReadOnlyDomainObject
public DomainObject getReadOnlyDomainObject(Object consumer, int fileVersion, TaskMonitor monitor) throws VersionException, IOException, CancelledException Description copied from interface:DomainFile
Returns a "read-only" version of the domain object. "Read-only" means that the domain object cannot be saved back into its original domain object. It can still be modified and saved to a new domain file. The domain object will be assigned a temporary domain file that will not allow a "save" operation. The user must do a "save as" to a new filename.- Specified by:
getReadOnlyDomainObject
in interfaceDomainFile
- Parameters:
consumer
- consumer of the domain object which is responsible for releasing it after use.fileVersion
- the domain object version requested. DEFAULT_VERSION should be specified to open the current version.monitor
- permits monitoring of open progress.- Returns:
- a new domain object that is disassociated from its original domain file.
- Throws:
VersionException
- if the domain object could not be read due to a version format change.IOException
- if an IO or access error occurs.CancelledException
- if monitor cancelled operation
-
isHijacked
public boolean isHijacked()Description copied from interface:DomainFile
Returns true if the file is versioned but a private copy also exists.- Specified by:
isHijacked
in interfaceDomainFile
- Returns:
- true if hijacked
-
modifiedSinceCheckout
public boolean modifiedSinceCheckout()Description copied from interface:DomainFile
Returns true if this is a checked-out file which has been modified since it was checked-out.- Specified by:
modifiedSinceCheckout
in interfaceDomainFile
- Returns:
- true if modified since check-out
-
isChanged
public boolean isChanged()Description copied from interface:DomainFile
Return whether the domain object in this domain file has changed.- Specified by:
isChanged
in interfaceDomainFile
- Returns:
- true if changed
-
isOpen
public boolean isOpen()Description copied from interface:DomainFile
Returns true if there is an open domainObject for this file.- Specified by:
isOpen
in interfaceDomainFile
- Returns:
- true if open
-
terminateCheckout
Description copied from interface:DomainFile
Forcefully terminate a checkout for the associated versioned file. The user must be the owner of the checkout or have administrator privilege on the versioned filesystem (i.e., repository).- Specified by:
terminateCheckout
in interfaceDomainFile
- Parameters:
checkoutId
- checkout ID- Throws:
IOException
- if an IO or access error occurs
-
getCheckouts
Description copied from interface:DomainFile
Get a list of checkouts by all users for the associated versioned file.- Specified by:
getCheckouts
in interfaceDomainFile
- Returns:
- list of checkouts
- Throws:
IOException
- if an IO or access error occurs
-
getCheckoutStatus
Description copied from interface:DomainFile
Get checkout status associated with a versioned file.- Specified by:
getCheckoutStatus
in interfaceDomainFile
- Returns:
- checkout status or null if not checked-out to current associated project.
- Throws:
IOException
- if an IO or access error occurs
-
getMetadata
Description copied from interface:DomainFile
Returns an ordered map containing the metadata that has been associated with the corresponding domain object. The map contains key,value pairs and are ordered by their insertion order.- Specified by:
getMetadata
in interfaceDomainFile
- Returns:
- a map containing the metadata that has been associated with the corresponding domain object.
-