Class DefaultRuleEngine
java.lang.Object
cloud.opencode.base.rules.engine.DefaultRuleEngine
- All Implemented Interfaces:
RuleEngine
Default Rule Engine Implementation
默认规则引擎实现
Thread-safe implementation of the RuleEngine interface with support for rule registration, conflict resolution, and execution listeners.
RuleEngine接口的线程安全实现,支持规则注册、冲突解决和执行监听器。
Features | 主要功能:
- Concurrent rule registration - 并发规则注册
- Pluggable conflict resolution - 可插拔冲突解决
- Execution listeners - 执行监听器
- Multiple firing modes - 多种触发模式
Usage Examples | 使用示例:
DefaultRuleEngine engine = new DefaultRuleEngine();
engine.register(rule1, rule2);
engine.setConflictResolver(PriorityConflictResolver.INSTANCE);
RuleResult result = engine.fire(context);
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
- Since:
- JDK 25, opencode-base-rules V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddListener(RuleListener listener) Adds a rule execution listener 添加规则执行监听器voidclear()Clears all registered rules 清除所有已注册的规则fire(RuleContext context) Fires all matching rules 触发所有匹配的规则fire(RuleContext context, String group) Fires all matching rules in a specific group 触发特定分组中所有匹配的规则fireFirst(RuleContext context) Fires only the first matching rule 只触发第一个匹配的规则fireUntilHalt(RuleContext context) Fires rules until no more rules can fire (for inference) 触发规则直到没有更多规则可以触发(用于推理)Gets a rule by name 按名称获取规则intGets the count of registered rules 获取已注册规则的数量getRules()Gets all registered rules 获取所有已注册的规则Gets rules in a specific group 获取特定分组中的规则booleanChecks if a rule is registered 检查规则是否已注册Registers a rule group 注册规则组Registers one or more rules 注册一个或多个规则removeListener(RuleListener listener) Removes a rule execution listener 移除规则执行监听器setConflictResolver(ConflictResolver resolver) Sets the conflict resolver 设置冲突解决器voidsetHaltCondition(Predicate<RuleContext> haltCondition) Sets the halt condition for the engine 设置引擎的停止条件unregister(String ruleName) Unregisters a rule by name 按名称注销规则Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface RuleEngine
fireAndTrace
-
Constructor Details
-
DefaultRuleEngine
public DefaultRuleEngine()
-
-
Method Details
-
register
Description copied from interface:RuleEngineRegisters one or more rules 注册一个或多个规则- Specified by:
registerin interfaceRuleEngine- Parameters:
rules- the rules to register | 要注册的规则- Returns:
- this engine for chaining | 此引擎用于链式调用
-
register
Description copied from interface:RuleEngineRegisters a rule group 注册规则组- Specified by:
registerin interfaceRuleEngine- Parameters:
group- the rule group | 规则组- Returns:
- this engine for chaining | 此引擎用于链式调用
-
unregister
Description copied from interface:RuleEngineUnregisters a rule by name 按名称注销规则- Specified by:
unregisterin interfaceRuleEngine- Parameters:
ruleName- the rule name | 规则名称- Returns:
- this engine for chaining | 此引擎用于链式调用
-
fire
Description copied from interface:RuleEngineFires all matching rules 触发所有匹配的规则- Specified by:
firein interfaceRuleEngine- Parameters:
context- the rule context | 规则上下文- Returns:
- the execution result | 执行结果
-
fire
Description copied from interface:RuleEngineFires all matching rules in a specific group 触发特定分组中所有匹配的规则- Specified by:
firein interfaceRuleEngine- Parameters:
context- the rule context | 规则上下文group- the rule group name | 规则组名称- Returns:
- the execution result | 执行结果
-
fireFirst
Description copied from interface:RuleEngineFires only the first matching rule 只触发第一个匹配的规则- Specified by:
fireFirstin interfaceRuleEngine- Parameters:
context- the rule context | 规则上下文- Returns:
- the execution result | 执行结果
-
fireUntilHalt
Description copied from interface:RuleEngineFires rules until no more rules can fire (for inference) 触发规则直到没有更多规则可以触发(用于推理)- Specified by:
fireUntilHaltin interfaceRuleEngine- Parameters:
context- the rule context | 规则上下文- Returns:
- the execution result | 执行结果
-
getRules
Description copied from interface:RuleEngineGets all registered rules 获取所有已注册的规则- Specified by:
getRulesin interfaceRuleEngine- Returns:
- list of rules | 规则列表
-
getRules
Description copied from interface:RuleEngineGets rules in a specific group 获取特定分组中的规则- Specified by:
getRulesin interfaceRuleEngine- Parameters:
group- the group name | 组名- Returns:
- list of rules in the group | 组中的规则列表
-
getRule
Description copied from interface:RuleEngineGets a rule by name 按名称获取规则- Specified by:
getRulein interfaceRuleEngine- Parameters:
name- the rule name | 规则名称- Returns:
- the rule, or null if not found | 规则,如果未找到则为null
-
hasRule
Description copied from interface:RuleEngineChecks if a rule is registered 检查规则是否已注册- Specified by:
hasRulein interfaceRuleEngine- Parameters:
name- the rule name | 规则名称- Returns:
- true if registered | 如果已注册返回true
-
getRuleCount
public int getRuleCount()Description copied from interface:RuleEngineGets the count of registered rules 获取已注册规则的数量- Specified by:
getRuleCountin interfaceRuleEngine- Returns:
- rule count | 规则数量
-
addListener
Description copied from interface:RuleEngineAdds a rule execution listener 添加规则执行监听器- Specified by:
addListenerin interfaceRuleEngine- Parameters:
listener- the listener | 监听器- Returns:
- this engine for chaining | 此引擎用于链式调用
-
removeListener
Description copied from interface:RuleEngineRemoves a rule execution listener 移除规则执行监听器- Specified by:
removeListenerin interfaceRuleEngine- Parameters:
listener- the listener | 监听器- Returns:
- this engine for chaining | 此引擎用于链式调用
-
setConflictResolver
Description copied from interface:RuleEngineSets the conflict resolver 设置冲突解决器- Specified by:
setConflictResolverin interfaceRuleEngine- Parameters:
resolver- the conflict resolver | 冲突解决器- Returns:
- this engine for chaining | 此引擎用于链式调用
-
setHaltCondition
Sets the halt condition for the engine 设置引擎的停止条件- Parameters:
haltCondition- the halt condition predicate | 停止条件谓词
-
clear
public void clear()Description copied from interface:RuleEngineClears all registered rules 清除所有已注册的规则- Specified by:
clearin interfaceRuleEngine
-