Package ghidra.framework.model
Class TestDummyDomainFolder
- java.lang.Object
-
- ghidra.framework.model.TestDummyDomainFolder
-
- All Implemented Interfaces:
DomainFolder
,java.lang.Comparable<DomainFolder>
public class TestDummyDomainFolder extends java.lang.Object implements DomainFolder
A dummy domain folder used to stub project folder.- See Also:
TestDummyDomainFile
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<DomainFile>
files
protected java.util.List<DomainFolder>
subFolders
-
Fields inherited from interface ghidra.framework.model.DomainFolder
COPY_SUFFIX, SEPARATOR
-
-
Constructor Summary
Constructors Constructor Description TestDummyDomainFolder(TestDummyDomainFolder parent, java.lang.String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(DomainFolder o)
DomainFolder
copyTo(DomainFolder newParent, TaskMonitor monitor)
Copy this folder into the newParent folder.DomainFile
createFile(java.lang.String name, DomainObject obj, TaskMonitor monitor)
Add a domain object to this folder.DomainFile
createFile(java.lang.String name, java.io.File packFile, TaskMonitor monitor)
Add a new domain file to this folder.DomainFolder
createFolder(java.lang.String name)
Create a subfolder of this folder.void
delete()
Deletes this folder and all of its contentsDomainFile
getFile(java.lang.String name)
Get the domain file in this folder with the given name.DomainFile[]
getFiles()
Get all domain files in this folder.DomainFolder
getFolder(java.lang.String name)
Return the folder for the given name.DomainFolder[]
getFolders()
Get DomainFolders in this folder.java.lang.String
getName()
Return this folder's name.DomainFolder
getParent()
Return parent folder or null if this DomainFolder is the root folder.java.lang.String
getPathname()
Returns the path name to the domain object.ProjectData
getProjectData()
ProjectLocator
getProjectLocator()
Returns the local storage location for the project that this DomainFolder belongs to.boolean
isEmpty()
Determine if this folder contains any sub-folders or domain files.boolean
isInWritableProject()
Returns true if this file is in a writable project.DomainFolder
moveTo(DomainFolder newParent)
Move this folder into the newParent folder.void
remove(TestDummyDomainFile file)
void
setActive()
Allows the framework to react to a request to make this folder the "active" one.DomainFolder
setName(java.lang.String newName)
Set the name on this domain folder.java.lang.String
toString()
-
-
-
Field Detail
-
subFolders
protected java.util.List<DomainFolder> subFolders
-
files
protected java.util.List<DomainFile> files
-
-
Constructor Detail
-
TestDummyDomainFolder
public TestDummyDomainFolder(TestDummyDomainFolder parent, java.lang.String name)
-
-
Method Detail
-
remove
public void remove(TestDummyDomainFile file)
-
compareTo
public int compareTo(DomainFolder o)
- Specified by:
compareTo
in interfacejava.lang.Comparable<DomainFolder>
-
getName
public java.lang.String getName()
Description copied from interface:DomainFolder
Return this folder's name.- Specified by:
getName
in interfaceDomainFolder
-
setName
public DomainFolder setName(java.lang.String newName) throws InvalidNameException, java.io.IOException
Description copied from interface:DomainFolder
Set the name on this domain folder.- Specified by:
setName
in interfaceDomainFolder
- Parameters:
newName
- domain folder name- Returns:
- renamed domain file (the original DomainFolder object becomes invalid since it is immutable)
- Throws:
InvalidNameException
- if newName contains illegal charactersDuplicateFileException
- if a folder named newName already exists in this files domain folder.FileInUseException
- if any file within this folder or its decendents is in-use / checked-out.java.io.IOException
- thrown if an IO or access error occurs.
-
getProjectLocator
public ProjectLocator getProjectLocator()
Description copied from interface:DomainFolder
Returns the local storage location for the project that this DomainFolder belongs to.- Specified by:
getProjectLocator
in interfaceDomainFolder
-
getProjectData
public ProjectData getProjectData()
- Specified by:
getProjectData
in interfaceDomainFolder
-
getPathname
public java.lang.String getPathname()
Description copied from interface:DomainFolder
Returns the path name to the domain object.- Specified by:
getPathname
in interfaceDomainFolder
-
isInWritableProject
public boolean isInWritableProject()
Description copied from interface:DomainFolder
Returns true if this file is in a writable project.- Specified by:
isInWritableProject
in interfaceDomainFolder
-
getParent
public DomainFolder getParent()
Description copied from interface:DomainFolder
Return parent folder or null if this DomainFolder is the root folder.- Specified by:
getParent
in interfaceDomainFolder
-
getFolders
public DomainFolder[] getFolders()
Description copied from interface:DomainFolder
Get DomainFolders in this folder. This returns cached information and does not force a full refresh.- Specified by:
getFolders
in interfaceDomainFolder
- Returns:
- list of sub-folders
-
getFolder
public DomainFolder getFolder(java.lang.String name)
Description copied from interface:DomainFolder
Return the folder for the given name.- Specified by:
getFolder
in interfaceDomainFolder
- Parameters:
name
- of folder to retrieve- Returns:
- folder or null if there is no folder by the given name.
-
getFile
public DomainFile getFile(java.lang.String name)
Description copied from interface:DomainFolder
Get the domain file in this folder with the given name.- Specified by:
getFile
in interfaceDomainFolder
- Parameters:
name
- name of file in this folder to retrieve- Returns:
- domain file or null if there is no domain file in this folder with the given name.
-
isEmpty
public boolean isEmpty()
Description copied from interface:DomainFolder
Determine if this folder contains any sub-folders or domain files.- Specified by:
isEmpty
in interfaceDomainFolder
- Returns:
- true if this folder is empty.
-
getFiles
public DomainFile[] getFiles()
Description copied from interface:DomainFolder
Get all domain files in this folder. This returns cached information and does not force a full refresh.- Specified by:
getFiles
in interfaceDomainFolder
- Returns:
- list of domain files
-
createFile
public DomainFile createFile(java.lang.String name, DomainObject obj, TaskMonitor monitor) throws InvalidNameException, java.io.IOException, CancelledException
Description copied from interface:DomainFolder
Add a domain object to this folder.- Specified by:
createFile
in interfaceDomainFolder
- Parameters:
name
- domain file nameobj
- domain object to be storedmonitor
- progress monitor- Returns:
- domain file created as a result of adding the domain object to this folder
- Throws:
InvalidNameException
- if name is an empty string or if it contains characters other than alphanumerics.DuplicateFileException
- thrown if the file name already existsjava.io.IOException
- if IO or access error occursCancelledException
- if the user cancels the create.
-
createFile
public DomainFile createFile(java.lang.String name, java.io.File packFile, TaskMonitor monitor) throws InvalidNameException, java.io.IOException, CancelledException
Description copied from interface:DomainFolder
Add a new domain file to this folder.- Specified by:
createFile
in interfaceDomainFolder
- Parameters:
name
- domain file namepackFile
- packed file containing domain file datamonitor
- progress monitor- Returns:
- domain file created as a result of adding the domain object to this folder
- Throws:
InvalidNameException
- if name is an empty string or if it contains characters other than alphanumerics.DuplicateFileException
- thrown if the file name already existsjava.io.IOException
- if IO or access error occursCancelledException
- if the user cancels the create.
-
createFolder
public DomainFolder createFolder(java.lang.String name) throws InvalidNameException, java.io.IOException
Description copied from interface:DomainFolder
Create a subfolder of this folder.- Specified by:
createFolder
in interfaceDomainFolder
- Parameters:
name
- sub-folder name- Throws:
InvalidNameException
- if name is an empty string of if it contains characters other than alphanumerics.DuplicateFileException
- if a folder by this name already existsjava.io.IOException
- if IO or access error occurs
-
delete
public void delete() throws java.io.IOException
Description copied from interface:DomainFolder
Deletes this folder and all of its contents- Specified by:
delete
in interfaceDomainFolder
- Throws:
java.io.IOException
- if IO or access error occursFolderNotEmptyException
- Thrown if the subfolder is not empty.
-
moveTo
public DomainFolder moveTo(DomainFolder newParent) throws java.io.IOException
Description copied from interface:DomainFolder
Move this folder into the newParent folder. If connected to an archive this affects both private and repository folders and files. If not connected, only private folders and files are affected.- Specified by:
moveTo
in interfaceDomainFolder
- Parameters:
newParent
- new parent folder within the same project- Returns:
- the newly relocated folder (the original DomainFolder object becomes invalid since it is immutable)
- Throws:
DuplicateFileException
- if a folder with the same name already exists in newParent folder.FileInUseException
- if this folder or one of its decendents contains a file which is in-use / checked-out.java.io.IOException
- thrown if an IO or access error occurs.
-
copyTo
public DomainFolder copyTo(DomainFolder newParent, TaskMonitor monitor) throws java.io.IOException, CancelledException
Description copied from interface:DomainFolder
Copy this folder into the newParent folder.- Specified by:
copyTo
in interfaceDomainFolder
- Parameters:
newParent
- new parent folder- Throws:
DuplicateFileException
- if a folder or file by this name already exists in the newParent folderjava.io.IOException
- thrown if an IO or access error occurs.CancelledException
- if task monitor cancelled operation.
-
setActive
public void setActive()
Description copied from interface:DomainFolder
Allows the framework to react to a request to make this folder the "active" one.- Specified by:
setActive
in interfaceDomainFolder
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-