BusinessObject
- Type abstract class
- Package:
com.euonia.osba - Author: damon(zhaorong@outlook.com)
- Type Parameters:
<B extends BusinessObject<B>>— 业务对象的具体类型 - Implements:
UseBusinessContext,RuleCheckable,AutoCloseable
Fields¶
| Field | Type | Description |
|---|---|---|
support |
PropertyChangeSupport |
属性变更支持对象,用于触发属性变更事件 |
Methods¶
setBusinessContext(BusinessContext businessContext): void¶
Parameters:
- businessContext (BusinessContext): 业务上下文
getBusinessContext(): BusinessContext¶
Returns: BusinessContext — 业务上下文
onBusinessContextSet(): void¶
initialize(): void¶
getFieldManager(): FieldDataManager¶
Returns: FieldDataManager — 字段数据管理器的实例
getRules(): Rules¶
Returns: Rules — 规则管理器的实例
addRules(): void¶
addRule(Rule rule): void¶
Parameters:
- rule (Rule): 要添加的规则
<V> addRule(PropertyInfo<V> property, BiFunction<V, RuleContext, Boolean> rule, String message): void¶
Parameters:
- property (PropertyInfo<V>): 属性信息
- rule (BiFunction<V, RuleContext, Boolean>): 规则函数
- message (String): 错误消息
<V> addRule(PropertyInfo<V> property, BiFunction<V, RuleContext, Boolean> rule, Function<V, String> messageFactory): void¶
Parameters:
- property (PropertyInfo<V>): 属性信息
- rule (BiFunction<V, RuleContext, Boolean>): 规则函数
- messageFactory (Function<V, String>): 错误消息工厂
<V> addRequiredRule(PropertyInfo<V> property, String message): void¶
Parameters:
- property (PropertyInfo<V>): 属性信息
- message (String): 错误消息
<V> addRequiredRule(PropertyInfo<V> property, Function<Object, String> messageFactory): void¶
Parameters:
- property (PropertyInfo<V>): 属性信息
- messageFactory (Function<Object, String>): 错误消息工厂
checkPropertyRules(PropertyInfo<?> propertyInfo, Object oldValue, Object newValue): void¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性信息
- oldValue (Object): 属性的旧值
- newValue (Object): 属性的新值
isValid(): boolean¶
Returns: boolean — 如果对象有效,则返回 true;否则返回 false
ruleCheckComplete(PropertyInfo<?> property): void¶
Parameters:
- property (PropertyInfo<?>): 已完成规则检查的属性
ruleCheckComplete(String propertyName): void¶
Parameters:
- propertyName (String): 已完成规则检查的属性名称
allRulesComplete(): void¶
suspendRuleChecking(): void¶
resumeRuleChecking(): void¶
getBrokenRules(): BrokenRuleCollection¶
Returns: BrokenRuleCollection — 破坏的规则集合
getPropertiesToCheckRulesOnChanged(): List<String>¶
Returns: List<String> — 需要在属性变更时检查规则的属性列表
getChangedProperties(): List<PropertyInfo<?>>¶
Returns: List<PropertyInfo<?>> — 已更改的属性列表
hasChangedProperties(): boolean¶
Returns: boolean — 如果有已更改的属性,则返回 true;否则返回 false
addPropertyChangeListener(PropertyChangeListener listener): void¶
Parameters:
- listener (PropertyChangeListener): 要添加的属性变更监听器
removePropertyChangeListener(PropertyChangeListener listener): void¶
Parameters:
- listener (PropertyChangeListener): 要移除的属性变更监听器
onPropertyChanged(String propertyName, Object oldValue, Object newValue): void¶
Parameters:
- propertyName (String): 属性的名称
- oldValue (Object): 属性的旧值
- newValue (Object): 属性的新值
onPropertyChanged(PropertyInfo<?> propertyInfo, Object oldValue, Object newValue): void¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性信息
- oldValue (Object): 属性的旧值
- newValue (Object): 属性的新值
propertyHasChanged(PropertyInfo<?> propertyInfo, Object oldValue, Object newValue): void¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性信息
- oldValue (Object): 属性的旧值
- newValue (Object): 属性的新值
fieldExists(PropertyInfo<?> propertyInfo): boolean¶
Parameters:
- propertyInfo (PropertyInfo<?>): 要检查的属性信息
Returns: boolean — 如果指定属性的字段数据存在则返回 true,否则返回 false
fieldExists(String fieldName): boolean¶
Parameters:
- fieldName (String): 要检查的字段名称
Returns: boolean — 如果指定字段名称的字段数据存在则返回 true,否则返回 false
<T> readProperty(PropertyInfo<T> propertyInfo): T¶
Parameters:
- propertyInfo (PropertyInfo<T>): 属性的信息
Returns: T — 指定属性的值
readProperty(String propertyName): Object¶
Parameters:
- propertyName (String): 属性的名称
Returns: Object — 指定名称的属性值
<T> loadProperty(PropertyInfo<T> propertyInfo, T value): void¶
Parameters:
- propertyInfo (PropertyInfo<T>): 属性的信息
- value (T): 要加载的值
<T> loadPropertyValue(PropertyInfo<T> propertyInfo, T oldValue, T newValue, boolean markAsChanged): void¶
Parameters:
- propertyInfo (PropertyInfo<T>): 属性的信息
- oldValue (T): 旧值
- newValue (T): 新值
- markAsChanged (boolean): 是否标记为已更改
<T> valuesDiffer(PropertyInfo<T> propertyInfo, T oldValue, T newValue): boolean¶
Parameters:
- propertyInfo (PropertyInfo<T>): 属性的信息
- oldValue (T): 旧值
- newValue (T): 新值
Returns: boolean — 如果属性值不同,返回 true;否则返回 false
canReadProperty(PropertyInfo<?> propertyInfo): boolean¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性的信息
Returns: boolean — 如果属性可读,返回 true;否则返回 false
canReadProperty(String propertyName): boolean¶
Parameters:
- propertyName (String): 属性的名称
Returns: boolean — 如果属性可读,返回 true;否则返回 false
canReadProperty(PropertyInfo<?> propertyInfo, boolean throwOnFalse): boolean¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性的信息
- throwOnFalse (boolean): 如果为 true,当属性不可读时抛出异常
Returns: boolean — 如果属性可读,返回 true;否则返回 false
Throws: UnauthorizedAccessException — 当属性不可读且 throwOnFalse 为 true 时抛出
canReadProperty(String propertyName, boolean throwOnFalse): boolean¶
Parameters:
- propertyName (String): 属性的名称
- throwOnFalse (boolean): 如果为 true,当属性不可读时抛出异常
Returns: boolean — 如果属性可读,返回 true;否则返回 false
Throws: UnauthorizedAccessException — 当属性不可读且 throwOnFalse 为 true 时抛出
canWriteProperty(PropertyInfo<?> propertyInfo): boolean¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性的信息
Returns: boolean — 如果属性可写,返回 true;否则返回 false
canWriteProperty(PropertyInfo<?> propertyInfo, boolean throwOnFalse): boolean¶
Parameters:
- propertyInfo (PropertyInfo<?>): 属性的信息
- throwOnFalse (boolean): 如果为 true,当属性不可写时抛出异常
Returns: boolean — 如果属性可写,返回 true;否则返回 false
Throws: UnauthorizedAccessException — 当属性不可写且 throwOnFalse 为 true 时抛出
canWriteProperty(String propertyName): boolean¶
Parameters:
- propertyName (String): 属性的名称
Returns: boolean — 如果属性可写,返回 true;否则返回 false
canWriteProperty(String propertyName, boolean throwOnFalse): boolean¶
Parameters:
- propertyName (String): 属性的名称
- throwOnFalse (boolean): 如果为 true,当属性不可写时抛出异常
Returns: boolean — 如果属性可写,返回 true;否则返回 false
Throws: UnauthorizedAccessException — 当属性不可写且 throwOnFalse 为 true 时抛出
isBypassingRuleCheck(): boolean¶
Returns: boolean — 如果正在绕过规则检查,则返回 true;否则返回 false
bypassRuleChecks(): BypassRuleCheckObject<B>¶
Returns: BypassRuleCheckObject<B> — 创建的 BypassRuleCheckObject 实例
<V> registerProperty(PropertyInfo<V> propertyInfo): PropertyInfo<V>¶
Parameters:
- propertyInfo (PropertyInfo<V>): 要注册的属性信息
Returns: PropertyInfo<V> — 已注册的属性信息
<V> registerProperty(Class<V> type, String propertyName): PropertyInfo<V>¶
Parameters:
- type (Class<V>): 属性的类型
- propertyName (String): 属性的名称
Returns: PropertyInfo<V> — 已注册的属性信息
<V> registerProperty(Class<V> type, String propertyName, Supplier<V> defaultValue): PropertyInfo<V>¶
Parameters:
- type (Class<V>): 属性的类型
- propertyName (String): 属性的名称
- defaultValue (Supplier<V>): 属性的默认值提供者
Returns: PropertyInfo<V> — 已注册的属性信息
<V> registerProperty(Class<V> type, String propertyName, String friendlyName): PropertyInfo<V>¶
Parameters:
- type (Class<V>): 属性的类型
- propertyName (String): 属性的名称
- friendlyName (String): 属性的友好名称
Returns: PropertyInfo<V> — 已注册的属性信息
<V> registerProperty(Class<V> type, String propertyName, String friendlyName, V defaultValue): PropertyInfo<V>¶
Parameters:
- type (Class<V>): 属性的类型
- propertyName (String): 属性的名称
- friendlyName (String): 属性的友好名称
- defaultValue (V): 属性的默认值
Returns: PropertyInfo<V> — 已注册的属性信息
<V> registerProperty(Class<V> type, String propertyName, String friendlyName, Supplier<V> defaultValue): PropertyInfo<V>¶
Parameters:
- type (Class<V>): 属性的类型
- propertyName (String): 属性的名称
- friendlyName (String): 属性的友好名称
- defaultValue (Supplier<V>): 属性的默认值提供者
Returns: PropertyInfo<V> — 已注册的属性信息
close(): void¶
Inner Classes¶
BypassRuleCheckObject¶
- Type: static class
- Type Parameters:
<B extends BusinessObject<B>>— 业务对象的类型 - Implements:
AutoCloseable
Constructors¶
BypassRuleCheckObject(BusinessObject<B> businessObject)¶
Parameters:
- businessObject (BusinessObject<B>): 要关联的业务对象
Methods¶
static <B> create(BusinessObject<B> businessObject): BypassRuleCheckObject<B>¶
Parameters:
- businessObject (BusinessObject<B>): 要关联的业务对象
Returns: BypassRuleCheckObject<B> — 创建的 BypassRuleCheckObject 实例