/// <summary> /// /// </summary> /// <param name="translationUnit"></param> /// <param name="signature"></param> /// <returns></returns> public static MethodSignatureDeclarationTranslationUnit AddSignature(this InterfaceDeclarationTranslationUnit translationUnit, string signature) { var methodSignatureDeclaration = MethodSignatureDeclarationTranslationUnit.Create(VisibilityToken.Public, null, IdentifierTranslationUnit.Create(signature)); translationUnit.AddSignature(methodSignatureDeclaration); return(methodSignatureDeclaration); }
/// <summary> /// /// </summary> /// <param name="modifiers"></param> /// <param name="returnType"></param> /// <param name="name"></param> /// <returns></returns> public static ITranslationUnit BuildMethodSignatureTranslationUnit(ModifierTokens modifiers, string returnType, string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } return(MethodSignatureDeclarationTranslationUnit.Create( modifiers, returnType == null ? null : TypeIdentifierTranslationUnit.Create(returnType), IdentifierTranslationUnit.Create(name))); }
/// <summary> /// /// </summary> /// <param name="node"></param> /// <remarks> /// We don't need to go further deeper in the tree by visiting the node. /// </remarks> public override void VisitMethodDeclaration(MethodDeclarationSyntax node) { // TODO: Use translation unit factories var helper = new MethodDeclaration(node, this.semanticModel); // Properties in TypeScript will be translated as methods as // TypeScript does not support properties in interfaces var translationUnit = MethodSignatureDeclarationTranslationUnit.Create( helper.Visibility, TypeIdentifierTranslationUnit.Create(helper.ReturnType.Name), IdentifierTranslationUnit.Create(helper.Name)); this.interfaceDeclaration.AddSignature(translationUnit); this.InvokePropertyDeclarationVisited(this, new WalkerEventArgs()); }