Action.fromXml constructor
Action.fromXml(
- XmlElement e
Implementation
Action.fromXml(XmlElement e) {
name = XmlUtils.getTextSafe(e, 'name');
void addArgDef(XmlElement argdef, [bool stripPrefix = false]) {
var name = XmlUtils.getTextSafe(argdef, 'name');
if (name == null) {
return;
}
final direction = XmlUtils.getTextSafe(argdef, 'direction');
final relatedStateVariable =
XmlUtils.getTextSafe(argdef, 'relatedStateVariable');
var isRetVal = direction == 'out';
if (this.name!.startsWith('Get')) {
final of = this.name!.substring(3);
if (of == name) {
isRetVal = true;
}
}
if (name.startsWith('Get') && stripPrefix) {
name = name.substring(3);
}
arguments.add(ActionArgument(
this, name, direction, relatedStateVariable, isRetVal));
}
final argumentLists = e.findElements('argumentList');
if (argumentLists.isNotEmpty) {
final argList = argumentLists.first;
if (argList.children
.any((x) => x is XmlElement && x.name.local == 'name')) {
// Bad UPnP Implementation fix for WeMo
addArgDef(argList, true);
} else {
for (var argdef in argList.children.whereType<XmlElement>()) {
addArgDef(argdef);
}
}
}
}