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); } }
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; }