public override string GetPublicUrl(Node node) { string url = string.Empty; var type = EcmaDoc.GetNodeType(node); //Console.WriteLine ("GetPublicUrl {0} : {1} [{2}]", node.Element, node.Caption, type.ToString ()); switch (type) { case EcmaNodeType.Namespace: return(node.Element); // A namespace node has already a well formated internal url case EcmaNodeType.Type: return(MakeTypeNodeUrl(node)); case EcmaNodeType.Meta: return(MakeTypeNodeUrl(GetNodeTypeParent(node)) + GenerateMetaSuffix(node)); case EcmaNodeType.Member: var typeChar = EcmaDoc.GetNodeMemberTypeChar(node); var parentNode = GetNodeTypeParent(node); var typeNode = MakeTypeNodeUrl(parentNode).Substring(2); return(typeChar + ":" + typeNode + MakeMemberNodeUrl(typeChar, node)); default: return(null); } }
string GenerateMetaSuffix(Node node) { string suffix = string.Empty; // A meta node has always a type element to begin with while (EcmaDoc.GetNodeType(node) != EcmaNodeType.Type) { suffix = '/' + node.Element + suffix; node = node.Parent; } return(suffix); }