getPropertyValue method
String?
getPropertyValue( - Node node,
- String propertyName
)
Implementation
String? getPropertyValue(Node node, String propertyName) {
if (node is Settings) {
final isUserSetting =
node.mimeType == 'application/x-ncl-user-settings' ||
node.rawAttributes['type'] == 'application/x-ncl-user-settings';
bool hasCurrentUser = node.rawAttributes['user'] == 'currentUser';
if (!hasCurrentUser && node == _settings) {
hasCurrentUser = _hasUserSettingsMedia(_body);
}
if (isUserSetting || hasCurrentUser) {
// NOT COMPLIANT: <rule> with user
final hasPropertyDecl = node.children.whereType<Property>().any(
(p) => p.name == propertyName,
);
// NOT COMPLIANT ends
if (hasPropertyDecl) {
final user = users.activeUser;
if (user != null) {
final userVal = user.getProperty(propertyName);
if (userVal != null) {
return userVal.toString();
}
}
}
}
}
var currentNode = node;
final referId = currentNode.rawAttributes['refer'];
if (referId != null) {
final refNode = getNodeById(referId);
if (refNode != null) {
currentNode = refNode;
}
}
final prop = currentNode.children
.whereType<Property>()
.where((p) => p.name == propertyName)
.firstOrNull;
return prop?.value;
}