Package com.install4j.api.launcher
Class Variables
- java.lang.Object
-
- com.install4j.api.launcher.Variables
-
public class Variables extends java.lang.Object
This class provides methods to access compiler and installer variables from your launchers. Do not use this class in the installer, uninstaller or in a custom installer application, in that case use the methods in thecontext
instead.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
clearInstallerVariablesCache()
Clear the cache of read installer variables.static java.lang.String
getCompilerVariable(java.lang.String variableName)
Get the value of a compiler variable.static java.lang.Object
getInstallerVariable(java.lang.String variableName)
Get the value of an installer variable that was saved to the automatically created response fileresponse.varfile
.static java.util.Map<java.lang.String,java.lang.Object>
getInstallerVariables()
Get a map of installer variables that were saved to the automatically created response fileresponse.varfile
.static java.util.Map<java.lang.String,java.lang.Object>
loadFromPreferenceStore(boolean userSpecific)
Load installer variables from the preference stores that have been saved by a "Save installer variables to the preference store" action.static java.util.Map<java.lang.String,java.lang.Object>
loadFromPreferenceStore(java.lang.String packageName, boolean userSpecific)
Load installer variables from the preference stores that have been saved by a "Save installer variables to the preference store" action.static void
saveToPreferenceStore(java.util.Map<java.lang.String,java.lang.Object> variables, boolean userSpecific)
Save a map of installer variables to the preference store.static void
saveToPreferenceStore(java.util.Map<java.lang.String,java.lang.Object> variables, java.lang.String packageName, boolean userSpecific)
Save a map of installer variables to the preference store.
-
-
-
Method Detail
-
getCompilerVariable
public static java.lang.String getCompilerVariable(java.lang.String variableName) throws java.io.IOException
Get the value of a compiler variable. The first time this method is called, the installer config file will be read, for subsequent calls the compiler variables will be cached.- Parameters:
variableName
- the name of the compiler variable- Returns:
- the value of the compiler variable or
null
if the variable is undefined - Throws:
java.io.IOException
- if the installer config file cannot be read
-
getInstallerVariables
public static java.util.Map<java.lang.String,java.lang.Object> getInstallerVariables()
Get a map of installer variables that were saved to the automatically created response fileresponse.varfile
. Not all installer variables are saved to that file. You can register a variable as a response file variable withContext.registerResponseFileVariable(String)
. Variables to which form components are bound are automatically registered as response file variables.If the automatically created response file cannot be read, only system installer variables are available.
- Returns:
- the map with installer variables from the response file. The keys are the variable names, the values are the original values at the time that the response file was saved.
-
getInstallerVariable
public static java.lang.Object getInstallerVariable(java.lang.String variableName)
Get the value of an installer variable that was saved to the automatically created response fileresponse.varfile
. SeegetInstallerVariables()
for more information.If the automatically created response file cannot be read, only system installer variables are available.
- Parameters:
variableName
- the name of the compiler variable- Returns:
- the value of the compiler variable or
null
if the variable is undefined - See Also:
getInstallerVariables()
-
loadFromPreferenceStore
public static java.util.Map<java.lang.String,java.lang.Object> loadFromPreferenceStore(boolean userSpecific) throws java.io.IOException
Load installer variables from the preference stores that have been saved by a "Save installer variables to the preference store" action. The package name in the preference store is set to the application ID which is the default save location of that action.- Parameters:
userSpecific
- if the user-specific preference store should be used or not- Returns:
- the map with installer variables from the preference store. The keys are the variable names, the values are
the original values at the time that the installer variables were saved. Returns
null
if no variables were saved. - Throws:
java.io.IOException
- if the operation fails due to a problem with the backing store
-
loadFromPreferenceStore
public static java.util.Map<java.lang.String,java.lang.Object> loadFromPreferenceStore(java.lang.String packageName, boolean userSpecific) throws java.io.IOException
Load installer variables from the preference stores that have been saved by a "Save installer variables to the preference store" action.- Parameters:
packageName
- the package name that was used when saving the installer variables to the preference storeuserSpecific
- if the user-specific preference store should be used or not- Returns:
- the map with installer variables from the preference store. The keys are the variable names, the values are
the original values at the time that the installer variables were saved. Returns
null
if no variables were saved. - Throws:
java.io.IOException
- if the operation fails due to a problem with the backing store
-
saveToPreferenceStore
public static void saveToPreferenceStore(java.util.Map<java.lang.String,java.lang.Object> variables, boolean userSpecific) throws java.io.IOException
Save a map of installer variables to the preference store. If you use installer variables loaded byloadFromPreferenceStore(boolean)
for the configuration of your application, you can save changes made in the application back to the preference store with this method. Values that cannot be decoded as described byContext.registerResponseFileVariable(String)
will be ignored. Values that are present in the preference store and not in the supplied map will not be deleted. The package name in the preference store is set to the application ID which is the default save location of the "Save installer variables to the preference store" action.- Parameters:
variables
- the map with the installer variables as returned byloadFromPreferenceStore(boolean)
userSpecific
- if the user-specific preference store should be used or not- Throws:
java.io.IOException
- if the operation fails due to a problem with the backing store
-
saveToPreferenceStore
public static void saveToPreferenceStore(java.util.Map<java.lang.String,java.lang.Object> variables, java.lang.String packageName, boolean userSpecific) throws java.io.IOException
Save a map of installer variables to the preference store. If you use installer variables loaded byloadFromPreferenceStore(String, boolean)
for the configuration of your application, you can save changes made in the application back to the preference store with this method. Values that cannot be decoded as described byContext.registerResponseFileVariable(String)
will be ignored. Values that are present in the preference store and not in the supplied map will not be deleted.- Parameters:
variables
- the map with the installer variables as returned byloadFromPreferenceStore(String, boolean)
packageName
- the package name to which the installer variables should be saved in the preference storeuserSpecific
- if the user-specific preference store should be used or not- Throws:
java.io.IOException
- if the operation fails due to a problem with the backing store
-
clearInstallerVariablesCache
public static void clearInstallerVariablesCache()
Clear the cache of read installer variables. If you know that the response file has changed, you can call this method to force the installer variables to be read again. The methods inApplicationLauncher
call this method automatically when the custom installer application exits.
-
-