@NonNull @VisibleForTesting ResponseDecisionMeta getDefaultResponseDecision(final Feature feature, final CheckRequest checkRequest) { // first preference in defaults is given to the local variable (provided while the Toggle.with().check().setDefault().handle() call) if (checkRequest.defaultState != null) { return new ResponseDecisionMeta(checkRequest.defaultState); } // in case no Default is provided in the feature (in the config), return enabled if (feature._default == null) { return new ResponseDecisionMeta(DEFAULT_STATE); } // so no local defaults but some default is provided in the config return new ResponseDecisionMeta(feature._default); }
@NonNull @VisibleForTesting ResponseDecisionMeta getStatePoweredResponseDecision(Feature feature) { // if state is null, we can't take state on this if (feature.state == null) return new ResponseDecisionMeta(DEFAULT_STATE); // if state is not null, use the overriding feature return new ResponseDecisionMeta(feature.state); }
@NonNull @VisibleForTesting ResponseDecisionMeta getRuleMatchedResponseDecision(Rule rule) { // an enabled/disabled state is mandatory for a rule // (else we wouldn't know what to do once a rule is matched) if (rule.state == null) throw new IllegalStateException("The state in a Rule cannot be empty"); return new ResponseDecisionMeta(rule); }