| |
|
| java.lang.Object com.izforge.izpack.util.TargetFactory
TargetFactory | public class TargetFactory (Code) | | The TargetFactory serves as a central mechanism to instantiate OS specific class
flavors, provide OS specific file extension types, default install directories and similar
functionality. In addition it provides services that are related to OS versions and flavors. For
a tutorial on using some of the features in this class see the TargetFactory Tutorial.
version: 0.0.1 / 1/3/2002 author: Elmar Grom |
Field Summary | |
final static String[] | CLASS_ARCHITECTURE_PREFIX The list of processor architecture specific prefixes. | final static String[] | CLASS_FLAVOR_PREFIX The os favor specific class prefixes for classes the implement different versions for various
os favors. | final static String[] | CLASS_PREFIX The os specific class prefixes for classes that implement different versions for the various
operating systems. | final public static int | GENERIC Used to report a non specific operating system. | final static String[] | INSTALL_PATH_FRAGMENT The list of default install path fragments. | final static String[][] | INSTALL_PATH_RESOURCE_KEY This is a list of keys to use when looking for resources that define the default install path
to use. | final static String[] | LIBRARY_EXTENSION The extensions used for native libraries on various operating systems. | final public static int | NT Used to identify the Windows-NT class of operating systems in terms of an OS flavor. | final public static int | OTHER Nonspecific processor architecture, other than X86. | final public static int | STANDARD This is the basic flavor for every operating system. | final public static int | UNIX | final public static int | WINDOWS Identifies Microsoft Windows. | final public static int | X | final public static int | X86 Identifies Intel X86 based processor types. |
Method Summary | |
public int | getArchitecture() Returns an index number that identified the processor architecture of the target system. | public static String | getCurrentOSPrefix() Gets a prefix alias for the current platform. | public String | getDefaultInstallPath(String appName) Returns the system dependent default install path. | public static TargetFactory | getInstance() Returns an instance of TargetFactory to use. | public String | getNativeLibraryExtension() Returns the file extension customarily used on the target OS for dynamically loadable
libraries. | public int | getOS() Returns the index number for the target operating system that was detected. | public int | getOSFlavor() Returns the index number for the operating system flavor that was detected on the target
system. | public Object | makeObject(String name) This method returns an OS and OS flavor specific instance of the requested class. | public boolean | versionIsHigher(String version) Returns true if the version in the parameter string is higher than the version of the target
os. |
CLASS_ARCHITECTURE_PREFIX | final static String[] CLASS_ARCHITECTURE_PREFIX(Code) | | The list of processor architecture specific prefixes. The string positions correspond to the
architecture indexes. The following values are leegal to use :
|
CLASS_FLAVOR_PREFIX | final static String[] CLASS_FLAVOR_PREFIX(Code) | | The os favor specific class prefixes for classes the implement different versions for various
os favors. The string positions correspond to the flavor indexes. The following values are
legal to use :
|
CLASS_PREFIX | final static String[] CLASS_PREFIX(Code) | | The os specific class prefixes for classes that implement different versions for the various
operating systems. The string positions correspond to the basic operating system indexes. The
following values are legal to use :
|
GENERIC | final public static int GENERIC(Code) | | Used to report a non specific operating system.
|
INSTALL_PATH_FRAGMENT | final static String[] INSTALL_PATH_FRAGMENT(Code) | | The list of default install path fragments. Depending on the operating system, a path
fragment might represent either a part of the default install path or the entire path to use.
For MS-Windows it is always only a part of the full install path. The string positions
correspond to the basic operating system indexes. The following values are leegal to use :
|
INSTALL_PATH_RESOURCE_KEY | final static String[][] INSTALL_PATH_RESOURCE_KEY(Code) | | This is a list of keys to use when looking for resources that define the default install path
to use. The list is organized as two dimensional array of String s. To access
the array, denote the first dimension with the operating system index and the second
dimension with the flavor index. For example to access the key for Windows-NT use
INSTALL_PATH_RESOURCE_KEY[WINDOWS][NT] The array uses a sparse population,
that is, not all array locations actually contain a key. Only locations for which a real
operating system/flavor combination exists are populated. For example, there is no such thing
as INSTALL_PATH_RESOURCE_KEY[UNIX][X]
|
LIBRARY_EXTENSION | final static String[] LIBRARY_EXTENSION(Code) | | The extensions used for native libraries on various operating systems. The string positions
correspond to the basic operating system indexes. The following values are legal to use :
|
NT | final public static int NT(Code) | | Used to identify the Windows-NT class of operating systems in terms of an OS flavor. It is
reported for Windows-NT, 2000 and XP.
|
OTHER | final public static int OTHER(Code) | | Nonspecific processor architecture, other than X86.
|
STANDARD | final public static int STANDARD(Code) | | This is the basic flavor for every operating system.
|
UNIX | final public static int UNIX(Code) | | Identifies generic UNIX operating systems
|
WINDOWS | final public static int WINDOWS(Code) | | Identifies Microsoft Windows.
|
X | final public static int X(Code) | | Used to identify the OS X flavor of the Mac OS
|
X86 | final public static int X86(Code) | | Identifies Intel X86 based processor types.
|
getArchitecture | public int getArchitecture()(Code) | | Returns an index number that identified the processor architecture of the target system.
an index for the processor architecture See Also: TargetFactory.X86 See Also: TargetFactory.OTHER |
getCurrentOSPrefix | public static String getCurrentOSPrefix()(Code) | | Gets a prefix alias for the current platform. "Win_" on Windows Systems "Win_NT_" on WinNT4,
2000, XP Mac on Mac Mac_X on macosx and Unix_
a prefix alias for the current platform |
getDefaultInstallPath | public String getDefaultInstallPath(String appName)(Code) | | Returns the system dependent default install path. This is typically used to suggest an
istall path to the end user, when performing an installation. The default install path is
assembled form the OS specific path fragment specified in INSTALL_PATH_FRAGMENT ,
possibly a drive letter and the application name. The user the option to define resources
that define default paths which differ from the path fragments defined here. The following
resource names will be recognized by this method:
TargetPanel.dir.windows
TargetPanel.dir.macosx
TargetPanel.dir.unix
TargetPanel.dir plus the all lower case version of
System.getProperty ("os.name") , with all spaces replaced by an underscore
('_').
TargetPanel.dir
Parameters: appName - the name of the application to install. If no specific resource has been set,then this name will be appended to the OS specific default path fragment. the default install path for the target system |
getInstance | public static TargetFactory getInstance()(Code) | | Returns an instance of TargetFactory to use.
an instance of TargetFactory . |
getNativeLibraryExtension | public String getNativeLibraryExtension()(Code) | | Returns the file extension customarily used on the target OS for dynamically loadable
libraries.
a String containing the customary library extension for the target OS.Note that the string might be empty if there no such specific extension for the target OS. |
makeObject | public Object makeObject(String name) throws Exception(Code) | | This method returns an OS and OS flavor specific instance of the requested class.
Class Naming Rules
Class versions must be named with the OS and OS flavor as prefix. The prefixes are simply
concatenated, with the OS prefix first and the flavor prefix second. Use the following OS
specific prefixes:
Operating System |
Prefix |
Microsoft Windows |
Win_ |
Mac OS |
Mac_ |
UNIX |
UNIX_ |
For the different OS flavors, use these prefixes:
OS Flavor |
Prefix |
NT |
NT_ |
Mac OS X |
X_ |
Naming Example:
For the class MyClass , the specific version for Windows NT must be in the
same package as MyClass and the name must be Win_NT_MyClass . A
version that should be instantiated for any non-NT flavor would be called
Win_MyClass . This would also be the version instantiated on Windows NT if the
version Win_NT_MyClass does not exist.
The Loading Process
The process is completed after the first successful attempt to load a class.
- load a version that is OS and OS-Flavor specific
- load a version that is OS specific
- load the base version (without OS or OS-Flavor prefix)
See the TargetFactory Tutorial for more
information.
Parameters: name - the fully qualified name of the class to load without the extension. An instance of the requested class. Note that specific initialization that can not beaccomplished in the default constructor still needs to be performed before the object can beused. exception: Exception - if all attempts to instantiate class fail |
versionIsHigher | public boolean versionIsHigher(String version) throws Exception(Code) | | Returns true if the version in the parameter string is higher than the version of the target
os.
Parameters: version - the version number to compare to false if the version of the target system is higher, otherwisetrue |
|
|
|