package com.limegroup.gnutella.util;
/**
* Wrapper for calls to native Windows code that launches files in their
* associated applications.
*/
//2345678|012345678|012345678|012345678|012345678|012345678|012345678|012345678|
public final class WindowsLauncher {
/**
* Launches the file with it's associated application on Windows.
*
* @param file the path of the file to launch
*
* @return an int for the exit code of the native method
* @throws <tt>NullPointerException</tt> if the <tt>file</tt> argument
* is <tt>null</tt>
*/
public int launchFile(String file) {
// don't want to pass null values to the native code
if(file == null) {
throw new NullPointerException("cannot accept null url values");
}
int launchCode = -1;
try {
launchCode = nativeLaunchFile(file);
} catch(UnsatisfiedLinkError ule) {
ule.printStackTrace();
}
return launchCode;
}
/**
* Opens the specified url in the default web browser on the user's
* system.
*
* @param url the url to open
* @return the return code of the native call
* @throws <tt>NullPointerException</tt> if the <tt>url</tt> argument
* is <tt>null</tt>
*/
public int openURL(final String url) {
// don't want to pass null values to the native code
if(url == null) {
throw new NullPointerException("cannot accept null url values");
}
int openCode = -1;
try {
openCode = nativeOpenURL(url);
} catch(UnsatisfiedLinkError ule) {
ule.printStackTrace();
}
return openCode;
}
/**
* Native method for launching the specified file.
*
* @param file the full path of the file to launch
* @return the return code of the native method
*/
private static native int nativeLaunchFile(String file);
/**
* Native method for launching the specified url in the user's default
* web browser.
*
* @param url the url to open
* @return the return code of the native method
*/
private static native int nativeOpenURL(String url);
}