From 9d86a3325899606693ec1d9c42be64dc9f33ac9a Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 9 Feb 2011 02:57:32 +0100 Subject: Move implementation private files from com.jogamp..impl. to jogamp. (1/2) - rename files - com.jogamp.openal.impl -> jogamp.openal This sorts implementation details from the top level, ie skipping the public 'com', allowing a better seperation of public classes and implementation details and also reduces strings. This approach of public/private seperation is also used in the OpenJDK. --- src/java/com/jogamp/openal/impl/ALCImpl.java | 93 ------------- .../openal/impl/ALDynamicLibraryBundleInfo.java | 91 ------------- src/java/com/jogamp/openal/impl/Debug.java | 149 --------------------- src/java/jogamp/openal/ALCImpl.java | 93 +++++++++++++ .../jogamp/openal/ALDynamicLibraryBundleInfo.java | 91 +++++++++++++ src/java/jogamp/openal/Debug.java | 149 +++++++++++++++++++++ 6 files changed, 333 insertions(+), 333 deletions(-) delete mode 100644 src/java/com/jogamp/openal/impl/ALCImpl.java delete mode 100644 src/java/com/jogamp/openal/impl/ALDynamicLibraryBundleInfo.java delete mode 100644 src/java/com/jogamp/openal/impl/Debug.java create mode 100644 src/java/jogamp/openal/ALCImpl.java create mode 100644 src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java create mode 100644 src/java/jogamp/openal/Debug.java diff --git a/src/java/com/jogamp/openal/impl/ALCImpl.java b/src/java/com/jogamp/openal/impl/ALCImpl.java deleted file mode 100644 index 75fc47d..0000000 --- a/src/java/com/jogamp/openal/impl/ALCImpl.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Created on Saturday, July 10 2010 17:08 - */ -package com.jogamp.openal.impl; - -import com.jogamp.common.nio.Buffers; -import com.jogamp.openal.ALException; -import com.jogamp.openal.ALCdevice; -import java.io.UnsupportedEncodingException; -import java.nio.ByteBuffer; -import java.util.ArrayList; - -/** - * ALC implementation. - * @author Michael Bien - */ -public class ALCImpl extends ALCAbstractImpl { - - public String alcGetString(ALCdevice device, int param) { - if (device == null && param == ALC_DEVICE_SPECIFIER) { - throw new ALException("Call alcGetDeviceSpecifiers to fetch all available device names"); - } - - ByteBuffer buf = alcGetStringImpl(device, param); - if (buf == null) { - return null; - } - byte[] res = new byte[buf.capacity()]; - buf.get(res); - try { - return new String(res, "US-ASCII"); - } catch (UnsupportedEncodingException e) { - throw new ALException(e); - } - } - - /** Entry point (through function pointer) to C language function:
const ALCchar * alcGetString(ALCdevice * device, ALCenum param); */ - public ByteBuffer alcGetStringImpl(ALCdevice device, int param) { - - final long __addr_ = getALCProcAddressTable()._addressof_alcGetString; - if (__addr_ == 0) { - throw new UnsupportedOperationException("Method \"alcGetStringImpl\" not available"); - } - ByteBuffer _res; - _res = dispatch_alcGetStringImpl1(((device == null) ? null : device.getBuffer()), param, __addr_); - if (_res == null) { - return null; - } - Buffers.nativeOrder(_res); - return _res; - } - private native java.nio.ByteBuffer dispatch_alcGetStringImpl1(ByteBuffer deviceBuffer, int param, long addr); - - /** - * Fetches the names of the available ALC device specifiers. - * Equivalent to the C call alcGetString(NULL, ALC_DEVICE_SPECIFIER). - */ - public String[] alcGetDeviceSpecifiers() { - return getDoubleNullTerminatedString(ALC_DEVICE_SPECIFIER); - } - - /** - * Fetches the names of the available ALC capture device specifiers. - * Equivalent to the C call alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER). - */ - public String[] alcGetCaptureDeviceSpecifiers() { - return getDoubleNullTerminatedString(ALC_CAPTURE_DEVICE_SPECIFIER); - } - - private String[] getDoubleNullTerminatedString(int which) { - ByteBuffer buf = alcGetStringImpl(null, which); - if (buf == null) { - return null; - } - byte[] bytes = new byte[buf.capacity()]; - buf.get(bytes); - try { - ArrayList/**/ res = new ArrayList/**/(); - int i = 0; - while (i < bytes.length) { - int startIndex = i; - while ((i < bytes.length) && (bytes[i] != 0)) { - i++; - } - res.add(new String(bytes, startIndex, i - startIndex, "US-ASCII")); - i++; - } - return (String[]) res.toArray(new String[res.size()]); - } catch (UnsupportedEncodingException e) { - throw new ALException(e); - } - } -} diff --git a/src/java/com/jogamp/openal/impl/ALDynamicLibraryBundleInfo.java b/src/java/com/jogamp/openal/impl/ALDynamicLibraryBundleInfo.java deleted file mode 100644 index 9d41a69..0000000 --- a/src/java/com/jogamp/openal/impl/ALDynamicLibraryBundleInfo.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright 2010 JogAmp Community. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of JogAmp Community. - */ - -package com.jogamp.openal.impl; - -import com.jogamp.common.os.DynamicLibraryBundleInfo; -import java.util.*; - -public class ALDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo { - private static List/**/ glueLibNames; - static { - glueLibNames = new ArrayList(); - - glueLibNames.add("joal"); - } - - protected ALDynamicLibraryBundleInfo() { - } - - /** FIXME: not default, maybe local ? **/ - public boolean shallLinkGlobal() { return true; } - - /** default **/ - public boolean shallLookupGlobal() { return false; } - - public final List/**/ getGlueLibNames() { - return glueLibNames; - } - - public List getToolLibNames() { - List/**/ libNamesList = new ArrayList(); - - List/**/ alLibNames = new ArrayList(); - - // this is the default AL lib name, according to the spec - alLibNames.add("libopenal.so.1"); // unix - alLibNames.add("OpenAL32"); // windows - alLibNames.add("OpenAL"); // OSX - - // try this one as well, if spec fails - alLibNames.add("libOpenAL.so.1"); - alLibNames.add("libopenal.so"); - alLibNames.add("libOpenAL.so"); - - // last but not least .. the generic one - alLibNames.add("openal"); - alLibNames.add("OpenAL"); - - libNamesList.add(alLibNames); - - return libNamesList; - } - - public final List getToolGetProcAddressFuncNameList() { - List res = new ArrayList(); - res.add("alGetProcAddress"); - return res; - } - - public final long toolDynamicLookupFunction(long toolGetProcAddressHandle, String funcName) { - return ALImpl.alGetProcAddress(toolGetProcAddressHandle, funcName); - } - -} - - diff --git a/src/java/com/jogamp/openal/impl/Debug.java b/src/java/com/jogamp/openal/impl/Debug.java deleted file mode 100644 index be57b70..0000000 --- a/src/java/com/jogamp/openal/impl/Debug.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use - * in the design, construction, operation or maintenance of any nuclear - * facility. - * - * Sun gratefully acknowledges that this software was originally authored - * and developed by Kenneth Bradley Russell and Christopher John Kline. - */ - -package com.jogamp.openal.impl; - -import java.security.*; - -/** Helper routines for logging and debugging. */ - -public class Debug { - // Some common properties - private static boolean verbose; - private static boolean debugAll; - private static AccessControlContext localACC; - - static { - localACC=AccessController.getContext(); - verbose = isPropertyDefined("joal.verbose", true); - debugAll = isPropertyDefined("joal.debug", true); - } - - static int getIntProperty(final String property, final boolean jnlpAlias) { - return getIntProperty(property, jnlpAlias, localACC, 0); - } - - public static int getIntProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc, int defaultValue) { - int i=defaultValue; - try { - String sv = Debug.getProperty(property, jnlpAlias, acc); - if(null!=sv) { - Integer iv = Integer.valueOf(sv); - i = iv.intValue(); - } - } catch (NumberFormatException nfe) {} - return i; - } - - public static long getLongProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc, long defaultValue) { - long l=defaultValue; - try { - String sv = Debug.getProperty(property, jnlpAlias, acc); - if(null!=sv) { - Long lv = Long.valueOf(sv); - l = lv.longValue(); - } - } catch (NumberFormatException nfe) {} - return l; - } - - static boolean getBooleanProperty(final String property, final boolean jnlpAlias) { - return getBooleanProperty(property, jnlpAlias, localACC); - } - - public static boolean getBooleanProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) { - Boolean b = Boolean.valueOf(Debug.getProperty(property, jnlpAlias, acc)); - return b.booleanValue(); - } - - static boolean isPropertyDefined(final String property, final boolean jnlpAlias) { - return isPropertyDefined(property, jnlpAlias, localACC); - } - - public static boolean isPropertyDefined(final String property, final boolean jnlpAlias, final AccessControlContext acc) { - return (Debug.getProperty(property, jnlpAlias, acc) != null) ? true : false; - } - - static String getProperty(final String property, final boolean jnlpAlias) { - return getProperty(property, jnlpAlias, localACC); - } - - public static String getProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) { - String s=null; - if(null!=acc && acc.equals(localACC)) { - s = (String) AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - String val=null; - try { - val = System.getProperty(property); - } catch (Exception e) {} - if(null==val && jnlpAlias && !property.startsWith(jnlp_prefix)) { - try { - val = System.getProperty(jnlp_prefix + property); - } catch (Exception e) {} - } - return val; - } - }); - } else { - try { - s = System.getProperty(property); - } catch (Exception e) {} - if(null==s && jnlpAlias && !property.startsWith(jnlp_prefix)) { - try { - s = System.getProperty(jnlp_prefix + property); - } catch (Exception e) {} - } - } - return s; - } - public static final String jnlp_prefix = "jnlp." ; - - public static boolean verbose() { - return verbose; - } - - public static boolean debugAll() { - return debugAll; - } - - public static boolean debug(String subcomponent) { - return debugAll() || isPropertyDefined("joal.debug." + subcomponent, true); - } -} diff --git a/src/java/jogamp/openal/ALCImpl.java b/src/java/jogamp/openal/ALCImpl.java new file mode 100644 index 0000000..75fc47d --- /dev/null +++ b/src/java/jogamp/openal/ALCImpl.java @@ -0,0 +1,93 @@ +/* + * Created on Saturday, July 10 2010 17:08 + */ +package com.jogamp.openal.impl; + +import com.jogamp.common.nio.Buffers; +import com.jogamp.openal.ALException; +import com.jogamp.openal.ALCdevice; +import java.io.UnsupportedEncodingException; +import java.nio.ByteBuffer; +import java.util.ArrayList; + +/** + * ALC implementation. + * @author Michael Bien + */ +public class ALCImpl extends ALCAbstractImpl { + + public String alcGetString(ALCdevice device, int param) { + if (device == null && param == ALC_DEVICE_SPECIFIER) { + throw new ALException("Call alcGetDeviceSpecifiers to fetch all available device names"); + } + + ByteBuffer buf = alcGetStringImpl(device, param); + if (buf == null) { + return null; + } + byte[] res = new byte[buf.capacity()]; + buf.get(res); + try { + return new String(res, "US-ASCII"); + } catch (UnsupportedEncodingException e) { + throw new ALException(e); + } + } + + /** Entry point (through function pointer) to C language function:
const ALCchar * alcGetString(ALCdevice * device, ALCenum param); */ + public ByteBuffer alcGetStringImpl(ALCdevice device, int param) { + + final long __addr_ = getALCProcAddressTable()._addressof_alcGetString; + if (__addr_ == 0) { + throw new UnsupportedOperationException("Method \"alcGetStringImpl\" not available"); + } + ByteBuffer _res; + _res = dispatch_alcGetStringImpl1(((device == null) ? null : device.getBuffer()), param, __addr_); + if (_res == null) { + return null; + } + Buffers.nativeOrder(_res); + return _res; + } + private native java.nio.ByteBuffer dispatch_alcGetStringImpl1(ByteBuffer deviceBuffer, int param, long addr); + + /** + * Fetches the names of the available ALC device specifiers. + * Equivalent to the C call alcGetString(NULL, ALC_DEVICE_SPECIFIER). + */ + public String[] alcGetDeviceSpecifiers() { + return getDoubleNullTerminatedString(ALC_DEVICE_SPECIFIER); + } + + /** + * Fetches the names of the available ALC capture device specifiers. + * Equivalent to the C call alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER). + */ + public String[] alcGetCaptureDeviceSpecifiers() { + return getDoubleNullTerminatedString(ALC_CAPTURE_DEVICE_SPECIFIER); + } + + private String[] getDoubleNullTerminatedString(int which) { + ByteBuffer buf = alcGetStringImpl(null, which); + if (buf == null) { + return null; + } + byte[] bytes = new byte[buf.capacity()]; + buf.get(bytes); + try { + ArrayList/**/ res = new ArrayList/**/(); + int i = 0; + while (i < bytes.length) { + int startIndex = i; + while ((i < bytes.length) && (bytes[i] != 0)) { + i++; + } + res.add(new String(bytes, startIndex, i - startIndex, "US-ASCII")); + i++; + } + return (String[]) res.toArray(new String[res.size()]); + } catch (UnsupportedEncodingException e) { + throw new ALException(e); + } + } +} diff --git a/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java b/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java new file mode 100644 index 0000000..9d41a69 --- /dev/null +++ b/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java @@ -0,0 +1,91 @@ +/** + * Copyright 2010 JogAmp Community. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of JogAmp Community. + */ + +package com.jogamp.openal.impl; + +import com.jogamp.common.os.DynamicLibraryBundleInfo; +import java.util.*; + +public class ALDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo { + private static List/**/ glueLibNames; + static { + glueLibNames = new ArrayList(); + + glueLibNames.add("joal"); + } + + protected ALDynamicLibraryBundleInfo() { + } + + /** FIXME: not default, maybe local ? **/ + public boolean shallLinkGlobal() { return true; } + + /** default **/ + public boolean shallLookupGlobal() { return false; } + + public final List/**/ getGlueLibNames() { + return glueLibNames; + } + + public List getToolLibNames() { + List/**/ libNamesList = new ArrayList(); + + List/**/ alLibNames = new ArrayList(); + + // this is the default AL lib name, according to the spec + alLibNames.add("libopenal.so.1"); // unix + alLibNames.add("OpenAL32"); // windows + alLibNames.add("OpenAL"); // OSX + + // try this one as well, if spec fails + alLibNames.add("libOpenAL.so.1"); + alLibNames.add("libopenal.so"); + alLibNames.add("libOpenAL.so"); + + // last but not least .. the generic one + alLibNames.add("openal"); + alLibNames.add("OpenAL"); + + libNamesList.add(alLibNames); + + return libNamesList; + } + + public final List getToolGetProcAddressFuncNameList() { + List res = new ArrayList(); + res.add("alGetProcAddress"); + return res; + } + + public final long toolDynamicLookupFunction(long toolGetProcAddressHandle, String funcName) { + return ALImpl.alGetProcAddress(toolGetProcAddressHandle, funcName); + } + +} + + diff --git a/src/java/jogamp/openal/Debug.java b/src/java/jogamp/openal/Debug.java new file mode 100644 index 0000000..be57b70 --- /dev/null +++ b/src/java/jogamp/openal/Debug.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * - Redistribution of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistribution in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * Neither the name of Sun Microsystems, Inc. or the names of + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * This software is provided "AS IS," without a warranty of any kind. ALL + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, + * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN + * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR + * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR + * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR + * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR + * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE + * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, + * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF + * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + * You acknowledge that this software is not designed or intended for use + * in the design, construction, operation or maintenance of any nuclear + * facility. + * + * Sun gratefully acknowledges that this software was originally authored + * and developed by Kenneth Bradley Russell and Christopher John Kline. + */ + +package com.jogamp.openal.impl; + +import java.security.*; + +/** Helper routines for logging and debugging. */ + +public class Debug { + // Some common properties + private static boolean verbose; + private static boolean debugAll; + private static AccessControlContext localACC; + + static { + localACC=AccessController.getContext(); + verbose = isPropertyDefined("joal.verbose", true); + debugAll = isPropertyDefined("joal.debug", true); + } + + static int getIntProperty(final String property, final boolean jnlpAlias) { + return getIntProperty(property, jnlpAlias, localACC, 0); + } + + public static int getIntProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc, int defaultValue) { + int i=defaultValue; + try { + String sv = Debug.getProperty(property, jnlpAlias, acc); + if(null!=sv) { + Integer iv = Integer.valueOf(sv); + i = iv.intValue(); + } + } catch (NumberFormatException nfe) {} + return i; + } + + public static long getLongProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc, long defaultValue) { + long l=defaultValue; + try { + String sv = Debug.getProperty(property, jnlpAlias, acc); + if(null!=sv) { + Long lv = Long.valueOf(sv); + l = lv.longValue(); + } + } catch (NumberFormatException nfe) {} + return l; + } + + static boolean getBooleanProperty(final String property, final boolean jnlpAlias) { + return getBooleanProperty(property, jnlpAlias, localACC); + } + + public static boolean getBooleanProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) { + Boolean b = Boolean.valueOf(Debug.getProperty(property, jnlpAlias, acc)); + return b.booleanValue(); + } + + static boolean isPropertyDefined(final String property, final boolean jnlpAlias) { + return isPropertyDefined(property, jnlpAlias, localACC); + } + + public static boolean isPropertyDefined(final String property, final boolean jnlpAlias, final AccessControlContext acc) { + return (Debug.getProperty(property, jnlpAlias, acc) != null) ? true : false; + } + + static String getProperty(final String property, final boolean jnlpAlias) { + return getProperty(property, jnlpAlias, localACC); + } + + public static String getProperty(final String property, final boolean jnlpAlias, final AccessControlContext acc) { + String s=null; + if(null!=acc && acc.equals(localACC)) { + s = (String) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + String val=null; + try { + val = System.getProperty(property); + } catch (Exception e) {} + if(null==val && jnlpAlias && !property.startsWith(jnlp_prefix)) { + try { + val = System.getProperty(jnlp_prefix + property); + } catch (Exception e) {} + } + return val; + } + }); + } else { + try { + s = System.getProperty(property); + } catch (Exception e) {} + if(null==s && jnlpAlias && !property.startsWith(jnlp_prefix)) { + try { + s = System.getProperty(jnlp_prefix + property); + } catch (Exception e) {} + } + } + return s; + } + public static final String jnlp_prefix = "jnlp." ; + + public static boolean verbose() { + return verbose; + } + + public static boolean debugAll() { + return debugAll; + } + + public static boolean debug(String subcomponent) { + return debugAll() || isPropertyDefined("joal.debug." + subcomponent, true); + } +} -- cgit v1.2.3