applyMask<O extends Object, V> method
V
applyMask<O extends Object, V>(
- O object,
- String field,
- V value, {
- EntityAccessRulesContext? context,
- Type? type,
Implementation
V applyMask<O extends Object, V>(
O object,
String field,
V value, {
EntityAccessRulesContext? context,
Type? type,
}) {
type ??= object.runtimeType;
if (ruleType == EntityAccessRuleType.mask) {
var m = isMaskedEntityTypeField(
type,
field,
context: context,
direct: true,
);
if (m != null && m) {
return _applyMask(context, object, field, value);
}
}
final rules = this.rules;
if (rules == null || rules.isEmpty) return value;
var hasSubGroupRule = false;
for (var rule in rules) {
if (rule.ruleType == EntityAccessRuleType.mask) {
var m = rule.isMaskedEntityTypeField(
type,
field,
context: context,
direct: true,
);
if (m != null && m) {
return rule._applyMask(context, object, field, value);
}
} else if (rule.ruleType == null) {
hasSubGroupRule = true;
}
}
if (hasSubGroupRule) {
for (var rule in rules) {
if (rule.ruleType == null) {
var m = rule.isMaskedEntityTypeField(type, field, context: context);
if (m != null && m) {
return rule.applyMask(
object,
field,
value,
context: context,
type: type,
);
}
}
}
}
return value;
}