Some javadocs, include javadocs in the application distribution.
This commit is contained in:
@@ -98,10 +98,17 @@ task nativeJar(type: Jar) {
|
|||||||
archiveName = 'native-platform-jni.jar'
|
archiveName = 'native-platform-jni.jar'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
javadoc {
|
||||||
|
exclude '**/internal/**'
|
||||||
|
}
|
||||||
|
|
||||||
startScripts.classpath += nativeJar.outputs.files
|
startScripts.classpath += nativeJar.outputs.files
|
||||||
applicationDistribution.from(nativeJar) {
|
applicationDistribution.from(nativeJar) {
|
||||||
into 'lib'
|
into 'lib'
|
||||||
}
|
}
|
||||||
|
applicationDistribution.from(javadoc) {
|
||||||
|
into 'javadoc'
|
||||||
|
}
|
||||||
|
|
||||||
libraries.all {
|
libraries.all {
|
||||||
it.spec.task.dependsOn nativeHeaders
|
it.spec.task.dependsOn nativeHeaders
|
||||||
|
|||||||
@@ -2,12 +2,27 @@ package net.rubygrapefruit.platform;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Information about a file system. This is a snapshot view and does not change.
|
||||||
|
*/
|
||||||
public interface FileSystem {
|
public interface FileSystem {
|
||||||
|
/**
|
||||||
|
* Returns the root directory of this file system.
|
||||||
|
*/
|
||||||
File getMountPoint();
|
File getMountPoint();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the operating system specific name for the type of this file system.
|
||||||
|
*/
|
||||||
String getFileSystemType();
|
String getFileSystemType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if this file system is a remote file system, or false if local.
|
||||||
|
*/
|
||||||
boolean isRemote();
|
boolean isRemote();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the operating system specific name for this file system.
|
||||||
|
*/
|
||||||
String getDeviceName();
|
String getDeviceName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package net.rubygrapefruit.platform;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides access to the file systems of the current machine.
|
||||||
|
*/
|
||||||
public interface FileSystems extends NativeIntegration {
|
public interface FileSystems extends NativeIntegration {
|
||||||
/**
|
/**
|
||||||
* Returns the set of all file systems for the current machine.
|
* Returns the set of all file systems for the current machine.
|
||||||
|
|||||||
@@ -13,12 +13,16 @@ public class Native {
|
|||||||
private static final Object lock = new Object();
|
private static final Object lock = new Object();
|
||||||
private static boolean loaded;
|
private static boolean loaded;
|
||||||
|
|
||||||
|
private Native() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialises the native integration, if not already initialized.
|
* Initialises the native integration, if not already initialized.
|
||||||
*
|
*
|
||||||
* @param extractDir The directory to extract native resources into. May be null.
|
* @param extractDir The directory to extract native resources into. May be null, in which case a default is
|
||||||
|
* selected.
|
||||||
*/
|
*/
|
||||||
static void init(File extractDir) {
|
static public void init(File extractDir) {
|
||||||
synchronized (lock) {
|
synchronized (lock) {
|
||||||
if (!loaded) {
|
if (!loaded) {
|
||||||
Platform platform = Platform.current();
|
Platform platform = Platform.current();
|
||||||
@@ -56,7 +60,13 @@ public class Native {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static <T extends NativeIntegration> T get(Class<T> type) {
|
/**
|
||||||
|
* Locates a native integration of the given type.
|
||||||
|
*
|
||||||
|
* @return The native integration.
|
||||||
|
* @throws UnsupportedOperationException if the given integration is not available.
|
||||||
|
*/
|
||||||
|
public static <T extends NativeIntegration> T get(Class<T> type) throws UnsupportedOperationException {
|
||||||
init(null);
|
init(null);
|
||||||
Platform platform = Platform.current();
|
Platform platform = Platform.current();
|
||||||
T integration = platform.get(type);
|
T integration = platform.get(type);
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
package net.rubygrapefruit.platform;
|
package net.rubygrapefruit.platform;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A marker interface that represents a native integration.
|
||||||
|
*/
|
||||||
public interface NativeIntegration {
|
public interface NativeIntegration {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ import java.io.File;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Functions to query and modify a file's POSIX meta-data.
|
* Functions to query and modify a file's POSIX meta-data.
|
||||||
*
|
|
||||||
* Supported on Linux, OS X
|
|
||||||
*/
|
*/
|
||||||
public interface PosixFile extends NativeIntegration {
|
public interface PosixFile extends NativeIntegration {
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,27 +1,21 @@
|
|||||||
package net.rubygrapefruit.platform;
|
package net.rubygrapefruit.platform;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides access to some system information.
|
* Provides access to some system information. This is a snapshot view and does not change.
|
||||||
*/
|
*/
|
||||||
public interface SystemInfo extends NativeIntegration {
|
public interface SystemInfo extends NativeIntegration {
|
||||||
/**
|
/**
|
||||||
* Returns the name of the kernel for the current operating system.
|
* Returns the name of the kernel for the current operating system.
|
||||||
*
|
|
||||||
* @throws NativeException on failure.
|
|
||||||
*/
|
*/
|
||||||
String getKernelName() throws NativeException;
|
String getKernelName();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the version of the kernel for the current operating system.
|
* Returns the version of the kernel for the current operating system.
|
||||||
*
|
|
||||||
* @throws NativeException on failure.
|
|
||||||
*/
|
*/
|
||||||
String getKernelVersion() throws NativeException;
|
String getKernelVersion();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the machine architecture, as reported by the operating system.
|
* Returns the machine architecture, as reported by the operating system.
|
||||||
*
|
|
||||||
* @throws NativeException on failure.
|
|
||||||
*/
|
*/
|
||||||
String getMachineArchitecture() throws NativeException;
|
String getMachineArchitecture();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ package net.rubygrapefruit.platform;
|
|||||||
* Supported on Linux, OS X, Windows.
|
* Supported on Linux, OS X, Windows.
|
||||||
*/
|
*/
|
||||||
public interface Terminal {
|
public interface Terminal {
|
||||||
|
/**
|
||||||
|
* Colors supported by a terminal.
|
||||||
|
*/
|
||||||
enum Color {
|
enum Color {
|
||||||
Black, Red, Green, Yellow, Blue, Magenta, Cyan, White
|
Black, Red, Green, Yellow, Blue, Magenta, Cyan, White
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
package net.rubygrapefruit.platform;
|
package net.rubygrapefruit.platform;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The size of a terminal. This is a snapshot view and does not change.
|
||||||
|
*/
|
||||||
public interface TerminalSize {
|
public interface TerminalSize {
|
||||||
|
/**
|
||||||
|
* Returns the number of character columns in the terminal.
|
||||||
|
*/
|
||||||
public int getCols();
|
public int getCols();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of character rows in the terminal.
|
||||||
|
*/
|
||||||
public int getRows();
|
public int getRows();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ package net.rubygrapefruit.platform;
|
|||||||
* Supported on Linux, OS X, Windows.
|
* Supported on Linux, OS X, Windows.
|
||||||
*/
|
*/
|
||||||
public interface Terminals extends NativeIntegration {
|
public interface Terminals extends NativeIntegration {
|
||||||
|
/**
|
||||||
|
* System outputs.
|
||||||
|
*/
|
||||||
enum Output {Stdout, Stderr}
|
enum Output {Stdout, Stderr}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* The native integrations. Use {@link net.rubygrapefruit.platform.Native#get(Class)} to access a native integration.
|
||||||
|
*/
|
||||||
|
package net.rubygrapefruit.platform;
|
||||||
Reference in New Issue
Block a user