Class NormEngine

java.lang.Object
com.tnsai.norms.NormEngine

public final class NormEngine extends Object
Runtime norm evaluation and enforcement engine.

Processes Norm annotations and evaluates them against proposed actions. Detects violations of obligations and prohibitions.

Usage


 NormEngine engine = NormEngine.fromAnnotations(MyRole.class);

 // Check if an action is permitted
 NormEngine.CheckResult result = engine.checkAction("shareData", context);
 if (result.isViolation()) {
     System.out.println("Violation: " + result.getViolations());
 }

 // Get all obligations for current context
 List<NormEntry> obligations = engine.getActiveObligations(context);
 
  • Method Details

    • fromAnnotations

      public static NormEngine fromAnnotations(Class<?> clazz)
      Creates a NormEngine from annotations on a class.
    • of

      public static NormEngine of(NormEntry... norms)
      Creates a NormEngine from explicit norm entries.
    • of

      public static NormEngine of(List<NormEntry> norms)
      Creates a NormEngine from a list of norm entries.
    • checkAction

      public NormEngine.CheckResult checkAction(String actionName, Predicate<String> conditionEvaluator)
      Checks if an action is allowed given the current context.
      Parameters:
      actionName - the action to check
      conditionEvaluator - evaluates condition expressions against context
      Returns:
      check result with any violations
    • checkObligations

      public NormEngine.CheckResult checkObligations(Set<String> fulfilledActions, Predicate<String> conditionEvaluator)
      Checks for obligation violations — obligations that are active but have not been fulfilled.
      Parameters:
      fulfilledActions - actions that have been performed
      conditionEvaluator - evaluates condition expressions against context
      Returns:
      check result with any obligation violations
    • getActiveObligations

      public List<NormEntry> getActiveObligations(Predicate<String> conditionEvaluator)
      Gets all active obligations for the current context.
      Parameters:
      conditionEvaluator - evaluates condition expressions
      Returns:
      list of active obligation norms
    • getActiveProhibitions

      public List<NormEntry> getActiveProhibitions(Predicate<String> conditionEvaluator)
      Gets all active prohibitions for the current context.
    • getActivePermissions

      public List<NormEntry> getActivePermissions(Predicate<String> conditionEvaluator)
      Gets all active permissions for the current context.
    • getAllNorms

      public List<NormEntry> getAllNorms()
      Gets all registered norms.
    • addNorm

      public void addNorm(NormEntry norm)
      Adds a norm dynamically at runtime.