Skip to content

Introduce BuilderFieldDto as builder working field, map to FieldDto for generation #372

Closed

Description

@igel-devin-ai

Prep for #349 (simple-codegen moves)

FieldDto currently carries fieldSetterMethodsList (List<BuilderMethodDto> + getMethods/addMethod/removeMethods) — builder-domain working state living on what should be the generic render model. It is the last reference keeping FieldDto (and with it GenerationTargetClassDto) from moving to simple-codegen.

Introduce a separate, standalone BuilderFieldDto in processor.model.core as the working type during builder definition: it carries the field state plus the collected builder methods. BuilderToGenerationTypeMapper maps BuilderFieldDto -> FieldDto when assembling GenerationTargetClassDto — the same pass that already converts BuilderMethodDto -> MethodDto. FieldDto loses the methods list entirely and becomes a pure render type.

Result: FieldDto holds only generic render state and can move to simple-codegen mechanically in #349; builder-domain types stay processor-side per the dependency direction builders -> codegen.

Activity

  1. igel-devin-ai commented on Oct 23, 2026

    @igel-devin-ai
    ContributorAuthor

    Implementation note: done as a plain rename instead of a split. During review it turned out FieldDto is used only on the builder-definition side — nothing on the generation side consumes it (the render model carries ClassFieldDto), and nothing moving to simple-codegen in #349 references it. So no generic FieldDto needs to exist: FieldDto is renamed to BuilderFieldDto (history preserved via git mv), keeping the field state and fieldSetterMethodsList together in one honestly-named builder-domain type. In #349 it simply stays processor-side.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions