Class ZenEngineWrapper

java.lang.Object
io.gorules.zen.ZenEngineWrapper
All Implemented Interfaces:
AutoCloseable

public class ZenEngineWrapper extends Object implements AutoCloseable
Simple Java wrapper for ZEN Engine with easy-to-use API.

 // Create engine
 ZenEngineWrapper engine = ZenEngineBuilder.create()
     .withFilesystemLoader("/app/decisions")
     .build();

 // Evaluate decision
 JsonNode input = objectMapper.readTree("{\"amount\": 1000}");
 JsonNode result = engine.evaluate("pricing.json", input).get();
 
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create wrapper with configuration.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    io.gorules.zen_engine.ZenDecision
    createDecision(com.fasterxml.jackson.databind.JsonNode content)
    Create a decision from JSON content.
    io.gorules.zen_engine.ZenDecision
    createDecision(String jsonContent)
    Create a decision from JSON string.
    CompletableFuture<com.fasterxml.jackson.databind.JsonNode>
    evaluate(String key, com.fasterxml.jackson.databind.JsonNode input)
    Evaluate a decision with the given key and input context.
    CompletableFuture<com.fasterxml.jackson.databind.JsonNode>
    evaluate(String key, com.fasterxml.jackson.databind.JsonNode input, io.gorules.zen_engine.ZenEvaluateOptions options)
    Evaluate a decision with custom options.
    CompletableFuture<io.gorules.zen_engine.ZenEngineResponse>
    evaluateWithTrace(String key, com.fasterxml.jackson.databind.JsonNode input, io.gorules.zen_engine.ZenEvaluateOptions options)
    Evaluate with full response including trace and performance data.
    CompletableFuture<io.gorules.zen_engine.ZenDecision>
    Get a decision by key (for reuse/caching).
    io.gorules.zen_engine.ZenEngine
    Get the underlying ZEN engine for advanced use cases.
    com.fasterxml.jackson.databind.ObjectMapper
    Get the ObjectMapper used for JSON processing.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ZenEngineWrapper

      public ZenEngineWrapper(ZenEngineConfig config)
      Create wrapper with configuration.
      Parameters:
      config - ZEN engine configuration
  • Method Details

    • evaluate

      public CompletableFuture<com.fasterxml.jackson.databind.JsonNode> evaluate(String key, com.fasterxml.jackson.databind.JsonNode input)
      Evaluate a decision with the given key and input context.
      Parameters:
      key - Decision key/filename (e.g., "pricing.json")
      input - Input context as JsonNode
      Returns:
      CompletableFuture with evaluation result
    • evaluate

      public CompletableFuture<com.fasterxml.jackson.databind.JsonNode> evaluate(String key, com.fasterxml.jackson.databind.JsonNode input, io.gorules.zen_engine.ZenEvaluateOptions options)
      Evaluate a decision with custom options.
      Parameters:
      key - Decision key/filename
      input - Input context as JsonNode
      options - Evaluation options (null for defaults)
      Returns:
      CompletableFuture with evaluation result
    • evaluateWithTrace

      public CompletableFuture<io.gorules.zen_engine.ZenEngineResponse> evaluateWithTrace(String key, com.fasterxml.jackson.databind.JsonNode input, io.gorules.zen_engine.ZenEvaluateOptions options)
      Evaluate with full response including trace and performance data.
      Parameters:
      key - Decision key
      input - Input context
      options - Evaluation options
      Returns:
      CompletableFuture with full response
    • getDecision

      public CompletableFuture<io.gorules.zen_engine.ZenDecision> getDecision(String key)
      Get a decision by key (for reuse/caching).
      Parameters:
      key - Decision key
      Returns:
      CompletableFuture with decision instance
    • createDecision

      public io.gorules.zen_engine.ZenDecision createDecision(com.fasterxml.jackson.databind.JsonNode content) throws io.gorules.zen_engine.ZenException
      Create a decision from JSON content.
      Parameters:
      content - Decision content as JsonNode
      Returns:
      Decision instance
      Throws:
      io.gorules.zen_engine.ZenException - if creation fails
    • createDecision

      public io.gorules.zen_engine.ZenDecision createDecision(String jsonContent) throws io.gorules.zen_engine.ZenException
      Create a decision from JSON string.
      Parameters:
      jsonContent - Decision content as JSON string
      Returns:
      Decision instance
      Throws:
      io.gorules.zen_engine.ZenException - if creation fails
    • getEngine

      public io.gorules.zen_engine.ZenEngine getEngine()
      Get the underlying ZEN engine for advanced use cases.
      Returns:
      ZenEngine instance
    • getObjectMapper

      public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
      Get the ObjectMapper used for JSON processing.
      Returns:
      ObjectMapper instance
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable