SystemPropertyUtil.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by FernFlower decompiler)
  4. //
  5. package io.netty.util.internal;
  6. import io.netty.util.internal.logging.InternalLogger;
  7. import io.netty.util.internal.logging.InternalLoggerFactory;
  8. import java.security.AccessController;
  9. import java.security.PrivilegedAction;
  10. public final class SystemPropertyUtil {
  11. private static final InternalLogger logger = InternalLoggerFactory.getInstance(SystemPropertyUtil.class);
  12. public static boolean contains(String key) {
  13. return get(key) != null;
  14. }
  15. public static String get(String key) {
  16. return get(key, (String)null);
  17. }
  18. public static String get(final String key, String def) {
  19. ObjectUtil.checkNotNull(key, "key");
  20. if (key.isEmpty()) {
  21. throw new IllegalArgumentException("key must not be empty.");
  22. } else {
  23. String value = null;
  24. try {
  25. if (System.getSecurityManager() == null) {
  26. value = System.getProperty(key);
  27. } else {
  28. value = (String)AccessController.doPrivileged(new PrivilegedAction<String>() {
  29. public String run() {
  30. return System.getProperty(key);
  31. }
  32. });
  33. }
  34. } catch (SecurityException var4) {
  35. logger.warn("Unable to retrieve a system property '{}'; default values will be used.", key, var4);
  36. }
  37. return value == null ? def : value;
  38. }
  39. }
  40. public static boolean getBoolean(String key, boolean def) {
  41. String value = get(key);
  42. if (value == null) {
  43. return def;
  44. } else {
  45. value = value.trim().toLowerCase();
  46. if (value.isEmpty()) {
  47. return def;
  48. } else if (!"true".equals(value) && !"yes".equals(value) && !"1".equals(value)) {
  49. if (!"false".equals(value) && !"no".equals(value) && !"0".equals(value)) {
  50. logger.warn("Unable to parse the boolean system property '{}':{} - using the default value: {}", new Object[]{key, value, def});
  51. return def;
  52. } else {
  53. return false;
  54. }
  55. } else {
  56. return true;
  57. }
  58. }
  59. }
  60. public static int getInt(String key, int def) {
  61. String value = get(key);
  62. if (value == null) {
  63. return def;
  64. } else {
  65. value = value.trim();
  66. try {
  67. return Integer.parseInt(value);
  68. } catch (Exception var4) {
  69. logger.warn("Unable to parse the integer system property '{}':{} - using the default value: {}", new Object[]{key, value, def});
  70. return def;
  71. }
  72. }
  73. }
  74. public static long getLong(String key, long def) {
  75. String value = get(key);
  76. if (value == null) {
  77. return def;
  78. } else {
  79. value = value.trim();
  80. try {
  81. return Long.parseLong(value);
  82. } catch (Exception var5) {
  83. logger.warn("Unable to parse the long integer system property '{}':{} - using the default value: {}", new Object[]{key, value, def});
  84. return def;
  85. }
  86. }
  87. }
  88. private SystemPropertyUtil() {
  89. }
  90. }