Class DecisionPolicy

java.lang.Object
com.tnsai.context.decision.DecisionPolicy

public final class DecisionPolicy extends Object
Represents the rules and policies that guided a decision.

DecisionPolicy captures which business rules, guidelines, or constraints influenced the decision. This enables understanding why certain choices were made over others.

Usage Example


 DecisionPolicy policy = DecisionPolicy.builder()
     .rule("Max discount for premium customers is 25%")
     .rule("Discounts over $100 require manager approval")
     .guideline("Prefer customer retention over short-term profit")
     .constraint("Total discount cannot exceed order margin")
     .build();
 
  • Method Details

    • builder

      public static DecisionPolicy.Builder builder()
      Creates a new builder.
    • empty

      public static DecisionPolicy empty()
      Creates an empty policy (no rules).
    • getRules

      public List<DecisionPolicy.PolicyRule> getRules()
    • getGuidelines

      public List<String> getGuidelines()
    • getConstraints

      public List<String> getConstraints()
    • getAppliedRules

      public List<String> getAppliedRules()
    • getOverriddenRules

      public List<String> getOverriddenRules()
    • getParameters

      public Map<String,Object> getParameters()
    • getParameter

      public Optional<Object> getParameter(String key)
      Gets a parameter value.
      Parameters:
      key - parameter key
      Returns:
      Optional containing the value if present
    • getRulesByCategory

      public List<DecisionPolicy.PolicyRule> getRulesByCategory(String category)
      Finds rules by category.
      Parameters:
      category - rule category
      Returns:
      list of rules in that category
    • hasOverrides

      public boolean hasOverrides()
      Returns true if any rules were overridden.
    • hasConstraints

      public boolean hasConstraints()
      Returns true if there are any constraints.
    • getPolicyCount

      public int getPolicyCount()
      Returns the total policy element count.
    • toString

      public String toString()
      Overrides:
      toString in class Object