diff options
Diffstat (limited to 'src/java/com/jogamp/common/util/PropertyAccess.java')
-rw-r--r-- | src/java/com/jogamp/common/util/PropertyAccess.java | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/src/java/com/jogamp/common/util/PropertyAccess.java b/src/java/com/jogamp/common/util/PropertyAccess.java index fdb2665..5a8f082 100644 --- a/src/java/com/jogamp/common/util/PropertyAccess.java +++ b/src/java/com/jogamp/common/util/PropertyAccess.java @@ -3,14 +3,14 @@ * * 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 @@ -20,7 +20,7 @@ * 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. @@ -38,32 +38,32 @@ public class PropertyAccess { public static final String jnlp_prefix = "jnlp." ; /** trusted build-in property prefix 'javaws.' */ public static final String javaws_prefix = "javaws."; - + static final HashSet<String> trustedPrefixes; static final HashSet<String> trusted; - + static { trustedPrefixes = new HashSet<String>(); trustedPrefixes.add(javaws_prefix); trustedPrefixes.add(jnlp_prefix); // 'jogamp.' and maybe other trusted prefixes will be added later via 'addTrustedPrefix()' - + trusted = new HashSet<String>(); trusted.add("sun.java2d.opengl"); trusted.add("sun.java2d.noddraw"); trusted.add("sun.java2d.d3d"); trusted.add("sun.awt.noerasebackground"); } - + /** * @param prefix New prefix to be registered as trusted. - * @throws AccessControlException as thrown by {@link SecurityUtil#checkAllPermissions()}. + * @throws AccessControlException as thrown by {@link SecurityUtil#checkAllPermissions()}. */ protected static final void addTrustedPrefix(String prefix) throws AccessControlException { SecurityUtil.checkAllPermissions(); trustedPrefixes.add(prefix); } - + public static final boolean isTrusted(String propertyKey) { final int dot1 = propertyKey.indexOf('.'); if(0<=dot1) { @@ -72,7 +72,7 @@ public class PropertyAccess { return false; } } - + /** @see #getProperty(String, boolean) */ public static final int getIntProperty(final String property, final boolean jnlpAlias, int defaultValue) { int i=defaultValue; @@ -120,22 +120,22 @@ public class PropertyAccess { * Query the property with the name <code>propertyKey</code>. * <p> * If <code>jnlpAlias</code> is <code>true</code> and the plain <code>propertyKey</code> - * could not be resolved, an attempt to resolve the JNLP aliased <i>trusted property</i> is made.<br> + * could not be resolved, an attempt to resolve the JNLP aliased <i>trusted property</i> is made.<br> * Example: For the propertyName <code>OneTwo</code>, the jnlp alias name is <code>jnlp.OneTwo</code>, which is considered trusted.<br> * </p> - * - * @param propertyKey the property name to query. + * + * @param propertyKey the property name to query. * @param jnlpAlias true if a fallback attempt to query the JNLP aliased <i>trusted property</i> shall be made, * otherwise false. * @return the property value if exists, or null - * + * * @throws NullPointerException if the property name is null * @throws IllegalArgumentException if the property name is of length 0 * @throws SecurityException if access is not allowed to the given <code>propertyKey</code> - * + * * @see System#getProperty(String) */ - public static final String getProperty(final String propertyKey, final boolean jnlpAlias) + public static final String getProperty(final String propertyKey, final boolean jnlpAlias) throws SecurityException, NullPointerException, IllegalArgumentException { if(null == propertyKey) { throw new NullPointerException("propertyKey is NULL"); @@ -144,14 +144,14 @@ public class PropertyAccess { throw new IllegalArgumentException("propertyKey is empty"); } String s=null; - + if( isTrusted(propertyKey) ) { // 'trusted' property (jnlp., javaws., jogamp., ..) s = getTrustedPropKey(propertyKey); } else { // may throw SecurityException, AccessControlerException s = System.getProperty(propertyKey); - } + } if( null == s && jnlpAlias ) { // Try 'jnlp.' aliased property .. if( !propertyKey.startsWith(jnlp_prefix) ) { @@ -162,9 +162,9 @@ public class PropertyAccess { } return s; } - + /** See {@link #getProperty(String, boolean)}, additionally allows a <code>defaultValue</code> if property value is <code>null</code>. */ - public static final String getProperty(final String propertyKey, final boolean jnlpAlias, String defaultValue) + public static final String getProperty(final String propertyKey, final boolean jnlpAlias, String defaultValue) throws SecurityException, NullPointerException, IllegalArgumentException { final String s = PropertyAccess.getProperty(propertyKey, jnlpAlias); if( null != s ) { @@ -173,7 +173,7 @@ public class PropertyAccess { return defaultValue; } } - + private static final String getTrustedPropKey(final String propertyKey) { return AccessController.doPrivileged(new PrivilegedAction<String>() { public String run() { @@ -183,6 +183,6 @@ public class PropertyAccess { throw new SecurityException("Could not access trusted property '"+propertyKey+"'", se); } } - }); + }); } } |