public MethodInfo(JavaClass @class, MethodAccessFlags accessFlags, string name, string descriptor, IDictionary <string, AttributeBase> attributes) : base(@class, name, descriptor, attributes) { this.AccessFlags = accessFlags; this.Signature = JVMdotNET.Core.ClassFile.Signature.Signature.ParseMethodSignature(descriptor); this.Key = Name + Descriptor; }
/// <summary> /// Creates a new <see cref="JvmMethodInfo"/>. /// </summary> /// <param name="accessFlags">The <see cref="MethodAccessFlags"/>.</param> /// <param name="nameIndex">The index into the <see cref="ConstantPool"/> representing the name of the method.</param> /// <param name="descriptorIndex">The index into the <see cref="ConstantPool"/> representing the signature of the method.</param> /// <param name="attributes">All of the method's attributes.</param> public JvmMethodInfo(MethodAccessFlags accessFlags, ushort nameIndex, ushort descriptorIndex, IList <JvmAttribute> attributes) { AccessFlags = accessFlags; NameIndex = nameIndex; DescriptorIndex = descriptorIndex; Attributes = attributes; }
public MethodDefinition(ClassFile cf, MethodAccessFlags accessFlags, string name, string descriptor, string signature) : base(cf, name) { this.accessFlags = accessFlags; this.descriptor = descriptor; methodDescriptor = Descriptors.ParseMethodDescriptor(descriptor); this.signature = (signature != null) ? Signatures.ParseMethodSignature(signature) : null; }
private MethodInfo LoadMethodInfo(BigEndianBinaryReader reader, JavaClass javaClass) { MethodAccessFlags flags = (MethodAccessFlags)reader.ReadUInt16(); string name = constantPool.GetItem <Utf8ConstantPoolItem>(reader.ReadUInt16()).String; string descriptor = constantPool.GetItem <Utf8ConstantPoolItem>(reader.ReadUInt16()).String; var attributes = attributeLoader.Load(reader); return(new MethodInfo(javaClass, flags, name, descriptor, attributes)); }
static string GetMethodVisibility (MethodAccessFlags accessFlags) { if ((accessFlags & MethodAccessFlags.Public) != 0) return "public"; if ((accessFlags & MethodAccessFlags.Protected) != 0) return "protected"; if ((accessFlags & MethodAccessFlags.Private) != 0) return "private"; return ""; }
public void PersistentAccessFlags() { const MethodAccessFlags flags = MethodAccessFlags.Public | MethodAccessFlags.Static; var method = CreateDummyMethod(); method.AccessFlags = flags; var newMethod = RebuildImageWithMethod(method); Assert.Equal(flags, newMethod.AccessFlags); }
public MethodInfo(ClassFile classFile, BigEndianBinaryReader reader) : base(classFile) { AccessFlags = (MethodAccessFlags)reader.ReadUInt16(); NameIndex = reader.ReadUInt16(); DescriptionIndex = reader.ReadUInt16(); AttributesCount = reader.ReadUInt16(); Attributes = new AttributeInfo[AttributesCount]; for (int i = 0; i < AttributesCount; i++) { Attributes[i] = AttributeInfo.GetAttributeInfo(AttributeTarget.Method, classFile, reader); } }
static MethodAccessFlags SetVisibility(MethodAccessFlags existing, MethodAccessFlags newVisibility) { // First we need to remove any existing visibility flags, // without modifying other flags like Abstract existing = (existing ^ MethodAccessFlags.Public) & existing; existing = (existing ^ MethodAccessFlags.Protected) & existing; existing = (existing ^ MethodAccessFlags.Private) & existing; existing = (existing ^ MethodAccessFlags.Internal) & existing; existing |= newVisibility; return(existing); }
public NativeMethodInfo(JavaClass @class, MethodAccessFlags accessFlags, string name, string descriptor, Func <JavaInstance, object[], RuntimeEnvironment, object> implementation) : base(@class, accessFlags | MethodAccessFlags.Native, name, descriptor, ClassDefaults.EmptyAttributes) { if (implementation == null) { this.Implementation = ClassDefaults.EmptyImplementation; } else { this.Implementation = implementation; } }
static string GetMethodVisibility(MethodAccessFlags accessFlags) { if ((accessFlags & MethodAccessFlags.Public) != 0) { return("public"); } if ((accessFlags & MethodAccessFlags.Protected) != 0) { return("protected"); } if ((accessFlags & MethodAccessFlags.Private) != 0) { return("private"); } return(""); }
private string AccessFlagsAsString(MethodAccessFlags accessFlags) { string result = accessFlags.HasFlag(MethodAccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Synchronized) ? "synchronized " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Bridge) ? "bridge " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.VarArgs) ? "varargs " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Native) ? "native " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Abstract) ? "abstract " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Strict) ? "strict " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Synthetic) ? "synthetic " : string.Empty; return(result.Trim()); }
static string GetMethodVisibility(MethodAccessFlags accessFlags) { if (accessFlags.HasFlag(MethodAccessFlags.Internal)) { return("kotlin-internal"); } if ((accessFlags & MethodAccessFlags.Public) != 0) { return("public"); } if ((accessFlags & MethodAccessFlags.Protected) != 0) { return("protected"); } if ((accessFlags & MethodAccessFlags.Private) != 0) { return("private"); } return(""); }
public MethodInfo(MethodAccessFlags accessFlags, ushort nameIndex, ushort descriptorIndex) { AccessFlags = (ushort)accessFlags; NameIndex = nameIndex; DescriptorIndex = descriptorIndex; }
private string AccessFlagsAsString(MethodAccessFlags accessFlags) { string result = accessFlags.HasFlag(MethodAccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Synchronized) ? "synchronized " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Bridge) ? "bridge " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.VarArgs) ? "varargs " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Native) ? "native " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Abstract) ? "abstract " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Strict) ? "strict " : string.Empty; result += accessFlags.HasFlag(MethodAccessFlags.Synthetic) ? "synthetic " : string.Empty; return result.Trim(); }