public override void MoveTo(Node target)
{
var targetGc = target as GenericContent;
if (targetGc != null)
foreach (var nt in this.GetChildTypesToAllow())
if (!targetGc.IsAllowedChildType(nt.Name))
throw new InvalidOperationException(String.Format("Cannot move {0} ({1}) to {2} ({3}) because '{4}' type is not allowed in the new position."
, this.Path, this.NodeType.Name, target.Path, target.NodeType.Name, nt.Name));
base.MoveTo(target);
}