コード例 #1
0
ファイル: Remapper.cs プロジェクト: NickAcPT/NAsm
        /// <summary>
        ///     Returns the given signature, remapped with the
        ///     <see cref="SignatureVisitor" />
        ///     returned by
        ///     <see cref="CreateSignatureRemapper" />
        ///     .
        /// </summary>
        /// <param name="signature">
        ///     a <i>JavaTypeSignature</i>, <i>ClassSignature</i> or <i>MethodSignature</i>.
        /// </param>
        /// <param name="typeSignature">
        ///     whether the given signature is a <i>JavaTypeSignature</i>.
        /// </param>
        /// <returns>
        ///     signature the given signature, remapped with the
        ///     <see cref="SignatureVisitor" />
        ///     returned by
        ///     <see cref="CreateSignatureRemapper" />
        ///     .
        /// </returns>
        public virtual string MapSignature(string signature, bool typeSignature)
        {
            if (signature == null)
            {
                return(null);
            }
            var signatureReader   = new SignatureReader(signature);
            var signatureWriter   = new SignatureWriter();
            var signatureRemapper = CreateSignatureRemapper(signatureWriter);

            if (typeSignature)
            {
                signatureReader.AcceptType(signatureRemapper);
            }
            else
            {
                signatureReader.Accept(signatureRemapper);
            }
            return(signatureWriter.ToString());
        }