private object ConvertToSimpleValue(Type desiredType, string key, CompositeNode parent, out bool conversionSucceeded)
{
conversionSucceeded = false;
Node childNode = parent.GetChildNode(key);
if (childNode == null && IsDateTimeType(desiredType))
{
return TrySpecialDateTimeBinding(desiredType, parent, key, out conversionSucceeded);
}
else if (childNode == null)
{
return null;
}
else if (childNode.NodeType == NodeType.Leaf)
{
return ConvertLeafNode(desiredType, (LeafNode) childNode, out conversionSucceeded);
}
else
{
throw new BindingException("Could not convert param as the node related " +
"to the param is not a leaf node. Param {0} parent node: {1}", key, parent.Name);
}
}