Example #1
0
 public static Field GetField(Class c, CompileFieldInfo field, List<CompileConstant> constants)
 {
     return new Field
                {
                    DeclaringType = c,
                    Name = GetUtf8(field.Name, constants),
                    Modifiers = field.Modifiers,
                    ReturnType = GetType(field.Descriptor, constants),
                };
 }
        private void CompileFields(CompileManager manager)
        {
            foreach (Field field in @class.Fields)
            {
                var fieldInfo = new CompileFieldInfo();

                short nameIndex = manager.AddConstantUtf8(field.Name);
                short descriptorIndex = manager.AddConstantUtf8(field.ReturnType.GetDescriptor());

                fieldInfo.Modifiers = field.Modifiers;
                fieldInfo.Name = nameIndex;
                fieldInfo.Descriptor = descriptorIndex;
                fieldInfo.Attributes = new List<CompileAttribute>(); //TODO: ConstantValue, Synthetic, Deprecated

                manager.AddField(fieldInfo);
            }
        }
 public void AddField(CompileFieldInfo field)
 {
     Fields.Add(field);
 }
        private void ReadFields(EndianBinaryReader reader)
        {
            var fieldCount = reader.ReadInt16();
            for (var i = 0; i < fieldCount; i++)
            {
                var field = new CompileFieldInfo();

                field.Modifiers = (Modifier)reader.ReadInt16();
                field.Name = reader.ReadInt16();
                field.Descriptor = reader.ReadInt16();

                field.Attributes.AddRange(ReadAttributes(reader));

                Fields.Add(field);
            }
        }
Example #5
0
        private static IEnumerable<CompileFieldInfo> ReadFields(EndianBinaryReader reader, List<CompileConstant> constants)
        {
            short fieldCount = reader.ReadInt16();
            var fields = new CompileFieldInfo[fieldCount];

            for (int i = 0; i < fieldCount; i++)
            {
                var field = new CompileFieldInfo();

                field.Modifiers = (Modifier)reader.ReadInt16();
                field.Name = reader.ReadInt16();
                field.Descriptor = reader.ReadInt16();

                field.Attributes.AddRange(ReadAttributes(reader, constants));

                fields[i] = field;
            }

            return fields;
        }