public class TargetFactory extends Object
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.Modifier and Type | Field and Description |
---|---|
private int |
architecture
identifies the hardware architecture we are running on
|
(package private) static String[] |
CLASS_ARCHITECTURE_PREFIX
The list of processor architecture specific prefixes.
|
(package private) static String[] |
CLASS_FLAVOR_PREFIX
The os favor specific class prefixes for classes the implement different versions for various
os favors.
|
(package private) static 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.
|
(package private) static String[] |
INSTALL_PATH_FRAGMENT
The list of default install path fragments.
|
(package private) 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.
|
(package private) static String[] |
LIBRARY_EXTENSION
The extensions used for native libraries on various 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
|
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 String |
version
represents the version number of the target system
|
private static 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.
|
Modifier | Constructor and Description |
---|---|
private |
TargetFactory()
Constructor
|
Modifier and Type | Method and Description |
---|---|
int |
getArchitecture()
Returns an index number that identified the processor architecture of the target system.
|
static String |
getCurrentOSPrefix()
Gets a prefix alias for the current platform.
|
String |
getDefaultInstallPath(String appName)
Returns the system dependent default install path.
|
static TargetFactory |
getInstance()
Returns an instance of
TargetFactory to use. |
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.
|
Object |
makeObject(String name)
This method returns an OS and OS flavor specific instance of the requested class.
|
boolean |
versionIsHigher(String version)
Returns true if the version in the parameter string is higher than the version of the target
os.
|
public static final int WINDOWS
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
static final String[] LIBRARY_EXTENSION
static final String[] CLASS_PREFIX
static final String[] CLASS_FLAVOR_PREFIX
static final String[] CLASS_ARCHITECTURE_PREFIX
static final String[] INSTALL_PATH_FRAGMENT
static final 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 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 TargetFactory()
public static TargetFactory getInstance()
TargetFactory
to use.TargetFactory
.public Object makeObject(String name) throws 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.Exception
- if all attempts to instantiate class failpublic boolean versionIsHigher(String version) throws Exception
version
- the version number to compare tofalse
if the version of the target system is higher, otherwise
true
Exception
public int getOS()
public int getOSFlavor()
public int getArchitecture()
public 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 String getDefaultInstallPath(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.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.public static String getCurrentOSPrefix()
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses