Mono.Cecil.Mixin.GetMetadataToken C# (CSharp) Method

GetMetadataToken() public static method

public static GetMetadataToken ( this self, uint data ) : Mono.Cecil.MetadataToken
self this
data uint
return Mono.Cecil.MetadataToken
        public static MetadataToken GetMetadataToken(this CodedIndex self, uint data)
        {
            uint rid;
            TokenType token_type;
            switch (self) {
            case CodedIndex.TypeDefOrRef:
                rid = data >> 2;
                switch (data & 3) {
                case 0:
                    token_type = TokenType.TypeDef; goto ret;
                case 1:
                    token_type = TokenType.TypeRef; goto ret;
                case 2:
                    token_type = TokenType.TypeSpec; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.HasConstant:
                rid = data >> 2;
                switch (data & 3) {
                case 0:
                    token_type = TokenType.Field; goto ret;
                case 1:
                    token_type = TokenType.Param; goto ret;
                case 2:
                    token_type = TokenType.Property; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.HasCustomAttribute:
                rid = data >> 5;
                switch (data & 31) {
                case 0:
                    token_type = TokenType.Method; goto ret;
                case 1:
                    token_type = TokenType.Field; goto ret;
                case 2:
                    token_type = TokenType.TypeRef; goto ret;
                case 3:
                    token_type = TokenType.TypeDef; goto ret;
                case 4:
                    token_type = TokenType.Param; goto ret;
                case 5:
                    token_type = TokenType.InterfaceImpl; goto ret;
                case 6:
                    token_type = TokenType.MemberRef; goto ret;
                case 7:
                    token_type = TokenType.Module; goto ret;
                case 8:
                    token_type = TokenType.Permission; goto ret;
                case 9:
                    token_type = TokenType.Property; goto ret;
                case 10:
                    token_type = TokenType.Event; goto ret;
                case 11:
                    token_type = TokenType.Signature; goto ret;
                case 12:
                    token_type = TokenType.ModuleRef; goto ret;
                case 13:
                    token_type = TokenType.TypeSpec; goto ret;
                case 14:
                    token_type = TokenType.Assembly; goto ret;
                case 15:
                    token_type = TokenType.AssemblyRef; goto ret;
                case 16:
                    token_type = TokenType.File; goto ret;
                case 17:
                    token_type = TokenType.ExportedType; goto ret;
                case 18:
                    token_type = TokenType.ManifestResource; goto ret;
                case 19:
                    token_type = TokenType.GenericParam; goto ret;
                case 20:
                    token_type = TokenType.GenericParamConstraint; goto ret;
                case 21:
                    token_type = TokenType.MethodSpec; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.HasFieldMarshal:
                rid = data >> 1;
                switch (data & 1) {
                case 0:
                    token_type = TokenType.Field; goto ret;
                case 1:
                    token_type = TokenType.Param; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.HasDeclSecurity:
                rid = data >> 2;
                switch (data & 3) {
                case 0:
                    token_type = TokenType.TypeDef; goto ret;
                case 1:
                    token_type = TokenType.Method; goto ret;
                case 2:
                    token_type = TokenType.Assembly; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.MemberRefParent:
                rid = data >> 3;
                switch (data & 7) {
                case 0:
                    token_type = TokenType.TypeDef; goto ret;
                case 1:
                    token_type = TokenType.TypeRef; goto ret;
                case 2:
                    token_type = TokenType.ModuleRef; goto ret;
                case 3:
                    token_type = TokenType.Method; goto ret;
                case 4:
                    token_type = TokenType.TypeSpec; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.HasSemantics:
                rid = data >> 1;
                switch (data & 1) {
                case 0:
                    token_type = TokenType.Event; goto ret;
                case 1:
                    token_type = TokenType.Property; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.MethodDefOrRef:
                rid = data >> 1;
                switch (data & 1) {
                case 0:
                    token_type = TokenType.Method; goto ret;
                case 1:
                    token_type = TokenType.MemberRef; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.MemberForwarded:
                rid = data >> 1;
                switch (data & 1) {
                case 0:
                    token_type = TokenType.Field; goto ret;
                case 1:
                    token_type = TokenType.Method; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.Implementation:
                rid = data >> 2;
                switch (data & 3) {
                case 0:
                    token_type = TokenType.File; goto ret;
                case 1:
                    token_type = TokenType.AssemblyRef; goto ret;
                case 2:
                    token_type = TokenType.ExportedType; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.CustomAttributeType:
                rid = data >> 3;
                switch (data & 7) {
                case 2:
                    token_type = TokenType.Method; goto ret;
                case 3:
                    token_type = TokenType.MemberRef; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.ResolutionScope:
                rid = data >> 2;
                switch (data & 3) {
                case 0:
                    token_type = TokenType.Module; goto ret;
                case 1:
                    token_type = TokenType.ModuleRef; goto ret;
                case 2:
                    token_type = TokenType.AssemblyRef; goto ret;
                case 3:
                    token_type = TokenType.TypeRef; goto ret;
                default:
                    goto exit;
                }
            case CodedIndex.TypeOrMethodDef:
                rid = data >> 1;
                switch (data & 1) {
                case 0:
                    token_type = TokenType.TypeDef; goto ret;
                case 1:
                    token_type = TokenType.Method; goto ret;
                default: goto exit;
                }
            case CodedIndex.HasCustomDebugInformation:
                rid = data >> 5;
                switch (data & 31) {
                case 0:
                    token_type = TokenType.Method; goto ret;
                case 1:
                    token_type = TokenType.Field; goto ret;
                case 2:
                    token_type = TokenType.TypeRef; goto ret;
                case 3:
                    token_type = TokenType.TypeDef; goto ret;
                case 4:
                    token_type = TokenType.Param; goto ret;
                case 5:
                    token_type = TokenType.InterfaceImpl; goto ret;
                case 6:
                    token_type = TokenType.MemberRef; goto ret;
                case 7:
                    token_type = TokenType.Module; goto ret;
                case 8:
                    token_type = TokenType.Permission; goto ret;
                case 9:
                    token_type = TokenType.Property; goto ret;
                case 10:
                    token_type = TokenType.Event; goto ret;
                case 11:
                    token_type = TokenType.Signature; goto ret;
                case 12:
                    token_type = TokenType.ModuleRef; goto ret;
                case 13:
                    token_type = TokenType.TypeSpec; goto ret;
                case 14:
                    token_type = TokenType.Assembly; goto ret;
                case 15:
                    token_type = TokenType.AssemblyRef; goto ret;
                case 16:
                    token_type = TokenType.File; goto ret;
                case 17:
                    token_type = TokenType.ExportedType; goto ret;
                case 18:
                    token_type = TokenType.ManifestResource; goto ret;
                case 19:
                    token_type = TokenType.GenericParam; goto ret;
                case 20:
                    token_type = TokenType.GenericParamConstraint; goto ret;
                case 21:
                    token_type = TokenType.MethodSpec; goto ret;
                case 22:
                    token_type = TokenType.Document; goto ret;
                case 23:
                    token_type = TokenType.LocalScope; goto ret;
                case 24:
                    token_type = TokenType.LocalVariable; goto ret;
                case 25:
                    token_type = TokenType.LocalConstant; goto ret;
                case 26:
                    token_type = TokenType.ImportScope; goto ret;
                default:
                    goto exit;
                }
            default:
                goto exit;
            }
            ret:
            return new MetadataToken (token_type, rid);
            exit:
            return MetadataToken.Zero;
        }