コード例 #1
0
 /// <summary>
 /// Creates a new <see cref="JvmFieldInfo"/>.
 /// </summary>
 /// <param name="accessFlags">The see <see cref="FieldAccessFlags"/>.</param>
 /// <param name="nameIndex">The index into the <see cref="ConstantPool"/> representing the name of the field.</param>
 /// <param name="descriptorIndex">The index into the <see cref="ConstantPool"/> representing the type of the field.</param>
 /// <param name="attributes">All of the field's attributes.</param>
 public JvmFieldInfo(FieldAccessFlags accessFlags, ushort nameIndex, ushort descriptorIndex, IList <JvmAttribute> attributes)
 {
     AccessFlags     = accessFlags;
     NameIndex       = nameIndex;
     DescriptorIndex = descriptorIndex;
     Attributes      = attributes;
 }
コード例 #2
0
 public FieldDefinition(ClassFile cf, FieldAccessFlags accessFlags, string name, string descriptor, string signature)
     : base(cf, name)
 {
     this.accessFlags = accessFlags;
     this.descriptor  = descriptor;
     fieldType        = Descriptors.ParseFieldType(descriptor);
     Signature        = (signature != null) ? Signatures.ParseFieldTypeSignature(signature) : fieldType;
 }
コード例 #3
0
ファイル: FieldDefinition.cs プロジェクト: Xtremrules/dot42
 public FieldDefinition(ClassFile cf, FieldAccessFlags accessFlags, string name, string descriptor, string signature)
     : base(cf, name)
 {
     this.accessFlags = accessFlags;
     this.descriptor = descriptor;
     fieldType = Descriptors.ParseFieldType(descriptor);
     Signature = (signature != null) ? Signatures.ParseFieldTypeSignature(signature) : fieldType;
 }
コード例 #4
0
        private FieldInfo LoadFieldInfo(BigEndianBinaryReader reader, JavaClass javaClass)
        {
            FieldAccessFlags flags      = (FieldAccessFlags)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 FieldInfo(javaClass, flags, name, descriptor, attributes));
        }
コード例 #5
0
		static string GetVisibility (FieldAccessFlags accessFlags)
		{
			if ((accessFlags & FieldAccessFlags.Public) != 0)
				return "public";
			if ((accessFlags & FieldAccessFlags.Protected) != 0)
				return "protected";
			if ((accessFlags & FieldAccessFlags.Private) != 0)
				return "private";
			return "";
		}
コード例 #6
0
        public void PersistentAccessFlags()
        {
            const FieldAccessFlags flags = FieldAccessFlags.Private | FieldAccessFlags.Static;

            var field = CreateDummyField();

            field.AccessFlags = flags;

            var newField = RebuildImageWithField(field);

            Assert.Equal(flags, newField.AccessFlags);
        }
コード例 #7
0
ファイル: FieldsAndMethods.cs プロジェクト: SleepyDeb/JSharp
        public FieldInfo(ClassFile classFile, BigEndianBinaryReader reader) : base(classFile)
        {
            AccessFlags      = (FieldAccessFlags)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.Field, classFile, reader);
            }
        }
コード例 #8
0
        private string AccessFlagsAsString(FieldAccessFlags accessFlags)
        {
            string result = accessFlags.HasFlag(FieldAccessFlags.Public) ? "public " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Private) ? "private " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Protected) ? "protected " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Static) ? "static " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Final) ? "final " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Volatile) ? "volatile " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Transient) ? "transient " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Synthetic) ? "synthetic " : string.Empty;
            result += accessFlags.HasFlag(FieldAccessFlags.Enum) ? "enum " : string.Empty;

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

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

            return(result.Trim());
        }
コード例 #10
0
 static string GetVisibility(FieldAccessFlags accessFlags)
 {
     if ((accessFlags & FieldAccessFlags.Public) != 0)
     {
         return("public");
     }
     if ((accessFlags & FieldAccessFlags.Protected) != 0)
     {
         return("protected");
     }
     if ((accessFlags & FieldAccessFlags.Private) != 0)
     {
         return("private");
     }
     return("");
 }
コード例 #11
0
ファイル: FieldInfo.cs プロジェクト: cizfilip/JVMdotNET
 public FieldInfo(JavaClass @class, FieldAccessFlags accessFlags, string name, string descriptor, IDictionary<string, AttributeBase> attributes)
     : base(@class, name, descriptor, attributes)
 {
     this.AccessFlags = accessFlags;
     this.Signature = JVMdotNET.Core.ClassFile.Signature.Signature.ParseFieldSignature(descriptor);
 }