/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.core.util; import static java.lang.Boolean.FALSE; /** * Class to check that system properties are enabled or not, the latter being the default. * * @since 3.6.0 */ public class PropertyChecker { private final String propertyName; private final String defaultValue; private Boolean override; /** * Similar to {@link PropertyChecker#PropertyChecker(String, String)} only the default value is {@code false}. * * @param propertyName the name of the system property */ public PropertyChecker(String propertyName) { this(propertyName, FALSE.toString()); } /** * Creates a {@link PropertyChecker} with a custom default value. * * @param propertyName the name of the system property * @param defaultValue the default value to use in case the property is not set */ public PropertyChecker(String propertyName, String defaultValue) { this.propertyName = propertyName; this.defaultValue = defaultValue; } public boolean isEnabled() { if (override == null) { return Boolean.valueOf(System.getProperty(propertyName, defaultValue)); } else { return override; } } public void setOverride(Boolean override) { this.override = override; } public void removeOverride() { this.override = null; } public String getPropertyName() { return propertyName; } }