protected boolean isActive(FeatureState featureState, FeatureUser user, String propertyName, String propertyValue) {
        String expectedValue = featureState.getParameter(PARAM_PROPERTY_VALUE);
        if(expectedValue == null) {
            expectedValue = DEFAULT_STATE_VALUE;
        }
        return Strings.isNotBlank(propertyValue) && expectedValue.equalsIgnoreCase(propertyValue);
    }
protected boolean isActive ( FeatureState featureState , FeatureUser user , String propertyName , String propertyValue ) { String expectedValue = featureState . getParameter ( PARAM_PROPERTY_VALUE ) ; if ( expectedValue == null ) { expectedValue = DEFAULT_STATE_VALUE ; } return Strings . isNotBlank ( propertyValue ) && expectedValue . equalsIgnoreCase ( propertyValue ) ; }
<p>
This method is called by {@link #isActive(FeatureState, FeatureUser)} with the property name and value to make
the decision as to whether the feature is active.
</p>
<p>
By default, this method will convert {@code propertyValue} into a boolean using
{@link Strings#toBoolean(String)} but implementations are free to override this, where needed. However, it would
be ideal if all implementations tried to support the same value formats to allow for a unified experience. The
default implementation throw an {@code IllegalArgumentException} if {@code propertyValue} does not match any of
the predefined boolean representations.
</p>
<p>
This method should never return {@literal true} if {@code propertyValue} is {@literal null}.
</p>

@param featureState
the {@link FeatureState} which represents the current configuration of the feature
@param user
the {@link FeatureUser user} for which to decide whether the feature is active (may be {@literal null})
@param propertyName
the name of the property on which to base the activation of the feature
@param propertyValue
the (raw) value of the property on which to base the activation of the feature (may be {@literal null} if
none was found)
@return {@literal true} if the feature should be active; otherwise {@literal false}.
@throws IllegalArgumentException
If {@code propertyValue} is non-{@literal null} <b>and</b> does not match any of the predefined boolean
representations.