Package com.tnsai.norms
Class NormEngine
java.lang.Object
com.tnsai.norms.NormEngine
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);
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordResult of checking an action against norms. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a norm dynamically at runtime.checkAction(String actionName, Predicate<String> conditionEvaluator) Checks if an action is allowed given the current context.checkObligations(Set<String> fulfilledActions, Predicate<String> conditionEvaluator) Checks for obligation violations — obligations that are active but have not been fulfilled.static NormEnginefromAnnotations(Class<?> clazz) Creates a NormEngine from annotations on a class.getActiveObligations(Predicate<String> conditionEvaluator) Gets all active obligations for the current context.getActivePermissions(Predicate<String> conditionEvaluator) Gets all active permissions for the current context.getActiveProhibitions(Predicate<String> conditionEvaluator) Gets all active prohibitions for the current context.Gets all registered norms.static NormEngineCreates a NormEngine from explicit norm entries.static NormEngineCreates a NormEngine from a list of norm entries.
-
Method Details
-
fromAnnotations
Creates a NormEngine from annotations on a class. -
of
Creates a NormEngine from explicit norm entries. -
of
Creates a NormEngine from a list of norm entries. -
checkAction
Checks if an action is allowed given the current context.- Parameters:
actionName- the action to checkconditionEvaluator- 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 performedconditionEvaluator- evaluates condition expressions against context- Returns:
- check result with any obligation violations
-
getActiveObligations
Gets all active obligations for the current context.- Parameters:
conditionEvaluator- evaluates condition expressions- Returns:
- list of active obligation norms
-
getActiveProhibitions
Gets all active prohibitions for the current context. -
getActivePermissions
Gets all active permissions for the current context. -
getAllNorms
Gets all registered norms. -
addNorm
Adds a norm dynamically at runtime.
-