Class EvaluationReason
- All Implemented Interfaces:
JsonSerializable
This is returned within EvaluationDetail by the SDK's "variation detail" methods such as
boolVariationDetail.
Note that while EvaluationReason has subclasses as an implementation detail, the subclasses
are not public and may be removed in the future. Always use methods of the base class such as
getKind() or getRuleIndex() to inspect the reason.
LaunchDarkly defines a standard JSON encoding for evaluation reasons, used in analytics events.
EvaluationReason can be converted to and from JSON in any of these ways:
- With
JsonSerialization. - With Gson, if and only if you configure your
Gsoninstance withLDGson. - With Jackson, if and only if you configure your
ObjectMapperinstance withLDJackson.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnumerated type defining the possible values ofgetBigSegmentsStatus().static enumEnumerated type defining the possible values ofgetErrorKind().static enumEnumerated type defining the possible values ofgetKind(). -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic EvaluationReasonerror(EvaluationReason.ErrorKind errorKind) Returns an instance whosekindisEvaluationReason.Kind.ERROR.static EvaluationReasonReturns an instance whosekindisEvaluationReason.Kind.ERROR, with an exception instance.static EvaluationReasonReturns an instance whosekindisEvaluationReason.Kind.FALLTHROUGH.static EvaluationReasonfallthrough(boolean inExperiment) Returns an instance whosekindisEvaluationReason.Kind.FALLTHROUGHand where the inExperiment parameter represents whether the evaluation was part of an experiment.Describes the validity of Big Segment information, if and only if the flag evaluation required querying at least one Big Segment.An enumeration value indicating the general category of error, if thekindisEvaluationReason.Kind.PREREQUISITE_FAILED.The exception that caused the error condition, if thekindisEvaluationReason.Kind.ERRORand theerrorKindisEvaluationReason.ErrorKind.EXCEPTION.getKind()Returns an enum indicating the general category of the reason.The key of the prerequisite flag that did not return the desired variation, if thekindisEvaluationReason.Kind.PREREQUISITE_FAILED.The unique identifier of the rule that was matched, if thekindisEvaluationReason.Kind.RULE_MATCH.intThe index of the rule that was matched (0 for the first rule in the feature flag), if thekindisEvaluationReason.Kind.RULE_MATCH.inthashCode()booleanWhether the evaluation was part of an experiment.static EvaluationReasonoff()Returns an instance whosekindisEvaluationReason.Kind.OFF.static EvaluationReasonprerequisiteFailed(String prerequisiteKey) Returns an instance whosekindisEvaluationReason.Kind.PREREQUISITE_FAILED.static EvaluationReasonReturns an instance whosekindisEvaluationReason.Kind.RULE_MATCH.static EvaluationReasonReturns an instance whosekindisEvaluationReason.Kind.RULE_MATCHand where the inExperiment parameter represents whether the evaluation was part of an experiment.static EvaluationReasonReturns an instance whosekindisEvaluationReason.Kind.TARGET_MATCH.toString()Returns a simple string representation of the reason.withBigSegmentsStatus(EvaluationReason.BigSegmentsStatus bigSegmentsStatus) Returns a copy of thisEvaluationReasonwith a specificEvaluationReason.BigSegmentsStatusvalue.
-
Method Details
-
getKind
Returns an enum indicating the general category of the reason.- Returns:
- a
EvaluationReason.Kindvalue
-
getRuleIndex
public int getRuleIndex()The index of the rule that was matched (0 for the first rule in the feature flag), if thekindisEvaluationReason.Kind.RULE_MATCH. Otherwise this returns -1.- Returns:
- the rule index or -1
-
getRuleId
The unique identifier of the rule that was matched, if thekindisEvaluationReason.Kind.RULE_MATCH. Otherwisenull.Unlike the rule index, this identifier will not change if other rules are added or deleted.
- Returns:
- the rule identifier or null
-
getPrerequisiteKey
The key of the prerequisite flag that did not return the desired variation, if thekindisEvaluationReason.Kind.PREREQUISITE_FAILED. Otherwisenull.- Returns:
- the prerequisite flag key or null
-
isInExperiment
public boolean isInExperiment()Whether the evaluation was part of an experiment. Returns true if the evaluation resulted in an experiment rollout *and* served one of the variations in the experiment. Otherwise it returns false.- Returns:
- whether the evaluation was part of an experiment
-
getErrorKind
An enumeration value indicating the general category of error, if thekindisEvaluationReason.Kind.PREREQUISITE_FAILED. Otherwisenull.- Returns:
- the error kind or null
-
getException
The exception that caused the error condition, if thekindisEvaluationReason.Kind.ERRORand theerrorKindisEvaluationReason.ErrorKind.EXCEPTION. Otherwisenull.Note that the exception will not be included in the JSON serialization of the reason when it appears in analytics events; it is only provided informationally for use by application code.
- Returns:
- the exception instance
-
getBigSegmentsStatus
Describes the validity of Big Segment information, if and only if the flag evaluation required querying at least one Big Segment. Otherwise it returnsnull.Big Segments are a specific type of user segments. For more information, read the LaunchDarkly documentation .
- Returns:
- the
EvaluationReason.BigSegmentsStatusfrom the evaluation ornull
-
withBigSegmentsStatus
Returns a copy of thisEvaluationReasonwith a specificEvaluationReason.BigSegmentsStatusvalue.- Parameters:
bigSegmentsStatus- the new property value- Returns:
- a new reason object
-
toString
Returns a simple string representation of the reason.This is a convenience method for debugging and any other use cases where a human-readable string is helpful. The exact format of the string is subject to change; if you need to make programmatic decisions based on the reason properties, use other methods like
getKind(). -
equals
-
hashCode
public int hashCode() -
off
Returns an instance whosekindisEvaluationReason.Kind.OFF.- Returns:
- a reason object
-
fallthrough
Returns an instance whosekindisEvaluationReason.Kind.FALLTHROUGH.- Returns:
- a reason object
-
fallthrough
Returns an instance whosekindisEvaluationReason.Kind.FALLTHROUGHand where the inExperiment parameter represents whether the evaluation was part of an experiment.- Parameters:
inExperiment- whether the evaluation was part of an experiment- Returns:
- a reason object
-
targetMatch
Returns an instance whosekindisEvaluationReason.Kind.TARGET_MATCH.- Returns:
- a reason object
-
ruleMatch
Returns an instance whosekindisEvaluationReason.Kind.RULE_MATCH.- Parameters:
ruleIndex- the rule indexruleId- the rule identifier- Returns:
- a reason object
-
ruleMatch
Returns an instance whosekindisEvaluationReason.Kind.RULE_MATCHand where the inExperiment parameter represents whether the evaluation was part of an experiment.- Parameters:
ruleIndex- the rule indexruleId- the rule identifierinExperiment- whether the evaluation was part of an experiment- Returns:
- a reason object
-
prerequisiteFailed
Returns an instance whosekindisEvaluationReason.Kind.PREREQUISITE_FAILED.- Parameters:
prerequisiteKey- the flag key of the prerequisite that failed- Returns:
- a reason object
-
error
Returns an instance whosekindisEvaluationReason.Kind.ERROR.- Parameters:
errorKind- describes the type of error- Returns:
- a reason object
-
exception
Returns an instance whosekindisEvaluationReason.Kind.ERROR, with an exception instance.Note that the exception will not be included in the JSON serialization of the reason when it appears in analytics events; it is only provided informationally for use by application code.
- Parameters:
exception- the exception that caused the error- Returns:
- a reason object
-