Package utility.application
Class ApplicationLayout
- java.lang.Object
-
- utility.application.ApplicationLayout
-
- Direct Known Subclasses:
DockingApplicationLayout
,DummyApplicationLayout
,GhidraApplicationLayout
public abstract class ApplicationLayout extends java.lang.Object
The Application Layout base class defines the customizable elements of the application's directory structure. Create a subclass to define a custom layout.If a layout changes in a significant way, the
ApplicationProperties.APPLICATION_LAYOUT_VERSION_PROPERTY
should be incremented so external things like Eclipse GhidraDev know to look in different places for things.
-
-
Field Summary
Fields Modifier and Type Field Description protected ResourceFile
applicationInstallationDir
protected ApplicationProperties
applicationProperties
protected java.util.Collection<ResourceFile>
applicationRootDirs
protected ResourceFile
extensionArchiveDir
protected ResourceFile
extensionInstallationDir
protected java.util.Map<java.lang.String,GModule>
modules
protected java.io.File
userCacheDir
protected java.io.File
userSettingsDir
protected java.io.File
userTempDir
-
Constructor Summary
Constructors Constructor Description ApplicationLayout()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
createUserDirs()
Creates the application's user directories (or ensures they already exist).ResourceFile
getApplicationInstallationDir()
Gets the application installation directory from the application layout.ApplicationProperties
getApplicationProperties()
Gets the application properties from the application layoutjava.util.Collection<ResourceFile>
getApplicationRootDirs()
Gets the application root directories from the application layout.ResourceFile
getExtensionArchiveDir()
Returns the directory where archived Ghidra Extensions are stored.ResourceFile
getExtensionInstallationDir()
Returns the Ghidra Extensions installation folder.java.util.Map<java.lang.String,GModule>
getModules()
Gets the application's modules from the application layout.java.io.File
getUserCacheDir()
Gets the user cache directory from the application layout.java.io.File
getUserSettingsDir()
Gets the user settings directory from the application layout.java.io.File
getUserTempDir()
Gets the user temp directory from the application layout.boolean
inSingleJarMode()
Checks whether or not the application is using a "single jar" layout.
-
-
-
Field Detail
-
applicationProperties
protected ApplicationProperties applicationProperties
-
applicationRootDirs
protected java.util.Collection<ResourceFile> applicationRootDirs
-
applicationInstallationDir
protected ResourceFile applicationInstallationDir
-
modules
protected java.util.Map<java.lang.String,GModule> modules
-
userTempDir
protected java.io.File userTempDir
-
userCacheDir
protected java.io.File userCacheDir
-
userSettingsDir
protected java.io.File userSettingsDir
-
extensionArchiveDir
protected ResourceFile extensionArchiveDir
-
extensionInstallationDir
protected ResourceFile extensionInstallationDir
-
-
Method Detail
-
getApplicationProperties
public final ApplicationProperties getApplicationProperties()
Gets the application properties from the application layout- Returns:
- The application properties. Should never be null.
-
getApplicationRootDirs
public final java.util.Collection<ResourceFile> getApplicationRootDirs()
Gets the application root directories from the application layout.- Returns:
- A collection of application root directories (or null if not set).
-
getApplicationInstallationDir
public final ResourceFile getApplicationInstallationDir()
Gets the application installation directory from the application layout.- Returns:
- The application installation directory (or null if not set).
-
getModules
public final java.util.Map<java.lang.String,GModule> getModules()
Gets the application's modules from the application layout.- Returns:
- The application's modules as a map (mapping module name to module for convenience).
-
getUserTempDir
public final java.io.File getUserTempDir()
Gets the user temp directory from the application layout.- Returns:
- The user temp directory (or null if not set).
-
getUserCacheDir
public final java.io.File getUserCacheDir()
Gets the user cache directory from the application layout.- Returns:
- The user cache directory (or null if not set).
-
getUserSettingsDir
public final java.io.File getUserSettingsDir()
Gets the user settings directory from the application layout.- Returns:
- The user settings directory (or null if not set).
-
getExtensionArchiveDir
public final ResourceFile getExtensionArchiveDir()
Returns the directory where archived Ghidra Extensions are stored.- Returns:
- The Ghidra Extensions archive directory. Could be null if the
ApplicationLayout
does not support Ghidra Extensions.
-
getExtensionInstallationDir
public final ResourceFile getExtensionInstallationDir()
Returns the Ghidra Extensions installation folder.- Returns:
- The Ghidra Extensions installation directory. Could be null if the
ApplicationLayout
does not support Ghidra Extensions.
-
createUserDirs
public final void createUserDirs() throws java.io.IOException
Creates the application's user directories (or ensures they already exist).- Throws:
java.io.IOException
- if there was a problem creating the application's user directories.
-
inSingleJarMode
public boolean inSingleJarMode()
Checks whether or not the application is using a "single jar" layout. Custom application layouts that extend this class can override this method once they determine they are in single jar mode.- Returns:
- true if the application is using a "single jar" layout; otherwise, false.
-
-