コード例 #1
0
        private string AccessFlagsAsString(AccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Interface) ? "interface " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Annotation) ? "annotation " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty;

            return result.Trim();
        }
コード例 #2
0
        private string AccessFlagsAsString(AccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty;

            result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Interface) ? "interface " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Annotation) ? "annotation " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty;

            return(result.Trim());
        }
コード例 #3
0
        private string AccessFlagsAsString(AccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Volatile) ? "volatile " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Transient) ? "transient " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty;

            return result.Trim();
        }
コード例 #4
0
        private string AccessFlagsAsString(AccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty;

            result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Volatile) ? "volatile " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Transient) ? "transient " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty;

            return(result.Trim());
        }
コード例 #5
0
        private string AccessFlagsAsString(AccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synchronized) ? "synchronized " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Bridge) ? "bridge " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.VarArgs) ? "varargs " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Native) ? "native " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.StrictFp) ? "strictfp " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Constructor) ? "constructor " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.DeclaredSynchronized) ? "synchronized " : string.Empty;

            return result.Trim();
        }
コード例 #6
0
ファイル: Methods.cs プロジェクト: jonpryor/java.interop
        public ParameterInfo[] GetParameters()
        {
            if (parameters != null)
            {
                return(parameters);
            }
            int _;

            parameters = GetParametersFromDescriptor(out _).ToArray();
            var locals   = GetLocalVariables();
            var enumCtor = IsConstructor && DeclaringType.IsEnum;

            if (locals != null)
            {
                var names = locals.LocalVariables.Where(p => p.StartPC == 0).ToList();
                int start = 0;
                if (names.Count != parameters.Length &&
                    !AccessFlags.HasFlag(MethodAccessFlags.Static) &&
                    names.Count > start &&
                    names [start].Descriptor == DeclaringType.FullJniName)
                {
                    start++;                        // skip `this` parameter
                }
                if (!DeclaringType.IsStatic &&
                    names.Count > start &&
                    (parameters.Length == 0 || parameters [0].Type.BinaryName != names [start].Descriptor))
                {
                    start++;                        // JDK 8?
                }
                if (!AccessFlags.HasFlag(MethodAccessFlags.Synthetic) &&
                    ((names.Count - start) != parameters.Length) &&
                    !enumCtor)
                {
                    Log.Debug("class-parse: method {0}.{1}{2}: " +
                              "Local variables array has {3} entries ('{4}'); descriptor has {5} entries!",
                              DeclaringType.ThisClass.Name.Value, Name, Descriptor,
                              names.Count - start,
                              Attributes.Get <CodeAttribute>().Attributes.Get <LocalVariableTableAttribute> (),
                              parameters.Length);
                }
                int max = Math.Min(parameters.Length, names.Count - start);
                for (int i = 0; i < max; ++i)
                {
                    parameters [i].Name = names [start + i].Name;
                    if (parameters [i].Type.BinaryName != names [start + i].Descriptor)
                    {
                        Log.Debug("class-parse: method {0}.{1}{2}: " +
                                  "Local variable type descriptor mismatch! Got '{3}'; expected '{4}'.",
                                  DeclaringType.ThisClass.Name.Value, Name, Descriptor,
                                  parameters [i].Type.BinaryName,
                                  names [start + i].Descriptor);
                    }
                }
            }
            var sig = GetSignature();

            if (sig != null)
            {
                if ((sig.Parameters.Count != parameters.Length) && !enumCtor)
                {
                    Log.Debug("class-parse: method {0}.{1}{2}: " +
                              "Signature ('{3}') has {4} entries; Descriptor '{5}' has {6} entries!",
                              DeclaringType.ThisClass.Name.Value, Name, Descriptor,
                              Attributes.Get <SignatureAttribute>(),
                              sig.Parameters.Count,
                              Descriptor,
                              parameters.Length);
                }
                int max = Math.Min(parameters.Length, sig.Parameters.Count);
                for (int i = 0; i < max; ++i)
                {
                    parameters [i].Type.TypeSignature = sig.Parameters [i];
                }
            }
            UpdateParametersFromMethodParametersAttribute(parameters);
            return(parameters);
        }
コード例 #7
0
        private string AccessFlagsAsString(AccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty;

            result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synchronized) ? "synchronized " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Bridge) ? "bridge " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.VarArgs) ? "varargs " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Native) ? "native " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.StrictFp) ? "strictfp " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.Constructor) ? "constructor " : string.Empty;
            result += accessFlags.HasFlag(AccessFlags.DeclaredSynchronized) ? "synchronized " : string.Empty;

            return(result.Trim());
        }