eclipse-vertx / eclipse-vertx/vertx-codegen

Allow DataObject properties to be ignored by generated converter

Offen
#213 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
111
Forks
88
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

In certain circumstances it is desirable or necessary to omit a property from the generated converter.

For example, the following Kotlin DataObject will not compile successfully:

@DataObject(generateConverter = true)
class EnumSetDataObject() {
    var enumSet: Set<MyEnum> = emptySet()
    ...
}

error: Could not generate element for io.vertx.example.EnumSetDataObject: 
Illegal type ? extends io.vertx.example.MyEnum of kind WILDCARD

The desired effect (omitting enumSet from the converter) can be accomplished in Kotlin by using the @JvmField annotation, however, that is a language-specific solution.

I think that it would be useful to provide this functionality, either via the @GenIgnore annotation or a new @ConverterIgnore annotation.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den Pfad zur Converter-Generierung für @DataObject und die Verarbeitung seiner Properties zu finden, und vergleiche dann das bestehende Verhalten von @JvmField mit dem vorgeschlagenen Ansatz @GenIgnore oder @ConverterIgnore. Die Arbeit ist abgeschlossen, wenn eine sprachunabhängige Annotation eine DataObject-Property von der generierten Konvertierung ausschließen kann und das EnumSet-Beispiel nicht mehr dazu führt, dass die Generierung fehlschlägt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, kotlin
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.