|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.izforge.izpack.util.TargetFactory
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.
Field Summary | |
private int |
architecture
identifies the hardware architecture we are running on |
static java.lang.String[] |
CLASS_ARCHITECTURE_PREFIX
The list of processor architecture specific prefixes. |
static java.lang.String[] |
CLASS_FLAVOR_PREFIX
The os favor specific class prefixes for classes the implement different versions for various os favors. |
static java.lang.String[] |
CLASS_PREFIX
The os specific class prefixes for classes that implement different versions for the various operating systems. |
static int |
GENERIC
Used to report a non specific operating system. |
static java.lang.String[] |
INSTALL_PATH_FRAGMENT
The list of default install path fragments. |
static java.lang.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. |
static java.lang.String[] |
LIBRARY_EXTENSION
The extensions used for native libraries on various operating systems. |
static int |
MAC
Identifies Apple Macintosh operating systems. |
private static TargetFactory |
me
The reference to the single instance of TargetFactory . |
static int |
NT
Used to identify the Windows-NT class of operating systems in terms of an OS flavor. |
private int |
os
identifies the operating system we are running on |
private int |
osFlavor
identifies the operating system favor |
private java.lang.String |
osName
lower case version of the string returned by System.getProperty ("os.name") |
static int |
OTHER
Nonspecific processor architecture, other than X86. |
static int |
STANDARD
This is the basic flavor for every operating system. |
static int |
UNIX
Identifies generic UNIX operating systems |
private java.lang.String |
version
represents the version number of the target system |
private static java.lang.String |
VERSION_DELIMITER
The delimiter characters used to tokenize version numbers |
static int |
WINDOWS
Identifies Microsoft Windows. |
static int |
X
Used to identify the OS X flavor of the Mac OS |
static int |
X86
Identifies Intel X86 based processor types. |
Constructor Summary | |
private |
TargetFactory()
Constructor |
Method Summary | |
int |
getArchitecture()
Returns an index number that identified the processor architecture of the target system. |
java.lang.String |
getDefaultInstallPath(java.lang.String appName)
Returns the system dependent default install path. |
static TargetFactory |
getInstance()
Returns an instance of TargetFactory to use. |
java.lang.String |
getNativeLibraryExtension()
Returns the file extension customarily used on the target OS for dynamically loadable libraries. |
int |
getOS()
Returns the index number for the target operating system that was detected. |
int |
getOSFlavor()
Returns the index number for the operating system flavor that was detected on the target system. |
java.lang.Object |
makeObject(java.lang.String name)
This method returns an OS and OS flavor specific instance of the requested class. |
boolean |
versionIsHigher(java.lang.String version)
Returns true if the version in the parameter string is higher than the version of the target os. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int WINDOWS
public static final int MAC
public static final int UNIX
public static final int GENERIC
public static final int STANDARD
public static final int NT
public static final int X
public static final int X86
public static final int OTHER
public static final java.lang.String[] LIBRARY_EXTENSION
public static final java.lang.String[] CLASS_PREFIX
public static final java.lang.String[] CLASS_FLAVOR_PREFIX
public static final java.lang.String[] CLASS_ARCHITECTURE_PREFIX
public static final java.lang.String[] INSTALL_PATH_FRAGMENT
public static final java.lang.String[][] INSTALL_PATH_RESOURCE_KEY
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]
private static final java.lang.String VERSION_DELIMITER
private static TargetFactory me
TargetFactory
. Used
in static methods in place of this
.
private int os
private int osFlavor
private int architecture
private java.lang.String version
private java.lang.String osName
Constructor Detail |
private TargetFactory()
Method Detail |
public static TargetFactory getInstance()
TargetFactory
to use.
TargetFactory
.public java.lang.Object makeObject(java.lang.String name) throws java.lang.Exception
Operating System | Prefix |
---|---|
Microsoft Windows | Win_ |
Mac OS | Mac_ |
UNIX | UNIX_ |
OS Flavor | Prefix |
---|---|
NT | NT_ |
Mac OS X | X_ |
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.
name
- the fully qualified name of the class to load without
the extension.
java.lang.Exception
- if all attempts to instantiate class failpublic boolean versionIsHigher(java.lang.String version) throws java.lang.Exception
version
- the version number to compare to
false
if the version of the target system is
higher, otherwise true
java.lang.Exception
public int getOS()
WINDOWS
,
MAC
,
UNIX
,
GENERIC
public int getOSFlavor()
STANDARD
,
NT
,
X
public int getArchitecture()
X86
,
OTHER
public java.lang.String getNativeLibraryExtension()
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.public java.lang.String getDefaultInstallPath(java.lang.String appName)
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.mac
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
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.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |