summaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/util/IOUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/jogamp/common/util/IOUtil.java')
-rw-r--r--src/java/com/jogamp/common/util/IOUtil.java118
1 files changed, 59 insertions, 59 deletions
diff --git a/src/java/com/jogamp/common/util/IOUtil.java b/src/java/com/jogamp/common/util/IOUtil.java
index c70fa92..3b145af 100644
--- a/src/java/com/jogamp/common/util/IOUtil.java
+++ b/src/java/com/jogamp/common/util/IOUtil.java
@@ -98,7 +98,7 @@ public class IOUtil {
try {
_fosCtor = ReflectionUtil.getConstructor("java.io.FileOutputStream", new Class<?>[] { File.class }, true, IOUtil.class.getClassLoader());
_t = null;
- } catch (Throwable t) {
+ } catch (final Throwable t) {
_fosCtor = null;
_t = t;
}
@@ -126,11 +126,11 @@ public class IOUtil {
* @return
* @throws IOException
*/
- public static int copyURLConn2File(URLConnection conn, File outFile) throws IOException {
+ public static int copyURLConn2File(final URLConnection conn, final File outFile) throws IOException {
conn.connect(); // redundant
int totalNumBytes = 0;
- InputStream in = new BufferedInputStream(conn.getInputStream());
+ final InputStream in = new BufferedInputStream(conn.getInputStream());
try {
totalNumBytes = copyStream2File(in, outFile, conn.getContentLength());
} finally {
@@ -149,8 +149,8 @@ public class IOUtil {
* @return
* @throws IOException
*/
- public static int copyStream2File(InputStream in, File outFile, int totalNumBytes) throws IOException {
- OutputStream out = new BufferedOutputStream(new FileOutputStream(outFile));
+ public static int copyStream2File(final InputStream in, final File outFile, int totalNumBytes) throws IOException {
+ final OutputStream out = new BufferedOutputStream(new FileOutputStream(outFile));
try {
totalNumBytes = copyStream2Stream(in, out, totalNumBytes);
} finally {
@@ -169,7 +169,7 @@ public class IOUtil {
* @return
* @throws IOException
*/
- public static int copyStream2Stream(InputStream in, OutputStream out, int totalNumBytes) throws IOException {
+ public static int copyStream2Stream(final InputStream in, final OutputStream out, final int totalNumBytes) throws IOException {
return copyStream2Stream(Platform.getMachineDescription().pageSizeInBytes(), in, out, totalNumBytes);
}
@@ -184,7 +184,7 @@ public class IOUtil {
* @return
* @throws IOException
*/
- public static int copyStream2Stream(int bufferSize, InputStream in, OutputStream out, int totalNumBytes) throws IOException {
+ public static int copyStream2Stream(final int bufferSize, final InputStream in, final OutputStream out, final int totalNumBytes) throws IOException {
final byte[] buf = new byte[bufferSize];
int numBytes = 0;
while (true) {
@@ -238,7 +238,7 @@ public class IOUtil {
*
* @param stream input stream, which will be wrapped into a BufferedInputStream, if not already done.
*/
- public static ByteBuffer copyStream2ByteBuffer(InputStream stream) throws IOException {
+ public static ByteBuffer copyStream2ByteBuffer(final InputStream stream) throws IOException {
return copyStream2ByteBuffer(stream, -1);
}
@@ -259,7 +259,7 @@ public class IOUtil {
}
final MachineDescription machine = Platform.getMachineDescription();
ByteBuffer data = Buffers.newDirectByteBuffer( machine.pageAlignedSize( initialCapacity ) );
- byte[] chunk = new byte[machine.pageSizeInBytes()];
+ final byte[] chunk = new byte[machine.pageSizeInBytes()];
int chunk2Read = Math.min(machine.pageSizeInBytes(), avail);
int numRead = 0;
do {
@@ -296,7 +296,7 @@ public class IOUtil {
* @return
* @throws URISyntaxException if path is empty or has no parent directory available while resolving <code>../</code>
*/
- public static String slashify(String path, boolean startWithSlash, boolean endWithSlash) throws URISyntaxException {
+ public static String slashify(final String path, final boolean startWithSlash, final boolean endWithSlash) throws URISyntaxException {
String p = path.replace('\\', '/'); // unify file separator
if (startWithSlash && !p.startsWith("/")) {
p = "/" + p;
@@ -312,7 +312,7 @@ public class IOUtil {
* @throws URISyntaxException if path is empty or has no parent directory available while resolving <code>../</code>
* @throws URISyntaxException if the resulting string does not comply w/ an RFC 2396 URI
*/
- public static URI toURISimple(File file) throws URISyntaxException {
+ public static URI toURISimple(final File file) throws URISyntaxException {
return new URI(FILE_SCHEME, null, slashify(file.getAbsolutePath(), true /* startWithSlash */, file.isDirectory() /* endWithSlash */), null);
}
@@ -321,7 +321,7 @@ public class IOUtil {
* @throws URISyntaxException if path is empty or has no parent directory available while resolving <code>../</code>
* @throws URISyntaxException if the resulting string does not comply w/ an RFC 2396 URI
*/
- public static URI toURISimple(String protocol, String path, boolean isDirectory) throws URISyntaxException {
+ public static URI toURISimple(final String protocol, final String path, final boolean isDirectory) throws URISyntaxException {
return new URI(protocol, null, slashify(new File(path).getAbsolutePath(), true /* startWithSlash */, isDirectory /* endWithSlash */), null);
}
@@ -336,7 +336,7 @@ public class IOUtil {
* @throws NullPointerException if file is null
*/
- public static String getFileSuffix(File file) {
+ public static String getFileSuffix(final File file) {
return getFileSuffix(file.getName());
}
@@ -350,14 +350,14 @@ public class IOUtil {
* @return lowercase suffix of the file name
* @throws NullPointerException if filename is null
*/
- public static String getFileSuffix(String filename) {
- int lastDot = filename.lastIndexOf('.');
+ public static String getFileSuffix(final String filename) {
+ final int lastDot = filename.lastIndexOf('.');
if (lastDot < 0) {
return null;
}
return toLowerCase(filename.substring(lastDot + 1));
}
- private static String toLowerCase(String arg) {
+ private static String toLowerCase(final String arg) {
if (arg == null) {
return null;
}
@@ -373,7 +373,7 @@ public class IOUtil {
* the class {@link java.io.FileOutputStream} is not accessible or
* the user does not have sufficient rights to access the local filesystem.
*/
- public static FileOutputStream getFileOutputStream(File file, boolean allowOverwrite) throws IOException {
+ public static FileOutputStream getFileOutputStream(final File file, final boolean allowOverwrite) throws IOException {
final Constructor<?> fosCtor = getFOSCtor();
if(null == fosCtor) {
throw new IOException("Cannot open file (" + file + ") for writing, FileOutputStream feature not available.");
@@ -383,12 +383,12 @@ public class IOUtil {
}
try {
return (FileOutputStream) fosCtor.newInstance(new Object[] { file });
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new IOException("error opening " + file + " for write. ", e);
}
}
- public static String getClassFileName(String clazzBinName) {
+ public static String getClassFileName(final String clazzBinName) {
// or return clazzBinName.replace('.', File.separatorChar) + ".class"; ?
return clazzBinName.replace('.', '/') + ".class";
}
@@ -399,7 +399,7 @@ public class IOUtil {
* @return jar:file:/usr/local/projects/JOGL/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/util/cache/TempJarCache.class
* @throws IOException if the jar file could not been found by the ClassLoader
*/
- public static URL getClassURL(String clazzBinName, ClassLoader cl) throws IOException {
+ public static URL getClassURL(final String clazzBinName, final ClassLoader cl) throws IOException {
final URL url = cl.getResource(getClassFileName(clazzBinName));
if(null == url) {
throw new IOException("Cannot not find: "+clazzBinName);
@@ -413,7 +413,7 @@ public class IOUtil {
*/
public static String getBasename(String fname) throws URISyntaxException {
fname = slashify(fname, false /* startWithSlash */, false /* endWithSlash */);
- int lios = fname.lastIndexOf('/'); // strip off dirname
+ final int lios = fname.lastIndexOf('/'); // strip off dirname
if(lios>=0) {
fname = fname.substring(lios+1);
}
@@ -426,7 +426,7 @@ public class IOUtil {
*/
public static String getDirname(String fname) throws URISyntaxException {
fname = slashify(fname, false /* startWithSlash */, false /* endWithSlash */);
- int lios = fname.lastIndexOf('/'); // strip off dirname
+ final int lios = fname.lastIndexOf('/'); // strip off dirname
if(lios>=0) {
fname = fname.substring(0, lios+1);
}
@@ -445,11 +445,11 @@ public class IOUtil {
* @throws IllegalArgumentException if the URI doesn't match the expected formatting, or is null
* @throws URISyntaxException
*/
- public static URI getURIDirname(URI uri) throws IllegalArgumentException, URISyntaxException {
+ public static URI getURIDirname(final URI uri) throws IllegalArgumentException, URISyntaxException {
if(null == uri) {
throw new IllegalArgumentException("URI is null");
}
- String uriS = uri.toString();
+ final String uriS = uri.toString();
if( DEBUG ) {
System.err.println("getURIDirname "+uri+", extForm: "+uriS);
}
@@ -556,7 +556,7 @@ public class IOUtil {
File f;
try {
f = new File( decodeFromURI( specificURI.getPath() ) ); // validates uri, uses decoded uri.getPath() and normalizes it
- } catch(Exception iae) {
+ } catch(final Exception iae) {
if( DEBUG ) {
System.err.println("Caught "+iae.getClass().getSimpleName()+": new File("+decodeFromURI( specificURI.getPath() )+") failed: "+iae.getMessage());
iae.printStackTrace();
@@ -584,7 +584,7 @@ public class IOUtil {
final URL fUrl = fUri.toURL();
System.err.println("IOUtil.toURL.1b: fUri "+fUri+PlatformPropsImpl.NEWLINE+
"\t, fUrl "+fUrl);
- } catch (Exception ee) {
+ } catch (final Exception ee) {
System.err.println("Caught "+ee.getClass().getSimpleName()+": f.toURI().toURL() failed: "+ee.getMessage());
ee.printStackTrace();
}
@@ -612,7 +612,7 @@ public class IOUtil {
url = new URL(urlS);
mode = 2;
}
- } catch (Exception mue) {
+ } catch (final Exception mue) {
if( DEBUG ) {
System.err.println("Caught "+mue.getClass().getSimpleName()+": new URL("+urlS+") failed: "+mue.getMessage());
mue.printStackTrace();
@@ -624,7 +624,7 @@ public class IOUtil {
try {
url = uri.toURL();
mode = 3;
- } catch (Exception e) {
+ } catch (final Exception e) {
if( DEBUG ) {
System.err.println("Caught "+e.getClass().getSimpleName()+": "+uri+".toURL() failed: "+e.getMessage());
e.printStackTrace();
@@ -662,7 +662,7 @@ public class IOUtil {
* @param contextCL class instance to {@link #resolve(int)} {@link #resourcePaths}.
* @param resourcePaths array of strings denominating multiple resource paths. None shall be null.
*/
- public ClassResources(Class<?> contextCL, String[] resourcePaths) {
+ public ClassResources(final Class<?> contextCL, final String[] resourcePaths) {
for(int i=resourcePaths.length-1; i>=0; i--) {
if( null == resourcePaths[i] ) {
throw new IllegalArgumentException("resourcePath["+i+"] is null");
@@ -676,7 +676,7 @@ public class IOUtil {
* Resolving one of the {@link #resourcePaths} indexed by <code>uriIndex</code> using {@link #contextCL} and {@link IOUtil#getResource(Class, String)}.
* @throws ArrayIndexOutOfBoundsException if <code>uriIndex</code> is < 0 or >= {@link #resourceCount()}.
*/
- public URLConnection resolve(int uriIndex) throws ArrayIndexOutOfBoundsException {
+ public URLConnection resolve(final int uriIndex) throws ArrayIndexOutOfBoundsException {
return getResource(contextCL, resourcePaths[uriIndex]);
}
}
@@ -698,11 +698,11 @@ public class IOUtil {
* @see ClassLoader#getResource(String)
* @see ClassLoader#getSystemResource(String)
*/
- public static URLConnection getResource(Class<?> context, String resourcePath) {
+ public static URLConnection getResource(final Class<?> context, final String resourcePath) {
if(null == resourcePath) {
return null;
}
- ClassLoader contextCL = (null!=context)?context.getClassLoader():IOUtil.class.getClassLoader();
+ final ClassLoader contextCL = (null!=context)?context.getClassLoader():IOUtil.class.getClassLoader();
URLConnection conn = null;
if(null != context) {
// scoping the path within the class's package
@@ -738,7 +738,7 @@ public class IOUtil {
* @see URL#URL(String)
* @see File#File(String)
*/
- public static URLConnection getResource(String resourcePath, ClassLoader cl) {
+ public static URLConnection getResource(final String resourcePath, final ClassLoader cl) {
if(null == resourcePath) {
return null;
}
@@ -748,7 +748,7 @@ public class IOUtil {
if(resourcePath.startsWith(AssetURLContext.asset_protocol_prefix)) {
try {
return AssetURLContext.createURL(resourcePath, cl).openConnection();
- } catch (IOException ioe) {
+ } catch (final IOException ioe) {
if(DEBUG) {
System.err.println("IOUtil: Caught Exception:");
ioe.printStackTrace();
@@ -758,7 +758,7 @@ public class IOUtil {
} else {
try {
return AssetURLContext.resolve(resourcePath, cl);
- } catch (IOException ioe) {
+ } catch (final IOException ioe) {
if(DEBUG) {
System.err.println("IOUtil: Caught Exception:");
ioe.printStackTrace();
@@ -775,7 +775,7 @@ public class IOUtil {
* @param relativeFile denotes a relative file to the baseLocation
* @throws URISyntaxException if path is empty or has no parent directory available while resolving <code>../</code>
*/
- public static String getRelativeOf(File baseLocation, String relativeFile) throws URISyntaxException {
+ public static String getRelativeOf(final File baseLocation, final String relativeFile) throws URISyntaxException {
if(null == relativeFile) {
return null;
}
@@ -793,7 +793,7 @@ public class IOUtil {
* @return parent of path
* @throws URISyntaxException if path is empty or has no parent directory available
*/
- public static String getParentOf(String path) throws URISyntaxException {
+ public static String getParentOf(final String path) throws URISyntaxException {
final int pl = null!=path ? path.length() : 0;
if(pl == 0) {
throw new IllegalArgumentException("path is empty <"+path+">");
@@ -850,7 +850,7 @@ public class IOUtil {
* @param relativePath denotes a relative file to the baseLocation's parent directory
* @throws URISyntaxException if path is empty or has no parent directory available while resolving <code>../</code>
*/
- public static URI getRelativeOf(URI baseURI, String relativePath) throws URISyntaxException {
+ public static URI getRelativeOf(final URI baseURI, final String relativePath) throws URISyntaxException {
return compose(baseURI.getScheme(), baseURI.getSchemeSpecificPart(), relativePath, baseURI.getFragment());
}
@@ -858,10 +858,10 @@ public class IOUtil {
* Wraps {@link #getRelativeOf(URI, String)} for convenience.
* @throws IOException
*/
- public static URL getRelativeOf(URL baseURL, String relativePath) throws IOException {
+ public static URL getRelativeOf(final URL baseURL, final String relativePath) throws IOException {
try {
return getRelativeOf(baseURL.toURI(), relativePath).toURL();
- } catch (URISyntaxException e) {
+ } catch (final URISyntaxException e) {
throw new IOException(e);
}
}
@@ -883,7 +883,7 @@ public class IOUtil {
* @throws URISyntaxException if path is empty or has no parent directory available while resolving <code>../</code>
* @see #encodeToURI(String)
*/
- public static URI compose(String scheme, String schemeSpecificPart, String relativePath, String fragment) throws URISyntaxException {
+ public static URI compose(final String scheme, String schemeSpecificPart, final String relativePath, final String fragment) throws URISyntaxException {
// cut off optional query in scheme-specific-part
final String query;
final int queryI = schemeSpecificPart.lastIndexOf('?');
@@ -912,7 +912,7 @@ public class IOUtil {
* <li>SPACE -> %20</li>
* </ul>
*/
- public static String encodeToURI(String s) {
+ public static String encodeToURI(final String s) {
return patternSpaceRaw.matcher(s).replaceAll("%20");
}
@@ -922,7 +922,7 @@ public class IOUtil {
* <li>%20 -> SPACE</li>
* </ul>
*/
- public static String decodeFromURI(String s) {
+ public static String decodeFromURI(final String s) {
return patternSpaceEnc.matcher(s).replaceAll(" ");
}
@@ -1019,14 +1019,14 @@ public class IOUtil {
/**
* Returns the connected URLConnection, or null if not url is not available
*/
- public static URLConnection openURL(URL url) {
+ public static URLConnection openURL(final URL url) {
return openURL(url, ".");
}
/**
* Returns the connected URLConnection, or null if not url is not available
*/
- public static URLConnection openURL(URL url, String dbgmsg) {
+ public static URLConnection openURL(final URL url, final String dbgmsg) {
if(null!=url) {
try {
final URLConnection c = url.openConnection();
@@ -1035,7 +1035,7 @@ public class IOUtil {
System.err.println("IOUtil: urlExists("+url+") ["+dbgmsg+"] - true");
}
return c;
- } catch (IOException ioe) {
+ } catch (final IOException ioe) {
if(DEBUG) {
System.err.println("IOUtil: urlExists("+url+") ["+dbgmsg+"] - false - "+ioe.getClass().getSimpleName()+": "+ioe.getMessage());
ioe.printStackTrace();
@@ -1092,7 +1092,7 @@ public class IOUtil {
* @param shallBeWritable
* @return
*/
- public static boolean testFile(File file, boolean shallBeDir, boolean shallBeWritable) {
+ public static boolean testFile(final File file, final boolean shallBeDir, final boolean shallBeWritable) {
if (!file.exists()) {
if(DEBUG) {
System.err.println("IOUtil.testFile: <"+file.getAbsolutePath()+">: does not exist");
@@ -1126,7 +1126,7 @@ public class IOUtil {
* @throws SecurityException if file creation and process execution is not allowed within the current security context
* @param dir
*/
- public static boolean testDirExec(File dir)
+ public static boolean testDirExec(final File dir)
throws SecurityException
{
if (!testFile(dir, true, true)) {
@@ -1145,9 +1145,9 @@ public class IOUtil {
File exetst;
try {
exetst = File.createTempFile("jogamp_exe_tst", getShellSuffix(), dir);
- } catch (SecurityException se) {
+ } catch (final SecurityException se) {
throw se; // fwd Security exception
- } catch (IOException e) {
+ } catch (final IOException e) {
if(DEBUG) {
e.printStackTrace();
}
@@ -1156,12 +1156,12 @@ public class IOUtil {
int res = -1;
if(exetst.setExecutable(true /* exec */, true /* ownerOnly */)) {
try {
- Process pr = Runtime.getRuntime().exec(exetst.getCanonicalPath());
+ final Process pr = Runtime.getRuntime().exec(exetst.getCanonicalPath());
pr.waitFor() ;
res = pr.exitValue();
- } catch (SecurityException se) {
+ } catch (final SecurityException se) {
throw se; // fwd Security exception
- } catch (Throwable t) {
+ } catch (final Throwable t) {
res = -2;
if(DEBUG) {
System.err.println("IOUtil.testDirExec: <"+exetst.getAbsolutePath()+">: Caught "+t.getClass().getSimpleName()+": "+t.getMessage());
@@ -1176,7 +1176,7 @@ public class IOUtil {
return 0 == res;
}
- private static File testDirImpl(File dir, boolean create, boolean executable, String dbgMsg)
+ private static File testDirImpl(final File dir, final boolean create, final boolean executable, final String dbgMsg)
throws SecurityException
{
final File res;
@@ -1214,7 +1214,7 @@ public class IOUtil {
return testDirImpl(dir, create, executable, "testDir");
}
- private static boolean isStringSet(String s) { return null != s && 0 < s.length(); }
+ private static boolean isStringSet(final String s) { return null != s && 0 < s.length(); }
/**
* This methods finds [and creates] an available temporary sub-directory:
@@ -1240,7 +1240,7 @@ public class IOUtil {
* @return a temporary directory, writable by this user
* @throws SecurityException
*/
- private static File getSubTempDir(File tmpRoot, String tmpSubDirPrefix, boolean executable, String dbgMsg)
+ private static File getSubTempDir(final File tmpRoot, final String tmpSubDirPrefix, final boolean executable, final String dbgMsg)
throws SecurityException
{
File tmpBaseDir = null;
@@ -1411,17 +1411,17 @@ public class IOUtil {
* @throws IOException
* @throws SecurityException
*/
- public static File createTempFile(String prefix, String suffix, boolean executable)
+ public static File createTempFile(final String prefix, final String suffix, final boolean executable)
throws IllegalArgumentException, IOException, SecurityException
{
return File.createTempFile( prefix, suffix, getTempDir(executable) );
}
- public static void close(Closeable stream, boolean throwRuntimeException) throws RuntimeException {
+ public static void close(final Closeable stream, final boolean throwRuntimeException) throws RuntimeException {
if(null != stream) {
try {
stream.close();
- } catch (IOException e) {
+ } catch (final IOException e) {
if(throwRuntimeException) {
throw new RuntimeException(e);
} else if(DEBUG) {