Find Java constructor field assignments
io.moderne.prethink.FindJavaConstructorFieldAssignmentsio.moderne.recipe:rewrite-prethinkUsage
Run this recipe
This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI.
You will need to have configured the Moderne CLI on your machine before you can run the following command.
mod run . --recipe FindJavaConstructorFieldAssignments
If the recipe is not available locally, then you can install it using:
RELEASE resolves to the newest release and LATEST to the newest build of any kind, including snapshots. Either one lets mod config recipes upgrade pull in later versions without editing this command; a pinned version stays where you put it.
- RELEASE
- LATEST
- Pinned version
mod config recipes jar install io.moderne.recipe:rewrite-prethink:RELEASE
mod config recipes jar install io.moderne.recipe:rewrite-prethink:LATEST
mod config recipes jar install io.moderne.recipe:rewrite-prethink:0.18.0
Data tables
Java constructor field assignments
io.moderne.prethink.table.JavaConstructorFieldAssignmentsWritten immediate constructor-body assignments from a bare explicit formal parameter to an owned non-static field. One row per source occurrence, without deduplication. Actual UUIDs are original-model-local; joins require verified VCS/input/producer namespaces and unique source inventory. No JavaType.Variable object identity binding, String/property evaluation or runtime state inference.
mod study . --last-recipe-run \
--data-table io.moderne.prethink.table.JavaConstructorFieldAssignments
| Column | Description |
|---|---|
| Source path | Original written .java compilation-unit source path. |
| Source set | Sole actual JavaSourceSet name, preserving null/empty; null when missing or duplicated. Never inferred from a path. |
| Project ID | Sole actual JavaProject marker UUID, or null when missing/duplicated. Opaque original-model-local identity. |
| Project name | Sole actual JavaProject name, preserving null/empty. Descriptive only; never an identity fallback. |
| Source set ID | Sole actual JavaSourceSet marker UUID, or null when missing/duplicated. Joins also require the exact original project/input namespace. |
| Source file ID | Actual original J.CompilationUnit UUID. Does not establish constructor/body identity or stability across model copies. |
| Constructor ID | Actual written constructor J.MethodDeclaration UUID. Overloads and named nested/local constructors retain their own occurrences; no outer constructor identity is inherited. |
| Constructor body ID | Actual constructor-body J.Block UUID observed directly, never inferred from source-file, signature or Git identity. |
| Constructor signature | Exact attributed JavaType.Method.toString() for the constructor. Retains available types; not a unique declaration identity or complete-attribution guarantee. |
| Constructor start line | One-based original sanitized-printer line at the full written constructor declaration start, including its annotations and excluding prefix whitespace/comments. |
| Constructor start column | One-based UTF-16 column at the full written constructor declaration start; tabs count as one. |
| Constructor end line | One-based original line at the exclusive full constructor declaration end, including its body. |
| Constructor end column | One-based UTF-16 column at the exclusive full constructor declaration end. |
| Parameter declaration ID | Actual explicit formal parameter J.VariableDeclarations UUID. Distinct from its NamedVariable parameter ID. |
| Parameter ID | Actual sole formal-parameter NamedVariable UUID. No JavaType.Variable object identity or synthetic parameter identity is substituted. |
| Parameter index | Zero-based written formal-parameter ordinal in this exact constructor; a varargs parameter occupies one slot. J.Empty and explicit receiver parameters are excluded; no synthetic formals are inferred. |
| Parameter name | Actual simple name of the structurally matched explicit formal parameter in this exact constructor. |
| Parameter type | Available attributed formal-parameter JavaType.toString(), or null for missing/Unknown type. Not an assignability or complete-attribution claim. |
| Parameter start line | One-based original sanitized-printer line at the full formal J.VariableDeclarations start, including written annotations/type/name and excluding prefix whitespace/comments. |
| Parameter start column | One-based UTF-16 column at the full formal-parameter declaration start, including written annotations. |
| Parameter end line | One-based original line at the exclusive full formal-parameter declaration end. A following parameter comma is excluded. |
| Parameter end column | One-based UTF-16 column at the exclusive full formal-parameter declaration end, excluding a following comma. |
| Field owner | Actual attributed non-static target field declaring-type FQN, required to equal this constructor's declaring class. No inherited/outer-this or spelling-based owner inference. |
| Field name | Actual attributed owned-field name at the explicitly written this.field LHS. Not a source declaration UUID. |
| Field type | Available attributed target-field JavaType.toString(), or null for missing/Unknown component type. Owner attribution remains required. |
| Field reference ID | Actual LHS J.FieldAccess name J.Identifier UUID. This identifies the reference token, not a JavaType.Variable object or field declaration. |
| Field start line | One-based original sanitized-printer line at the LHS field-name token start; the this. qualifier is excluded. |
| Field start column | One-based UTF-16 column at the LHS field-name token start, excluding this. |
| Field end line | One-based original line at the exclusive LHS field-name token end. |
| Field end column | One-based UTF-16 column at the exclusive LHS field-name token end. |
| Assignment ID | Actual immediate constructor-body J.Assignment UUID. Repeated writes retain separate rows, including eligible direct writes after this/super delegation statements; delegation itself is not followed. |
| Assignment start line | One-based original sanitized-printer line at the assignment-expression start, excluding prefix whitespace/comments. |
| Assignment start column | One-based UTF-16 column at the assignment-expression start. |
| Assignment end line | One-based original line at the exclusive J.Assignment expression end. The statement semicolon is excluded. |
| Assignment end column | One-based UTF-16 column at the exclusive assignment-expression end, excluding the semicolon. |
| Assignment source | Exact original sanitized-printer J.Assignment expression slice. Preserves written formatting; excludes prefix whitespace/comments and the statement semicolon. |
| RHS ID | Actual bare RHS J.Identifier UUID, structurally bound to an explicit formal parameter of this exact constructor. Not the parameter declaration UUID. |
| RHS start line | One-based original sanitized-printer line at the bare RHS identifier start. |
| RHS start column | One-based UTF-16 column at the bare RHS identifier start, excluding prefix whitespace/comments. |
| RHS end line | One-based original line at the exclusive bare RHS identifier end. |
| RHS end column | One-based UTF-16 column at the exclusive bare RHS identifier end. |
Source files that had results
org.openrewrite.table.SourcesFileResultsSource files that were modified by the recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileResults
| Column | Description |
|---|---|
| Source path before the run | The source path of the file before the run. null when a source file was created during the run. |
| Source path after the run | A recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run. |
| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. |
| Recipe that made changes | The specific recipe that made a change. |
| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. |
| Cycle | The recipe cycle in which the change was made. |
Source files that had search results
org.openrewrite.table.SearchResultsSearch results that were found during the recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SearchResults
| Column | Description |
|---|---|
| Source path of search result before the run | The source path of the file with the search result markers present. |
| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run. |
| Result | The trimmed printed tree of the LST element that the marker is attached to. |
| Description | The content of the description of the marker. |
| Recipe that added the search marker | The specific recipe that added the Search marker. |
Source files that errored on a recipe
org.openrewrite.table.SourcesFileErrorsThe details of all errors produced by a recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileErrors
| Column | Description |
|---|---|
| Source path | The file that failed to parse. |
| Recipe that made changes | The specific recipe that made a change. |
| Stack trace | The stack trace of the failure. |
Recipe performance
org.openrewrite.table.RecipeRunStatsStatistics used in analyzing the performance of recipes.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.RecipeRunStats
| Column | Description |
|---|---|
| The recipe | The recipe whose stats are being measured both individually and cumulatively. |
| Source file count | The number of source files the recipe ran over. |
| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. |
| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. |
| Max scanning time (ns) | The max time scanning any one source file. |
| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. |
| Max edit time (ns) | The max time editing any one source file. |