private static void recordComponentToJava(StructRecordComponent cd, TextBuffer buffer, boolean varArgComponent) {
    Map.Entry<VarType, GenericFieldDescriptor> fieldTypeData = getFieldTypeData(cd);
    VarType fieldType = fieldTypeData.getKey();
    GenericFieldDescriptor descriptor = fieldTypeData.getValue();

    appendAnnotations(buffer, -1, cd);

    final List<TypeAnnotation> typeAnnotations = TypeAnnotation.listFrom(cd);
    if (descriptor != null) {
      buffer.append(GenericMain.getGenericCastTypeName(
        varArgComponent ? descriptor.type.decreaseArrayDim() : descriptor.type,
        TypeAnnotationWriteHelper.create(typeAnnotations)
      ));
    }
    else {
      buffer.append(ExprProcessor.getCastTypeName(
        varArgComponent ? fieldType.decreaseArrayDim() : fieldType,
        TypeAnnotationWriteHelper.create(typeAnnotations)
      ));
    }
    if (varArgComponent) {
      buffer.append("...");
    }
    buffer.append(' ');

    buffer.append(cd.getName());
  }
private static void recordComponentToJava(StructRecordComponent cd, TextBuffer buffer, boolean varArgComponent)